クロスプラットフォームアプリ開発は、1つのコードからiOSとAndroidの両方のアプリを作る開発手法です。OSごとに別のコードを書くネイティブ開発と比べて、画面と処理を二重に作る手間が減ります。ただし減るのは開発工数の一部で、OSごとのテストやストア審査、端末固有機能との連携は残ります。この記事では、クロスプラットフォーム開発の仕組みを4つの方式に分けて説明し、メリット・デメリット、Flutter・React Native・.NET MAUI・Kotlin Multiplatformの2026年10月時点の比較、開発会社に依頼するときの見積もりの見方までを整理します。
まとめ:クロスプラットフォームアプリ開発で減る工数と選び方の要点
- 減るもの:画面とビジネスロジックをOSごとに二重に実装する工数、両OSの機能差をそろえる管理の手間。
- 減らないもの:iOS・Android両方の実機テスト、署名とストア審査、既存のプラグインで要件を満たせないOS固有機能のネイティブ実装。
- 方式は4つ:WebView型(Capacitor等)、ネイティブUI変換型(React Native・.NET MAUI)、独自描画型(Flutter)、ロジック共有型(Kotlin Multiplatform)。どこまで共通化するかが違います。
- 選び方:React・Webの人材がいればReact Native、C#資産があれば.NET MAUI、UIを両OSで完全にそろえたいならFlutter、既存のネイティブアプリを残して処理だけ共通化するならKotlin Multiplatform。
- 2026年の変化:Shopifyは2026年9月、コーディングエージェントで二重実装のコストが下がったとしてReact Nativeからネイティブへの移行を発表し、Shopアプリは移行を終えています。共通化の価値は、チームとアプリごとに見積もり直す時期に入っています。
クロスプラットフォームアプリ開発の仕組みとネイティブ開発との違い
クロスプラットフォームアプリ開発とは、共通の言語とフレームワークで書いたコードから、iOS・Android(製品によってはWeb・Windows・macOSも)向けのアプリを生成する手法です。ネイティブ開発では、iOSはSwift、AndroidはKotlinで別々に書き、2つのコードベースを並行して保守します。クロスプラットフォーム開発はこのうち共通化できる部分を1つにまとめ、OSごとの差分だけを個別に書きます。
完成するのはiOS用とAndroid用の2つのアプリで、App StoreとGoogle Playにそれぞれ申請します。共通化できる範囲は次の4方式で大きく変わります。
クロスプラットフォームの4方式:WebView型・ネイティブUI変換型・独自描画型・ロジック共有型
クロスプラットフォームのフレームワークは、画面をどう描くかとどこまで共有するかで4つに分かれます。
| 方式 | 代表例 | 画面の描き方 | 共有する範囲 | 弱み |
|---|---|---|---|---|
| WebView型 | Capacitor・Cordova | アプリ内ブラウザでHTML表示 | 画面と処理 | 操作感がWeb寄り |
| ネイティブUI変換型 | React Native・.NET MAUI | OS標準の部品に変換 | 画面と処理 | OSごとの見た目差 |
| 独自描画型 | Flutter | 独自エンジンで全画面を描画 | 画面と処理 | OS標準UIの追随が遅れる |
| ロジック共有型 | Kotlin Multiplatform | 各OSのネイティブUI | 処理とデータ層 | 画面は2本書く |
画面まで共有する3方式は実装を1回にまとめやすく、ロジック共有型は画面を各OSで書く分の工数が残ります。見た目の作り方は共有範囲とは別の軸で、React Nativeと.NET MAUIは画面を共有しつつOS標準の部品で表示します。Kotlin Multiplatformは既存アプリに一部の機能から段階的に組み込める方式で、UIまで共有したい場合はCompose Multiplatformを組み合わせます。
ハイブリッドアプリ(PhoneGap・Cordova)とCapacitorの関係
WebView型は「ハイブリッドアプリ」とも呼ばれ、2010年代はAdobeのPhoneGap(中身はApache Cordova)が代表でした。Adobeは2020年8月にPhoneGapとPhoneGap Buildの開発終了を発表し、クラウドビルドのPhoneGap Buildは2020年10月1日に停止しています(SD Timesの報道)。PhoneGapで作ったアプリを今から改修する場合は、Cordovaへ直接移るか、Ionic社のCapacitorへ移行するのが現実的です。Capacitorは2026年10月7日時点で8.5.3が最新で、Web資産をそのままアプリに載せたい場合の第一候補です。仕組みはCapacitorとは?Ionic製ネイティブランタイムの仕組みと8系要件・採用判断を解説で解説しています。
クロスプラットフォームアプリ開発のメリット
最大のメリットは、同じ機能をiOSとAndroidで二重に作らずに済むことです。重要度の高い順に並べると次のとおりです。
- 機能を1回の実装で両OSに出せる:画面・入力チェック・API通信・状態管理を1つのコードで書くため、同じ仕様を2チームで実装する工数がなくなります。
- 両OSの機能差が生まれにくい:ネイティブ2本立てでは「iOSだけ先に新機能が出る」ずれが起きがちです。共通コードなら同じ実装から両OS向けに出せるため、機能差を抑えやすくなります(公開はOSごとの審査を通った時点です)。
- 不具合修正が1か所で済む:共通部分のバグは1回直せば両OSに反映され、保守の担当者も1チームにまとめられます。
- モバイル未経験の開発者が参加しやすい:React NativeならReact、.NET MAUIならC#の経験者が、そのままアプリ開発に入れます。
ShopifyはReact Nativeを全面採用した2020年の判断理由として、同じ機能を二度作らないこと、開発者がスタック横断で働けること、機能差を追いかける時間を減らすことの3点を挙げ、それらは実際に得られたと書いています(Shopify Engineering)。採用を判断するときは、共通化できる画面・処理の範囲と、OS別に残る作業やフレームワーク更新への追随という追加工数を並べて比べます。
クロスプラットフォームアプリ開発のデメリットと見落としやすいリスク
OS新機能への追随の遅れと性能の上限
AppleやGoogleが新しいAPIやUIを発表しても、フレームワークが対応するまでには時間差があります。発表直後から使いたい場合は、その部分だけネイティブコード(プラグイン)を自作します。独自描画型のFlutterは、iOSの新しい見た目(Liquid Glass等)を自前で再現する必要があり、OS標準の部品をそのまま使うネイティブより追随が遅れやすい方式です。重い3D描画や大量のリアルタイム処理も、ネイティブ実装の方が有利な場面が残ります。
ネイティブの知識も不要にはなりません。ビルド設定、証明書と署名、ストア申請、OS固有機能のプラグイン実装ではiOS・Androidの知識が必要です。LINEで出前館アプリのReact Native開発を担当していたエンジニアも、2020年のブログで、それ以前のUnityでのゲーム開発の経験として、課金処理などネイティブ機能を使うときのブリッジ実装と、iOS・Androidに詳しいメンバーの不足による対応の遅れを挙げ、他のクロスプラットフォーム技術でも起こりうる問題だと書いています(LINE Engineering Blog)。
フレームワークの終了・方針転換というリスク(PhoneGap・Xamarin・App Center)
ネイティブ開発ではOSそのものが土台ですが、クロスプラットフォーム開発ではOSとアプリの間にフレームワークが1層入り、その提供元の判断にアプリの寿命が左右されます。実際に次の終了が起きています。
| 製品 | 提供元 | 終了日 | 移行先 |
|---|---|---|---|
| PhoneGap Build | Adobe | 2020年10月1日 | Cordova・Capacitor |
| Xamarin(全SDK) | Microsoft | 2024年5月1日 | .NET MAUI・.NETの各OS向けSDK |
| App CenterのCodePush | Microsoft | 2025年3月31日 | 自前のCodePushサーバー等 |
Xamarinは2024年5月1日で全SDKのサポートを終え、Xamarin.Formsは.NET MAUIへ、Xamarin.Android・Xamarin.iOSは.NETの各OS向けSDKへの移行が案内されています(Xamarinサポートポリシー)。React Nativeのアプリで広く使われたOTA配信のCodePushは、App Centerの主要機能とともに2025年3月31日で提供を終えました。App CenterのAnalytics & Diagnosticsだけは2027年3月末までサポートが延長されています(App Center Retirement)。ライブラリ単位でも同じことが起きます。Shopifyはネイティブへの移行に伴い、自社が公開してきたReact Native向けライブラリRestyleを2026年末で保守終了すると告知しています。
このリスクは避けられません。採用時点で「提供元が撤退したらどこへ移るか」を決めておくのが現実的な対策です。
主要フレームワーク4種の比較(2026年10月時点)
2026年に新規のスマホアプリで候補になるのは、Flutter・React Native・.NET MAUI・Kotlin Multiplatformの4つです。版番号は2026年10月11日に各公式レジストリで確認した値です。
| フレームワーク | 開発元 | 言語 | 方式 | 最新安定版 |
|---|---|---|---|---|
| Flutter | Dart | 独自描画型 | 3.47.7(2026-10-08) | |
| React Native | React Foundation | JavaScript・TypeScript | ネイティブUI変換型 | 0.87.1(2026-08-26) |
| .NET MAUI | Microsoft | C#・XAML | ネイティブUI変換型 | 10.0.110(.NET 10) |
| Kotlin Multiplatform | JetBrains | Kotlin | ロジック共有型 | Kotlin 2.4.21(2026-10-08) |
版番号の出典はFlutter SDKアーカイブ、React NativeのGitHub Releases、.NET MAUIサポートポリシー、Kotlinリリース履歴です。React Nativeはおよそ2か月ごと、Flutterはおよそ3か月ごとに新しい版を出しています。着手時点で公式サイトの最新版を確認してください。
Flutter:両OSで同じ画面を描く独自描画型
Googleが開発し、言語はDartです。基本のUIはOSの部品を使わず、Impellerという自前のレンダリングエンジンで描くため(地図などネイティブのビューを埋め込む仕組みもあります)、iOSとAndroidでピクセル単位まで同じUIを再現できます。Impellerは2024年12月のFlutter 3.27で新しいAndroid端末でも既定になりました(What’s new in Flutter 3.27)。2026年8月12日に3.47.0が出て、10月8日の3.47.7が最新の安定版です。ブランド独自のデザインやアニメーションを両OSでそろえたいアプリに向きます。
React Native:Reactの人材をそのまま使えるネイティブUI変換型
Metaが開発し、2026年2月からはLinux Foundation傘下のReact Foundationが所有しています(React公式ブログ)。JavaScript・TypeScriptとReactで書きます。画面はOS標準のUI部品に変換されるので、各OSらしい見た目と操作感になります。2024年10月の0.76で新アーキテクチャ(Fabric・TurboModules・JSI)が既定になり、2025年10月の0.82からは新アーキテクチャしか使えなくなりました(React Native 0.82)。最新は2026年8月11日の0.87系です。開発の土台としてはExpoがよく使われ、最新のExpo SDK 57はReact Native 0.86に対応しています(最新のReact Nativeと1版ずれる点に注意)。Web・Reactのエンジニアを抱える組織ほど立ち上がりが速くなります。仕組みはReact Nativeとは?仕組みとNew Architectureの構造・採用判断を実装目線で解説【2026年版】で詳しく解説しています。
.NET MAUI:C#資産があり、Windowsも狙う場合の選択肢
Microsoftの.NET Multi-platform App UIで、C#とXAMLを使ってiOS・Android・macOS・Windows向けアプリを作れます。Xamarin.Formsの後継で、版は.NET本体と同期します。注意したいのはサポート期限で、.NET 10自体はLTSとして2028年11月14日まで続きますが、.NET MAUI 10のサポートは2027年5月11日までです(.NET MAUIサポートポリシー)。MAUIは.NETのLTSに関係なく、毎年の新版へ上げていく前提で計画します。次の.NET 11は2026年11月10日に正式版が出る予定です。社内にC#・.NETの開発者がいる業務アプリや、スマホとWindowsの両方で使う現場アプリで有力です。将来性は.NET MAUIの将来性は?サポート期限・Xamarin後継・Flutter比較から2026年の採用を判断するで検討しています。
Kotlin Multiplatform:ネイティブUIを残して処理だけ共有するロジック共有型
JetBrainsが開発し、Googleも2024年5月のGoogle I/OでAndroidでの公式サポートを発表しました(Android Developers Blog)。他の3つと違い、データ層・通信・ビジネスロジックをKotlinで共有し、画面は各OSのネイティブ(SwiftUI・Jetpack Compose)で作るのが基本です。UIまで共有したい場合はCompose Multiplatformを併用でき、iOS向けは2025年5月の1.8.0で安定版になり、最新は2026年9月22日の1.12.1です。既存のネイティブアプリを作り直さず、少しずつ共通化したいチームに向きます。概要はKotlin Multiplatformとは?仕組みと共有できる範囲・安定度を解説にまとめています。
この4つ以外では、ByteDanceが2025年に公開したLynx(Lynxとは?ByteDance製クロスプラットフォーム開発フレームワークの特徴とReact Native・Flutterとの違い)も登場しています。採用を検討する場合は、委託先にそのフレームワークでのリリース実績と保守体制があるかを個別に確認してください。
フレームワークの選定基準:既存スキル・UI要件・対象OS
チームの言語経験との適合
立ち上がりの速さを最も左右するのは、既に持っている言語です。React・Webのエンジニアが中心ならReact Native、C#・.NETのチームなら.NET MAUI、Kotlinの人材がいるならKotlin Multiplatformです。FlutterはDartを新たに覚える必要がありますが、環境診断のflutter doctorなど公式ツールが一式そろっています。
UIの共通化とOS標準の操作感の優先度
ブランド独自のデザインを両OSで完全に一致させたいならFlutterです。逆に「iPhoneではiPhoneらしく、AndroidではAndroidらしく」見せたい場合は、OS標準の部品を使うReact Nativeか.NET MAUI、あるいは画面をネイティブで書くKotlin Multiplatformを選びます。FlutterとReact Nativeの言語・設計思想の違いはFlutterとReact Nativeの違いと選び方|Flutterとは何かから2026年の判断基準までで比較しています。
対象OSと既存アプリの有無による違い
スマホに加えてWindowsやmacOSまで1つのコードで出すなら、.NET MAUI(Windows・macOS)、Flutter(Windows・macOS・Linux)、Compose Multiplatform(デスクトップ)が候補です。Webまで共有したいならReact Native(React Native Web)やFlutter(Flutter Web)が候補です。既にネイティブアプリがあり、全面的な作り直しを避けたい場合はKotlin Multiplatformが最も移行しやすい方式です。KMPと他の2つの詳しい比較はKotlin Multiplatform(KMP)とFlutter・React Native比較|導入判断を参照してください。
ネイティブ開発を選ぶべきケース
次のどれかに当てはまるなら、クロスプラットフォームは選びません。
- 発表直後のOSの新API・新UIを使うことが、アプリの競争力そのものになっている。
- カメラ映像のリアルタイム処理など性能要件が厳しく、候補のフレームワークで試作しても要件を満たせなかった(3Dゲームは別枠で、Unityなどのゲームエンジンが選択肢になります)。
- 対象がiOSかAndroidの片方だけで、今後も両対応の予定がない(共通化の利点が出ない)。
2026年に入って、この判断に新しい材料が加わりました。React Nativeを2020年から全面採用していたShopifyが、2026年9月10日にSwiftとKotlinのネイティブ開発へ戻すと発表したことです。理由はReact Nativeの欠陥ではなく、コーディングエージェントの性能向上で「同じ機能を2回作る」コストが下がったことだと説明しています。エージェントはiOS版を参考にAndroid版を実装でき、両OSの機能差をそろえる手間も大きく減ったといいます。同社のShopアプリは、概念実証から作り直したネイティブ版のストア公開まで12週間で移行し、起動時間はiOSで23%、Androidで50%短くなりました(Migrating Shop app from React Native to native)。
ただしShopify自身も「ネイティブでも2つのプラットフォームを作って保守するコストは消えていない」と書いています。共通化の利点が小さくなったのは、iOS・Android両方に強いエンジニアとAIを使った開発体制がそろった組織の話です。モバイル専任のエンジニアが少ない組織にとっては、1つのコードで保守できる利点は今も大きいままです。
開発会社へ依頼するときの見積もりの見方と確認項目
見積もりで減る工程と減らない工程
「クロスプラットフォームなら費用が半分」という説明を受けたら、工程ごとに分けて確認してください。減るのは主に画面とロジックの実装で、その幅も方式で変わります。Flutterなら画面まで共有できますが、Kotlin Multiplatformでは画面をiOS・Androidで別に書くため、共有されるのは処理とデータ層だけです。
| 工程 | ネイティブ2本 | クロスプラットフォーム |
|---|---|---|
| 要件定義・UI設計 | 1回 | 1回(差はほぼ無し) |
| 画面・ロジック実装 | OSごとに2回 | 共通部分は1回 |
| OS固有機能の実装 | OSごと | OSごと(プラグイン) |
| テスト | OSごと | OSごと(実機は両方必要) |
| 署名・ストア申請 | OSごと | OSごと |
| リリース後の保守 | 2本のコード | 1本+FW更新対応 |
要件定義やテスト、ストア申請はどちらでも残るため、総額の削減幅は実装の比重で決まります。保守には「フレームワーク本体の更新への追随」という、ネイティブには無い作業が加わる点も見積もりに入っているか確認します。工程ごとの費用感はアプリ開発の費用相場は?規模・OS・開発手法別の内訳と抑え方を発注者視点で解説、発注前に固めておく範囲はアプリ開発の要件定義とは?決める項目・進め方と発注前に固める範囲を解説で整理しています。
委託先に確認する4項目
- 採用予定フレームワークでのリリース実績:FlutterかReact Nativeかで必要な技術は別物です。同じフレームワークでストアに公開した実績と、その後の版上げを続けているかを聞きます。
- ネイティブ側の対応力:決済・Bluetooth・プッシュ通知などのプラグインを自作できるか。クロスプラットフォームでもSwift・Kotlinを書ける人が必要です。
- フレームワーク更新とOS更新の保守体制:毎年のiOS・Androidのメジャー更新(Android 16は2025年6月公開)や、React Nativeの2か月ごとの更新に、契約後どう追随するか。
- 撤退時の移行方針:採用するフレームワークや主要ライブラリが保守終了したとき、どこへ移るかの見立てを持っているか。
初期費用の安さだけで選ぶと、版上げや新OS対応で後から費用が膨らみます。リリース後の保守フェーズまで含めて比べてください。issohでもFlutter / React Native開発を受託しており、フレームワークの選定から相談を受け付けています。
よくある質問
クロスプラットフォーム開発ではどの言語を使いますか?
フレームワークによって決まります。FlutterはDart、React NativeはJavaScriptまたはTypeScript、.NET MAUIはC#とXAML、Kotlin MultiplatformはKotlinです。ただしOS固有機能をプラグインとして実装する場面では、iOS側でSwift、Android側でKotlinも書きます。チームが既に使っている言語に合わせてフレームワークを選ぶと、立ち上がりが最も速くなります。
React Nativeとは何ですか?
Metaが開発し、2026年2月からはReact Foundationが所有する、JavaScript・TypeScriptとReactでiOS・Androidアプリを作るフレームワークです。画面はOS標準のUI部品に変換されて表示されます。2025年10月の0.82以降は新アーキテクチャのみで動き、2026年10月時点の最新は0.87系です。大規模アプリでの採用例が多い一方、2020年から全面採用していたShopifyは2026年9月にネイティブへ戻す判断をしています。
PhoneGapは今も使えますか?
開発が終了しているため、新規採用は勧めません。Adobeは2020年8月にPhoneGapの開発終了を発表し、クラウドビルドのPhoneGap Buildは2020年10月1日に停止しました。中身のApache CordovaはOSSとして残っていますが、既存のPhoneGapアプリを改修するなら、CordovaかIonic社のCapacitorへ移行するのが一般的です。
.NET MAUIはXamarinとどう違いますか?
.NET MAUIはXamarin.Formsの後継で、.NET本体に統合された枠組みです。Xamarin.FormsではOSごとに分かれていたプロジェクトが1つにまとまり、iOS・Android・macOS・Windowsを1つのプロジェクトから出せます。Xamarinは2024年5月1日で全SDKのサポートを終えたため、Xamarin.FormsのアプリはMAUIへ、Xamarin.Android・Xamarin.iOSのアプリは.NETの各OS向けSDKへの移行が前提です。MAUI 10のサポートは2027年5月11日までなので、移行後も毎年の版上げを計画に入れてください。
クロスプラットフォームでもネイティブの知識は必要ですか?
必要です。ビルド設定、証明書と署名、ストア申請、カメラや決済などOS固有機能のプラグイン実装では、iOS・Androidの知識が求められます。内製でも委託でも、iOSとAndroidの両方で起きる問題を解決できる体制があるかを確認してください。