スマホアプリの開発を相談したら、開発会社から「Flutterで作ります」「React Nativeで作ります」と提案された。見積もりには「iOS・Android同時開発」とあるものの、「ネイティブ開発」で作る会社もあると聞いて、何が違うのか分からなくなった。スマホアプリを初めて発注する方が、提案書の段階でつまずきやすいポイントです。
「スマホアプリをFlutterやReact Nativeで作ると言われた。ネイティブ開発と何が違うのか分からない…」
先に結論をお伝えします。FlutterやReact Nativeは「1つのプログラムでiPhone用とAndroid用の両方のアプリを作る」ための道具で、多くの業務アプリやサービスでは有力な選択肢です。ただし、端末の特殊な機能を深く使うアプリでは、ネイティブ開発のほうが向くこともあります。どちらが正解というより、「作りたいアプリの中身に合っているか」で決まります。
この記事では、3つの作り方の違いを表で整理し、発注者が確認したいポイントと、そのまま打ち合わせで使える質問例を紹介します。(情報は2026年10月時点の公式サイトをもとにしています)
スマホアプリの作り方は大きく3つある
まず、言葉を整理しましょう。
- ネイティブ開発(=iPhone用・Android用をそれぞれ専用の方法で作る):iPhoneはSwift、AndroidはKotlinという言語で、OSごとに別々に作ります。
- クロスプラットフォーム開発(=1つのプログラムで両方の端末向けに作る):FlutterやReact Nativeがこれにあたります。
- Webアプリ/PWA(=ブラウザで動くものをアプリのように使う):ストアに公開せず、ブラウザやホーム画面から使います。
FlutterとReact Nativeは、同じ「クロスプラットフォーム」でも中身が違います。
| 項目 | Flutter | React Native | ネイティブ開発 |
|---|---|---|---|
| 開発元 | Meta(旧Facebook) | Apple(iPhone)/Google(Android) | |
| 使う言語 | Dart | JavaScript(React) | Swift/Kotlin |
| 作るプログラム | 1つ(iPhone・Android共通) | 1つ(iPhone・Android共通) | 2つ(OSごとに別) |
| 画面の作り方 | 画面の見た目を自前で描く | 各OS標準の部品を使って表示 | 各OS標準の部品を直接使う |
| 向いている例 | 独自デザインを両OSで揃えたい | Web開発の経験者が多い体制 | 端末機能を深く使う、最高の操作感が必要 |
※ FlutterはGoogleの公式サイトで「1つのコードで、モバイル・Web・デスクトップなど複数の環境に向けて作れる」と説明されています。React Nativeは公式サイトで「JavaScriptで書き、各プラットフォームの本物の画面部品で表示される」と説明されています。
📰 出典:Flutter公式サイト
📰 出典:React Native公式サイト
発注者にとって何が変わるのか
技術の細部より、発注者に関係するのは「費用・期間・将来の保守」の3つです。
開発の手間が減りやすい(ただし半分になるとは限らない)
iPhone用とAndroid用を別々に作る場合、画面や処理を2回作ることになります。クロスプラットフォームでは、共通部分を1回で作れるため、一般に手間を抑えやすくなります。
ただし、費用が単純に半分になるわけではありません。ストア公開の準備、OSごとの動作確認、端末ごとの細かな調整は、どの方式でも必要だからです。「同時開発だから安い」と決めつけず、見積もりの内訳で確認しましょう。
端末の機能を深く使うほど、方式の差が出やすい
カメラ、位置情報、Bluetooth、決済、通知、生体認証など、端末の機能を使う場面では、クロスプラットフォームでも多くは「プラグイン(=既製の追加部品)」で対応できます。一方で、新しいOSの機能にすぐ対応したい、特殊な周辺機器と連携したいといった場合は、ネイティブの部分を別途作ることがあります。ここが費用や期間の差になりやすい点です。
将来の保守は「人が見つかるか」と「更新に追従できるか」
OSは毎年のように更新されます。方式に関わらず、更新への対応は保守の仕事です。選んだ技術の担い手が多いか、公式の更新が続いているかを確認しておくと、開発会社を変えるときにも困りにくくなります。
発注者が確認したい5つのポイント
- なぜその方式を選んだのか:「得意だから」だけでなく、アプリの内容に合う理由を説明してもらう
- 使う端末の機能:カメラ・位置情報・通知・決済など、必要な機能を洗い出して伝える
- iPhoneとAndroidで見た目や動きを揃えたいか:OS標準の見た目に合わせたいのか、独自デザインで統一したいのか
- 対応するOSの範囲:どの古さのOSまで動かすかで、費用が変わる
- ストア公開と保守の範囲:アカウントの名義、審査対応、OS更新への対応が契約に含まれるか
やりがちな失敗
- 「両OS同時だから半額」と期待してしまう:共通化できる範囲は、アプリの中身で変わります。
- 端末機能の要件を後から追加する:「Bluetoothで機器とつなぎたい」と後から言うと、方式の見直しになることがあります。
- ソースコードとアカウントの引き渡しを決めていない:開発会社を変えられなくなる原因になります。
発注者がやること チェックリスト
- ☐ 作りたいアプリで使う端末の機能(カメラ・位置情報・通知・決済など)を書き出した
- ☐ iPhoneだけか、Androidも必要か、優先順位を決めた
- ☐ 見た目をOS標準に合わせたいか、独自デザインで揃えたいかを決めた
- ☐ 提案された方式を選んだ理由を、開発会社に文章で説明してもらった
- ☐ 見積もりに、ストア公開・OS更新対応・動作確認の端末数が含まれているか確認した
- ☐ ソースコードとストア開発者アカウントの名義・引き渡し条件を確認した
開発会社への質問例
- 「このアプリでFlutter(またはReact Native)を選んだ理由を、ネイティブ開発と比べて教えてください」
- 「当社が必要とする端末機能のうち、追加の作り込みが必要になりそうなものはどれですか」
- 「iPhoneとAndroidで、見た目や動きが変わる部分はありますか」
- 「OSのバージョンが更新されたとき、対応は保守費用に含まれますか」
- 「将来、別の開発会社に引き継ぐ場合、ソースコードとストアのアカウントはどう渡されますか」
まとめ
FlutterやReact Nativeは、iPhoneとAndroidの両方を効率よく作るための現実的な選択肢です。ただし、「ネイティブより必ず安い・必ず良い」わけではなく、アプリの中身に合っているかどうかが判断の軸になります。提案された理由を聞き、端末機能・対応OS・引き渡し条件の3点を文章で確認しておけば、発注後のすれ違いを減らせます。








