このガイドは、チームへのブリーフィングや見積もりの比較を行う前に、アプリの開発手法を決定しなければならないファウンダー、プロダクトオーナー、CTOを対象としています。モバイルプロダクト開発ガイドでは、ディスカバリーからスケールまでの全工程(バックエンドとストアリリースを含む)を網羅していますが、このページでは1つの意思決定に絞り、より深く掘り下げます。
このガイドの内容
- 2択ではなく4つの選択肢
- 各手法の比較
- 手法を決定する6つの問い
- 初回リリース以降の総所有コスト
- 後から手法を切り替える
- AI機能と手法の選択
- セキュリティとストアのルールはすべての手法に適用される
- Netbase JSCはどのようにアプリを開発しますか?
- 存在する納品実績と存在しないもの
- このガイドの限界は何ですか?
- よくある質問
- 次のステップ
2択ではなく4つの選択肢
この問いはネイティブかクロスプラットフォームかという形で語られることが多いですが、実際には4つの選択肢から選ぶことになります。
- 2つのネイティブアプリ。 iOS向けのSwiftアプリと、Android向けのKotlinアプリをそれぞれのプラットフォーム固有のツールとUIコンポーネントで開発します。
- 1つのクロスプラットフォームコードベース。 1つのアプリを一度書いて両プラットフォームで動作させます。React Nativeは「JavaScriptで記述し、ネイティブコードでレンダリングする」と自己説明しており、画面はプラットフォーム固有のUIコンポーネントを使用します。Flutterは「単一のコードベース」からマルチプラットフォームアプリを構築し、独自のインターフェースを描画します。
- 共有ロジック+ネイティブ画面。 ビジネスロジック、ネットワーク処理、データ管理を一度書く一方で、各プラットフォームは独自のインターフェースを維持します。Kotlin Multiplatformでは、インターフェースを共有するレベルと並んで、共有レベルの1つとしてこれを説明しています。
- モバイルWebまたはプログレッシブウェブアプリ(PWA)。 ホーム画面にインストールでき、ブラウザの制約内でオフライン動作も可能なレスポンシブウェブサイトです。web.devでは、これらを「Webで構築・デプロイされる」アプリ体験として説明しています。
各手法はある製品にとっては最適な答えです。製品要件を整理する前に、習慣やフレームワーク論争から1つを選んでしまうことが誤りです。
各手法の比較
| 評価基準 | ネイティブ(2つのアプリ) | クロスプラットフォーム(1つのコードベース) | モバイルWebまたはPWA |
|---|---|---|---|
| iOSとAndroidの開発工数 | 2つのコードベースと2種類のスキルセット | ほとんどの機能は1つのコードベース、一部はネイティブモジュール | Webサイトと共通の1つのコードベース |
| デバイス機能とプラットフォームAPI | 完全かつ即時対応。新OS機能もリリース初日から利用可能 | ほとんどはプラグイン経由。新規または希少なAPIはネイティブコードが必要 | ブラウザの制約あり。バックグラウンド処理は制限される |
| インターフェースの操作感 | 完全にプラットフォーム固有 | ネイティブに近い。フレームワークと実装の丁寧さによって異なる | Web標準。フォームやコンテンツ表示に適している |
| パフォーマンスの余裕 | 最高水準。グラフィック、カメラ、リアルタイム処理に最適 | ビジネス・コマース・コンテンツ系アプリの大半に十分 | コンテンツとフォームには問題ない。高負荷処理には最も弱い |
| リリース経路 | 2つのアプリストア、2つの審査キュー | 2つのアプリストア。コンテンツの一部はリリースなしで更新可能 | ストア審査なし。更新は即時反映 |
| 採用と保守 | 2種類の専門スキルセットの維持が必要 | 主なスキルセットは1つ、エッジケースにネイティブの知識が必要 | Webスキル |
ネイティブ画面と共有ロジックの組み合わせは、インターフェースとデバイスアクセスの面ではネイティブ列に相当し、ビジネスロジックはクロスプラットフォーム列に近づきます。ロジックの重複は減りますが、2つのインターフェースは依然として開発が必要です。
手法を決定する6つの問い
-
アプリはデバイス機能をどれだけ深く使用しますか?
継続的な位置情報取得、Bluetoothアクセサリ、カメラ処理、拡張現実(AR)、大量のオフラインデータはネイティブ、またはネイティブモジュールを計画したクロスプラットフォームが適しています。
-
iOSとAndroidを同時にリリースしなければなりませんか?
同時リリースが必要な場合、1つのコードベースはたいていより早く同等水準に達し、その状態を維持できます。いずれかのプラットフォームが市場を支配している場合は、まず1つのネイティブアプリから始めることもできます。
-
インターフェースはどれほど要求が高いですか?
複雑なアニメーションやグラフィックにはネイティブ、または独自インターフェースを描画するフレームワークが適しています。フォーム、リスト、チェックアウトはそれほど要求が高くありません。
-
5年間誰が保守しますか?
アプリは毎年のOSとストアの変更を乗り越えなければなりません。今年流行しているものではなく、自社チームまたはパートナーがスタッフを維持できるものを選びましょう。
-
他のチャネルと共有できるものは何ですか?
JavaScriptとReactで開発するWebチームは、React Nativeアプリとスキルやロジックの一部を共有できます。Webファーストの製品はまだアプリが不要な場合もあります。
-
どれくらいの頻度で開かれますか?
毎日使われるツールはホーム画面のアイコンに値します。B2B印刷発注ポータルのような月に数回しか使われない発注ポータルは、まずレスポンシブウェブアプリとして提供するのが通常はより適切です。
アプリの費用を負担し運用する担当者とともに、これら6つの問いに照らして各手法を評価してください。2つの手法が同点になった場合は、保守担当者がすでに知っている方を選びましょう。
初回リリース以降の総所有コスト
初回リリースの見積もりは手法間の単純な比較が難しく、ローンチ後にコストが変化するからです。
- 2つのネイティブアプリは開発コストが高く、その後の機能追加作業もおおよそ倍になりますが、プラットフォームの更新がサードパーティのレイヤーを壊すリスクは最も低くなります。
- クロスプラットフォームは機能開発の重複作業のほとんどを省けますが、フレームワークのアップグレード、プラグインの保守、ネイティブ修正が時折発生します。毎年その時間を計画に入れておきましょう。
- 共有ロジックはビジネスロジックとテストの重複を省けます。これはバグが多い部分でもありますが、インターフェースの作業は倍のままです。
- モバイルWebは運用コストが最も低いですが、本来アプリが必要だった場合は機能、ユーザー継続率、ストアでの露出を失うことになります。
Netbase JSCはモバイルアプリの個別タイムラインを公開していません。SaaS MVPの標準的な範囲は8〜12週間であり、独自バックエンドを持ち両プラットフォームに対応するモバイルプロダクトは、既存APIを使用するシングルプラットフォームアプリよりも範囲の上位に位置します。SaaS MVPアーキテクチャと納品ロードマップでは、その初回リリーススコープがどのように固定されるかを説明しています。これらは標準的な範囲であり、見積もりではありません。
後から手法を切り替える
手法は永続的なものではありませんが、切り替えには時間がかかります。
- モバイルWebからアプリへ。 一般的な移行パスです。バックエンドとAPIを最初からモバイル向けに設計しておけば、アプリは書き直しではなく新しいクライアントとなります。
- クロスプラットフォームからネイティブへ。 通常は画面ごとに行い、デバイス機能を最も必要とする画面から始めます。インターフェースとビジネスロジックの明確な分離が実現を可能にします。
- 2つのネイティブアプリから共有ロジックへ。 ロジック、ネットワーク処理、データを1モジュールずつ移行します。インターフェースはそのまま維持されます。
どの手法を選ぶにしても、WebサイトとアプリとパートナーシステムのためにAPIを1つに統一し、アプリストアのアカウントを自社名義で管理し、サポートする最小アプリバージョンを記録しておきましょう。バックエンド側についてはモバイルアプリのバックエンド・API・オフライン同期で、ローンチ後のパッチ・セキュリティ・リリースのリズムについてはモバイルアプリの保守・セキュリティ・リリース運用で説明しています。
AI機能と手法の選択
AIが単独で手法を決定することはめったにありませんが、2つの点で影響を与えます。カメラのテキスト認識やオフラインでの提案など、デバイス上で動作しなければならない機能は、プラットフォームの機械学習APIへのアクセスが必要であり、ネイティブコードまたはネイティブモジュールが最初にそこに到達します。アシスタントや自社データへの検索など、クラウドで動作する機能は、どの手法でもバックエンドを通じて呼び出されるため、プロバイダーのキーがアプリ内に含まれることはありません。Netbase JSCは主要な商用およびオープンソースのAIモデルを製品ごとに選択して使用しており、AI支援による変更はすべて人間によるレビューを経ています。以下の各項目は、Netbase JSCにおける成熟度を示しています。
-
納品済み:商品レコメンデーションエンジン。
4over4向けに閲覧・購入履歴から構築され、ネイティブアプリではなくWeb上で稼働しています。
-
成長中の機能:アプリにおけるデバイス上およびクラウドAI機能。
機械学習、NLP、コンピュータービジョン、生成AI機能。4over4の機能を超えた部分はまだ公開済みの事例に紐づいていません。
セキュリティとストアのルールはすべての手法に適用される
セキュリティはフレームワークよりも、その周辺の開発プラクティスに依存します。OWASP Mobile Application Security Verification Standard(MASVS)は、ストレージと暗号化からネットワーク通信と耐障害性まで管理策をグループ化しており、ネイティブとクロスプラットフォームのアプリいずれにも適用されます。AppleのApp Review GuidelinesとGoogle Playのポリシーは、開発手法にかかわらず、各ストアのすべてのアプリに適用されます。Netbase JSCのセキュリティプラクティスは、セキュアコードレビューとバージョン管理、転送中のTLSと保存時のAES暗号化、ロールベースアクセス制御と管理ダッシュボードのMFAをカバーしています。
Netbase JSCはどのようにアプリを開発しますか?
Netbase JSCはReact Nativeでクロスプラットフォームアプリを開発し、機能が要求する場合はネイティブを選択します。React Nativeの開発者は長年にわたって採用してきた役職の1つです。3〜30名のチームは、ビジネスアナリスト、プロジェクトマネージャー、ソリューションアーキテクト、開発者、QA、UI/UXデザイナーで構成され、ディスカバリー後通常1〜2週間以内に作業を開始します。Netbase JSCのプロジェクトのほとんどはディスカバリー後に合意された請負契約で納品され、カスタム開発においてはクライアントがそのために作成されたIPを所有します。モバイルアプリ開発サービスではエンゲージメントの詳細を、フロントエンド・モバイルテクノロジーページではより広いスタックを説明しており、再利用可能なビルディングブロックが製品に適合する場合はモバイルプロダクトアクセラレーターが出発点となります。Netbase JSCの受賞歴には、Top Mobile App Developers 2020、Clutchのバッジがあります。
存在する納品実績と存在しないもの
- 存在するもの。 Dey Pageの実績では、iOSとAndroid向けの1つのReact Nativeコードベースと、Webディレクトリのバックエンドをベースにしたコンシューマーモードとビジネスオーナーモードの両方を説明しています。RB Marketplaceの実績では、Android向けにマーケットプレイスAPIを使用した顧客向けショッピングアプリを説明しており、iOSは拡張スコープに含まれています。
- 存在しないもの。 いずれの実績もダウンロード数、評価、使用状況、パフォーマンス、コストの数値を公開しておらず、RB Marketplaceの実績はフレームワーク名を記載していないため、いずれも一方の手法がより安価または高速であることの証拠として提示しているわけではありません。同一製品のネイティブとクロスプラットフォームの両方を比較した実績はありません。
このガイドの限界は何ですか?
- フレームワークに関する記述は、アクセス日時点での各フレームワーク自身のドキュメントに基づいています。フレームワークは急速に変化するため、決定前に最新バージョンを確認してください。
- ここでのコスト比較は方向性を示すものです。公表されているコスト削減率はソースと手法によって異なり、いずれもNetbase JSCの数値として使用していません。
- この基準はビジネス・コマース・コンテンツ系アプリに適しています。ゲームやハードウェア製品には独自の分析が必要です。
Netbaseのコンサルタントと次のステップを計画する
よくある質問
両プラットフォーム向けのビジネスアプリであれば、ほとんどの機能開発を一度で行えるため、通常はそうです。アプリがネイティブコードを必要とするデバイス機能に依存している場合、節約効果は小さくなり、フレームワークのアップグレードによる毎年の作業が追加されます。
フォーム、リスト、カタログ、チェックアウトについては、ユーザーがほとんど気づかないことが多いです。重いグラフィック、リアルタイムのカメラ処理、拡張現実はネイティブコードが依然として優位です。
はい、画面ごとに可能です。ただし、ビジネスロジックとバックエンドを初回リリースからインターフェースと切り離しておく必要があります。
常にそうとは限りません。サービスを使用する頻度が低く、デバイス機能やオフライン動作が不要であれば、レスポンシブウェブアプリが最初のステップとして適していることが多いです。
次のステップ
アプリが実現すべき機能、必要なプラットフォーム、接続すべきシステムをご共有ください。ソリューションレビューを予約し、手法を一緒に評価します。モバイルアプリ開発のページもご覧いただけますし、Netbase JSCのインサイトも参照できます。
関連サービスとソリューション
コマース・プロダクトチーム向けモバイルアプリ開発(AI機能搭載)
Netbase JSCは、リテーラー・スタートアップ・プロダクトチームが既存のスマートフォンで顧客にリーチできるよう、クロスプラットフォームReact Nativeアプリおよびモバイル最適化コマースを提供します。高速表示とコンバージョンを実現し、電話が効果を発揮する場面でAIを活用します。各アプリはディスカバリーでスコープを定め、既存のバックエンドとAPIを再利用し、ストアリリースまでお客様とともに計画します。
詳しく見る
AIに対応したモバイルプロダクトアクセラレーター:認証・プッシュ・オフライン・決済の再利用可能な基盤
モバイルアプリアクセラレーターは、サインイン・プッシュ通知・オフラインデータ・決済をカバーする再利用可能なアプリ基盤のセットです。Netbase JSCが新しいプロダクトごとに設定することで、AI検索・パーソナライゼーション・オンデバイスAIなど、アプリを差別化する部分からビルドを開始できます。これはグロース段階のケイパビリティであり、クロスプラットフォームのReact Nativeスキルによるカスタム開発として提供されます。
詳しく見る
Netbaseにリモートで依頼する
Netbaseのすべての案件はリモートで納品されるため、どの国・業界のクライアントとも協業できます。これまで80か国のクライアントと実績があります。契約・請求書はNetbase JSCが発行し、支払いはNetbase JSCの銀行口座への振込またはPayPal Businessで行います。CEO・Huy Nguyen(David)にWhatsAppまたはメールでご連絡ください。
プロジェクトを相談する
Netbase JSCは、デジタルプロダクトおよびAI活用ビジネスシステムの設計・構築・モダナイゼーション・運用を支援します。project@netbasejsc.com
+84 937 869 689
91 Nguyen Chi Thanh, Dong Da, Hanoi, Vietnam
ご連絡ください
構築・モダナイゼーション・運用したい内容をお聞かせください。