- 個人開発をしようと思っているけど、スマホのネイティブアプリで作るかWebサービス(Webアプリ)のどちらにするか悩んでいる
- ネイティブアプリは今まで作ったことがないけど、ネイティブアプリの方がユーザーが使いやすそう
- 結局どっちで作るのがよいのだろう…
こんな疑問に答えます。
本記事の内容
- Webサービスかネイティブアプリのどちらで作ればよいかが分かるようになる
本記事の対象読者
- Webサービスを開発できる言語が使える
- アプリ開発の経験は無い、もしくは少しさわったことがある程度
- AndroidであればJavaかKotlin、iOSであればObjective-CかSwift
書いている人の実績
- 個人開発歴10年
- 開発したサービスは月間700万PV以上
個人開発ではスマホのネイティブアプリではなくWebサービスで作るべき
僕はiOSもAndroidもネイティブアプリを少し作ることができます。
しかし、個人開発でサービスを作るときは必ずWebサービスで開発してリリースします。
なぜなのか?
以下で解説していきます。
個人開発でスマホアプリの開発をやめた方がいい3つの理由
1. iOSとAndroidの2種類のアプリを作らないといけない
当たり前の話ですがこれが最大の理由です。
できるだけ多くの人に使ってもらいたくて作ったサービスが、ユーザーの持っているプラットフォーム(OS)によって使える・使えないが出てくるのはよくありません。
ですので企業が作る場合はだいたいは両方のアプリを作るのですが、これが大変です。
AndroidアプリであればJavaかKotlinで書くのがオーソドックスです。
また、iOSアプリであればObjective-CかSwiftで書くのがオーソドックスです。
普段から両方のネイティブアプリを開発していて、ある程度慣れているのであればネイティブアプリ開発を選択するのは問題ありません。
しかし、普段はWebを開発しているのであれば、今から習得するスキルが多すぎます。
しかもただ言語仕様を覚えればよいだけではなく、それぞれのOSごとの振る舞いも覚える必要があります。
メモリの使い方などOSごとにかなりクセがあり、一朝一夕で習得するのはかなり難しいです。
また、仮にAndroidとiOS両方のアプリを開発できるスキルがあったとしても単純に工数は2倍になります。
なお、世の中にはワンコードでAndroidとiOSのアプリを作ることができる開発環境も存在します。
ただし、それはそれでまた新たなスキルを習得する形になります。
また、いくらワンコードとは言え全てをまかなえる訳ではなく、ある程度OSごとにカスタマイズをする必要があります。
2. ネイティブアプリからAPIを使う場合は結局Web側も作らないといけない
DBから値を取得したりして、ネイティブアプリに何らかの情報を表示する場合、通常はWebAPIに接続します。
それがYahooやGoogleなどの外部サービスから汎用的に用意されているAPIではない場合、当然自分で作る必要があります。
そうなると結局はWeb側も作り込む必要がでてきます。
ただでさえOS2つ分のアプリを作らないといけないのに、さらにWebサーバーも立てて、何らかのWeb系言語でAPIを作る必要があります。
Webサービスを1つ作ることに対して、手間は3倍にも4倍にも膨れ上がってきます。
使える工数に制限がある個人開発では、ここまで工数が膨れ上がってしまうとリリースはいつ出来るか分かりません。
最終的にはリリースする前にモチベーションが下がって日の目を見ずに開発が終わってしまうことは明らかです。
個人開発はリリースまでのスピード感が命です。
APIを使わない完全にアプリだけで完結するサービスであればよいですが、サーバから情報を取得するために独自のAPIを使用する必要があるネイティブアプリの開発は初心者にはおすすめしません。
まずは単体でリリースできるWebサービスを選ぶのがよいです。
3. アプリは審査があり通らなければ世に出ない
それぞれのOSにはアプリの審査が存在します。
iOSアプリであればAppleの審査が、AndroidアプリであればGoogleの審査が必要です。
当然この審査に通らない限り、アプリをダウンロードするアプリストアには並びません。
例外としてAndroidの場合は通称「野良アプリ」と呼ばれる形で、作成したアプリをapkに固めて自分のサーバにアップして、ユーザーにアプリをインストールしてもらうことが可能です。
しかし、この方法はユーザーにもある程度のリテラシーが求められます。
その上、ネイティブアプリの最大のメリットである「ストアに並ぶことによるユーザーへのアプローチ向上」が無くなります。
なので、よほどのことで無い限りこの方法はおすすめしません。
個人開発でアプリを作る場合はWebサービスの3倍ぐらいの時間がかかる
上記のことから、Webサービスと同等の機能を提供するネイティブアプリを作ろうとした場合、Webサービス単体で作るのに比べて少なく見積もって3倍の工数が必要になります。
「3倍かかっても構わん!おれは全てのスキルを持っている!」
という方は問題ありませんので是非挑戦してください。
そうではなく、まずはスピード重視で作りたい方は絶対にWebサービスです。
それに、Webサービスを作ってリリースをして、軌道に乗ってからネイティブアプリを作っても遅くはありません。
恐らくその規模になれば企業から融資が出るレベルになっていると思いますが…
スマホアプリの方が使いやすいのではないかという疑問
ネイティブアプリ最大のメリットはWebサービス(ブラウザアプリ)では難しいことが簡単に実現できることにあります。
スマホに入っている音楽を再生できたり、プッシュ通知も行えますし、他にも沢山メリットがあります。
ただ、これらのネイティブアプリでしか実現できない機能を実装しないのであればWebサービスで開発することを強くオススメします。
ネイティブアプリ2つを開発するには、求められる工数とスキルが多すぎます。
これが、個人開発の場合はネイティブアプリではなくWebサービスを勧める理由です。
個人開発でネイティブアプリを作っている人も沢山いる
ここまで「個人開発でネイティブアプリはやめとけ!」と高説を述べてきましたが、個人開発でネイティブアプリを開発している人も沢山います。
それが間違っているということではもちろん無く、アプリを作ることができるスキルがあるならばぜひ挑戦するべきです。
今回は「Web系サービスしか普段作っていない人は、個人でサービスを開発する時にネイティブアプリを選択することは難易度が高すぎる」ということをお伝えしたかったという訳です。
PWAという選択肢
最近はPWAという仕組みが出てきました。
PWAとは、「Progressive Web Apps」の略称で、モバイル向けWebサイトをネイティブアプリのように使える仕組みです。
インストールしてもらうこともプッシュ通知することも可能になり、限りなくネイティブアプリに近い動きになります。
まだPWAに対応したサービスやサイトは少ないですが、今後続々と対応したサービスやサイトが出てくると思います。
PWAを一つの選択肢に入れておくこともオススメします。
まとめ
個人開発ではネイティブアプリではなくWebサービスとして開発するべきで、理由は必要な工数と求められるスキルが多すぎるということです。
もちろんネイティブアプリを開発するスキルセットを持っているエンジニアの方はどんどん挑戦するべきで、ネイティブアプリの開発を否定したものではありません。
個人開発で大事なことは自分の身の丈に合ったスキルで勝負することです。
このことは別の記事でも書いていますので是非ご覧ください。
それではよき個人開発ライフを!