
新規サービス、webで作るか? モバイルで作るか? | 開発者目線で解説
2024.03.06こんにちは、モバイルアプリ大好きなエンジニア兼mofmofの取締役の小畑です。
最近、お客さんから「新規サービスをwebアプリとしてつくるか、ネイティブアプリで作るか」という相談に乗ることがありました。
なので、この機会に「今、サービスを作る場合、webアプリとネイティブアプリどっちで開発するべきか」について、ネイティブアプリエンジニアと開発会社の経営者という立場で、自分の考えをまとめてみました。 特に今回は新規事業としてサービスを作ろうとしている場合に焦点を当ててみたいと思います。
どちらで作るかは正解はありません。 あくまでいち意見として参考にしてもらえたら嬉しいです。
サービス特性や組織事情によって正解は大きく変わってきますので、もし悩んでいる方がいたら気軽にmofmofに相談ください。 小畑のXからでも大丈夫です。
基本的にはwebで作れないか検討がおすすめ
まず考えるべきは「webアプリで作れないか」です。
昔と比べてwebでできることは非常に増えていますし、動作面でもネイティブアプリと遜色ないくらいまで進歩しています。 新規事業であるならば、まずはwebで開発できないかを考えて、それが難しいようであればネイティブアプリを検討する順番が良いと思います。
以下、まずwebを検討すべき理由について述べます。
お金を節約できる
いきなりお金の話ですが、これはかなり大きいです。
新規事業は限られた予算の中で進める必要があるため、どれだけお金が節約できるかが成功の要因として大きいです。
ネイティブアプリよりwebの方がお金がかからない理由は
- ネイティブアプリの方が開発工数が増えやすい
- ネイティブアプリエンジニアが希少
の二つです。
ネイティブアプリ開発では、iOSとAndroidの両方に対応する必要があります。 クロスプラットフォーム開発をすればコードはほぼ共有できますが、デバッグは必ず両方で必要ですし、個別対応が必要な部分もそこそこあります。
そして、アプリを公開するためにはAppleのAppStoreとGoogleのGooglePlayへの対応が必要で、初回リリースではこれがまた手間がかかります。 webならデプロイしてドメインを設定すればすぐに公開できます。
無事リリースができた後も、ネイティブアプリは常にAppleとGoogleのプラットフォームに追従していくことを求められます。
特にAppleは最近プライバシー関連に非常に敏感なため、それ関連の追従を多く求められます。 また、iOSやAndroidのメジャーアップデートがあれば、そこへの対応も必要ですし、逆に古いOSでも問題なく動くかを確認する必要もあります。
純粋な開発工数の話をすると、webの場合はRailsなどを使えばフロントエンドとバックエンドを同時に作ることも可能です。 今はReactなどのフロントエンドフレームワークとapiサーバを分けて作ることが主流になっていますが、新規事業のMVPにとってはRailsだけでバックもフロントも書いてしまう方法で問題ない場合が多いです。
しかし、ネイティブアプリの場合は必ずapiサーバとクライアントアプリの二つを開発する必要があります。(サーバレスにすればほぼアプリだけにはなりますが)
これらの理由で、webの方がネイティブアプリよりも開発工数は少なくスピーディに開発が可能で、その分開発費用を抑えることができます。
次にネイティブアプリエンジニアが希少という件です。
統計データなどはないのですが、開発会社を経営している肌感覚としてwebエンジニアに比べてネイティブアプリエンジニアは圧倒的に少ないです。 希少性が高いとうことはエンジニアの人件費、単価も高くなります。
また、将来的にネイティブアプリエンジニアを採用しようと思った時の採用コストも高くなります。
webなら頻繁なアップデートが可能
新規事業の場合、ユーザーの要望やプロモーション戦略に応じて細かく頻繁にサービスに修正を加えたいことが多いと思います。 webであれば自分たちの都合でアップデートを行うことができますが、ネイティブアプリの場合は「ストアへ提出→審査→公開」のステップを踏む必要があるため、素早くアップデートをすることがwebに比べて難しいです。
最近はAppleの審査も早くなり、早いと提出から半日で審査が通ることもありますが、5年くらい前は2,3日かかるのが普通でした。 逆に最近はGoogleの審査に時間がかかることが増えてきて、稀に1週間くらい審査に時間がかかることもあります。
また、審査が通らなかった時にはその問題を修正してから、再び審査に提出する必要があるため、大事なタイミングにアップデートが間に合わないといったトラブルも起きる可能性があります。
例えば、自分たちのサービスがニュースで取り上げられ流入が増えるチャンスがあり、それまでに追加したい機能があったとしても、審査の結果によっては間に合わないということが起きてしまうのがネイティブアプリの難しさです。
webはネイティブアプリの代わりになるが、逆は難しい
きちんとレスポンシブ対応を行えば、webで作ったサービスをスマホで使ってもらうことは可能です。 しかし、ネイティブアプリはブラウザでは使えないですし、PCでも基本的には使えません。(最近はMacでiOSアプリが動いたりしますが一般的ではありません)
このことから、サービスの特性的にweb版とネイティブアプリ版の両方が将来的に必要になる場合には、まずwebから作る方がコスパがよいですし、事業の最初にカバーできる範囲も大きくなります。
例えば、ECサービスのようなものの場合、一見さんにも購入をしてもらう必要があるため、購入までのハードルが低いweb版はほぼ必須になると思います。 その場合はまずはwebでリリースし、ファンがついてきたらネイティブアプリもリリースして囲い込むという戦略が適していると考えられます。
ネイティブアプリは表現の制約が多い
AppleはApp Store Reviewガイドラインによってアプリの品質を一定に保っています。 ただ、逆にそれがサービス提供者にとっての負担や制約になるケースも無視できません。
例えば暴力的や性的なコンテンツが含まれる場合にはAppleの審査を通すことは難しくなります。 ほかにも薬物の用量計算アプリであれば専門機関としての許可を受けた事業者でなくては公開ができないなどの制約もあります。
webであれば、こういった制約にとらわれず自由度の高いサービスを提供することが可能です。
1.1 不適切なコンテンツ アプリに不適切なコンテンツ、無神経なコンテンツ、動揺させるコンテンツ、嫌悪感を与えるコンテンツ、極めて悪趣味または不快なコンテンツを含めることはできません。
1.4.2 薬物の用量計算アプリは、製薬会社、病院、大学、健康保険会社、薬局、その他の許可を得た事業体が提供するか、FDAまたは各国の同等機関による承認を受ける必要があります。
引用:App Store Reviewガイドライン(https://developer.apple.com/jp/app-store/review/guidelines/)
ネイティブアプリを検討すべき場合
では、逆にどういった場合にネイティブアプリを検討すべきかを説明します。
ネイティブアプリでしか実現できない機能がサービスのコアにある
webから利用できるスマホの機能は限られています。 そのため、サービスのコアとなる機能にネイティブアプリからしか使えないスマホの機能がある場合は必然的にネイティブアプリで開発する必要がでてきます。
例えば、以下のようなケースが考えられます
- 位置情報共有サービスのようにバックグラウンドでの位置情報の利用が必須である場合
- ポッドキャストアプリのように音声データをスマホにDLしてオフラインで聴けることが重要な場合
- レシピアプリのように画面をスリープにしないままで使わせたい場合
- カレンダーアプリのようにスマホのホーム画面にウィジェットとしても提供したい場合
逆に意外とwebでもできることは多いです。
例えば
- カメラを使いたい
- 位置情報をその時だけ使いたい
- プッシュ通知を送る
などはwebでも実現可能です。
毎日使ってもらうことが重要
ネイティブアプリはインストールしてもらう段階で1段階ハードルがある分、インストールしてもらったあとはwebに比べて継続率は高い傾向があります。 私が関わってきたアプリたちも、1ヶ月後の継続率は10%以上はあるようなことが多かったです。
例えばSNSのようなアプリだったり、日記やカレンダーなどの記録系のアプリ、ファンコミュニティ系のアプリの場合は毎日利用してもらうことが重要になるため、ネイティブアプリを検討すべきでしょう。
逆に、ECサービスやチケット予約サービスの場合には、「使いたい」と思った時に使ってもらうことが多くなるため、無理に最初からネイティブアプリを作る必要はないと考えられます。
ネイティブアプリで作る場合のマメ?知識
とりあえずiOSだけOK
ネイティブアプリの大変さの一つして、iOSとAndroidの両方に対応する必要があることを挙げましたが、日本国内向けの新規事業であればiOSだけの対応で良いと思うというのが、私の意見です。
というのも、日本国内ではiOSのシェアが圧倒的なためです。 電車の中でスマホ持っている人を眺めてみても9割iPhoneですよね。 事実、私が開発しているアプリも9割がiOSユーザーです。
新規事業で、特にヒットするかもわからない状態であれば、とりあえずiOSだけリリースしてみて、感触がよければAndroidに対応するという計画でもなんら問題ないと思います。
意外とユーザーはストアから流入する
「アプリがユーザーに価値を提供できている」という前程ありきですが、ユーザーにちゃんと価値を与えることができて、レビュー評価も高いアプリは意外にもストアからユーザーの流入が見込めます。
私が開発しているアプリをインストールしてくれたユーザーに話を聞くと「こんなアプリがないかとストアを検索していて見つけた」という声をよく聞きます。 そのため、ちゃんとユーザーに刺さるサービスを提供できれば、広告を打たなくてもストア流入である程度ユーザーを増やすことができるのがネイティブアプリの利点です。
まとめ
以上が、「今、サービスを作る場合、webアプリとネイティブアプリどっちで開発するべきか」について新規事業という条件に絞った場合の私の考えでした。
まずはwebアプリでいけないかと考えて、ダメそうならネイティブアプリを検討するというのがリソースの限られた新規事業の最善手であると私は考えています。
ただし、サービス特性や組織事情によって大きく変わってくる部分ですので、もし悩んでいる場合は気軽にmofmofにご相談ください。 開発の外注は検討しておらず、本当に相談だけという方も大歓迎です(色々な方の話を聞くことが私の勉強にもなるため)