필사 모드: モバイル開発 2026 完全ガイド — Swift 6・SwiftUI 6・Kotlin Multiplatform・Jetpack Compose・Flutter 4・React Native 0.78・Expo SDK 53 徹底解説
日本語> 「片方ではApple Intelligenceの導入でApp Intentsを書き直しているiOSチームがいて、もう片方ではCompose MultiplatformでiOS/Androidのコードを80%共有し始めたKotlinチームがいる。2026年のモバイルは『唯一の答え』が消えた時代だ。」 — Stack Overflow Developer Survey, 2025
モバイル開発は2020年にSwiftUI 1.0とJetpack Compose 1.0が公開されてから6年で全く異なる風景になりました。両陣営とも**宣言的UI**へ移行し、Kotlin Multiplatformは2024年11月に正式安定化(GA)を迎え、Compose Multiplatform 1.7と合わせて「iOS・Android・Desktop・Webを1つのコードベースで」が現実になりました。一方でFlutterは4.xでImpellerレンダラーを全面採用し、React Native 0.78はNew Architecture(Fabric + TurboModules + Hermes)をデフォルトに引き上げました。
2026年5月時点で、モバイル開発は5陣営に分かれました — **ネイティブ優先(Swift 6 + Kotlin)、クロスプラットフォーム・ネイティブ(KMP + Compose Multiplatform)、独自レンダラー(Flutter)、JSブリッジ(React Native + Expo)、Webコンテナ(Capacitor + Ionic + Tauri Mobile)**。さらにその上にApple Intelligence・Health Connect・DMAマーケットプレイスのようなOS/政策レベルの変化が重なっています。本記事では、Swift 6 + SwiftUI 6、Kotlin Multiplatform 2、Jetpack Compose、Flutter 4、React Native 0.78、Expo SDK 53、Capacitor 6、.NET MAUI、Tauri Mobile 2に加え、Fastlane・EAS・RevenueCat・Firebaseまで一気に整理します。
1. 2026年モバイル開発の地図 — 5陣営に分化したエコシステム
2026年のモバイルフレームワークは大きく5カテゴリに分けられます。
| カテゴリ | 代表スタック | 主な特徴 |
|---|---|---|
| ネイティブ優先 | Swift 6 + SwiftUI 6、Kotlin + Jetpack Compose | OS新機能を即時利用、最高の性能とUX |
| クロス・ネイティブ | Kotlin Multiplatform 2 + Compose Multiplatform 1.7 | ビジネスロジック・UIを共有、ネイティブのビルド成果物 |
| 独自レンダラー | Flutter 4 (Impeller) | 1コード1ピクセル、OS部品に依存しないUI |
| JSブリッジ | React Native 0.78 + Expo SDK 53 | Web人材の再活用、OTA更新、Fabric/TurboModules |
| Webコンテナ | Capacitor 6 + Ionic、Tauri Mobile 2、.NET MAUI | Webアセットをパッケージ、PWAと親和的 |
核心となる洞察は「**プラットフォーム選択はもはや性能ではなく、採用・コード共有・OS新機能へのアクセス**」という点です。FlutterもImpeller以降は60fpsを安定して出し、React NativeもNew Architectureでネイティブに近い応答性を見せます。だから選択基準は「チームにどんな人材がいるか、OS新機能をどれだけ早く追いたいか、コード共有率をどこまで上げたいか」といった組織的な問いに移りました。
2. Swift 6 + Xcode 16 — Approachable Concurrencyの時代
Swift 6.0(2024年9月)とXcode 16(2024年9月)は、Swift Concurrencyを「オプション」から「デフォルト」へ引き上げました。2026年5月現在Swift 6.2までリリースされており、主な変化は3つです。
第一に、**Strict Concurrency Checking**がデフォルト有効化されました。`Sendable`違反やactor隔離違反がコンパイルエラーになります。第二に、**Approachable Concurrency**(Swift 6.2の新モード)はシングルスレッド環境をデフォルトとし、async導入を明示的に誘導します。UIKitやSwiftUI基盤のアプリでは`MainActor`隔離が自動適用され、並行処理の入門難度が大幅に下がりました。第三に、**typed throws**(`throws(MyError)`)が安定化し、エラー型を明示できるようになりました。
// Swift 6 — Approachable Concurrency + Observation
@Observable
final class UserStore {
var users: [User] = []
var isLoading = false
func load() async throws(NetworkError) {
isLoading = true
defer { isLoading = false }
let url = URL(string: "https://api.example.com/users")!
let (data, _) = try await URLSession.shared.data(from: url)
users = try JSONDecoder().decode([User].self, from: data)
}
}
struct UsersView: View {
@State private var store = UserStore()
var body: some View {
List(store.users) { user in
Text(user.name)
}
.task {
try? await store.load()
}
}
}
`@Observable`マクロは既存の`ObservableObject` + `@Published`の組み合わせを置き換え、SwiftUIが実際に依存するプロパティだけを追跡して不要な再レンダーを減らします。2026年では新規SwiftUIコードのほぼすべてが`@Observable`で書かれます。
3. SwiftUI 6 + UIKit — 宣言的UI統一の総仕上げ
SwiftUI 6(iOS 18、2024年)とSwiftUI 6.x(iOS 19ベータ、2025年)は、これまで不足と指摘されていた領域の大半を埋めました。`ScrollView` APIは精緻になり(`.scrollPosition`、`.scrollTargetBehavior`)、`MeshGradient`や`PaletteSelectionEffect`のような視覚効果が追加され、テキスト入力フィールドのCJK IME処理も安定化しました。
UIKitとの相互運用もより滑らかになりました。`UIHostingController`、`UIViewRepresentable`はそのまま使えますが、**TipKit**・**App Intents**・**WidgetKit**・**ActivityKit**のようなシステム統合領域はすべてSwiftUI優先で設計されています。2026年に新規iOSアプリをUIKitで始める例はほぼなくなり、既存UIKitアプリも新規画面はSwiftUIで書くのが一般的な流れです。
iPad・visionOSも同じSwiftUIコードで動くため、「iOS・iPadOS・visionOS・macOS・watchOS・tvOS」のコード共有が実用的になりました。Apple自身の発表によると、SwiftUI採用率は2025年新規アプリで75%を超えました。
4. SwiftData + Core ML + Vision — データとMLの標準化
**SwiftData**(iOS 17、2023~)はCore Dataの後継フレームワークで、`@Model`マクロで永続化モデルを宣言します。2026年には**SwiftData 2**(iOS 19)でCloudKit同期・History Tracking・Composite Indexes・Lightweight Migrationが安定化されました。
**Core ML**はApple Intelligenceと統合され、Foundation Models framework経由でオンデバイスLLMを公開します。iOS 18.1+対応デバイスで`LanguageModelSession`から約3Bパラメータのオンデバイスモデルを呼び出せ、Private Cloud Computeでより大きなモデルへ委譲もできます。**Vision**フレームワークは画像・テキスト・バーコード・身体・手の認識を、**Translation framework**(iOS 17.4+)は18言語ペアのオフライン翻訳を提供します。
// SwiftData + Apple Intelligence — オンデバイス要約生成
@Model
final class Note {
var title: String
var body: String
var summary: String?
var createdAt: Date
init(title: String, body: String) {
self.title = title
self.body = body
self.createdAt = .now
}
}
@MainActor
func generateSummary(for note: Note) async throws {
let session = LanguageModelSession()
let response = try await session.respond(
to: "Summarize in 2 sentences:\n\(note.body)"
)
note.summary = response.content
}
5. Kotlin Multiplatform 2 — 正式安定化のインパクト
Kotlin Multiplatform(旧KMM)は2024年11月にKotlin 2.0とともに正式安定化(GA)を迎えました。2026年5月現在Kotlin 2.1.xが標準で、K2コンパイラがデフォルトです。KMPの核心的価値は「ビジネスロジック(ネットワーク・DB・ドメイン)をKotlinで書いてiOS・Android・Desktop・Webに共有しつつ、UIは各プラットフォームのネイティブのまま維持する」点です。
iOSの成果物は**Objective-C/Swift framework**として作られXcodeにそのままインポートでき、Androidでは通常のKotlinモジュールとして動作します。JetBrainsはCompose Multiplatform 1.7(2025年)でiOSターゲットを正式安定化し、UIまで共有する選択肢も加わりました。
// commonMain — iOSとAndroidで共有するビジネスロジック
@Serializable
data class User(val id: Long, val email: String, val name: String)
class UserRepository {
private val client = HttpClient {
install(ContentNegotiation) { json() }
}
suspend fun fetchUsers(): List<User> =
client.get("https://api.example.com/users").body()
}
Coupang、Toss、Karrot、Baemin、Kakaoはすべて2024~2025年の間にKMP導入を公表し、2026年には新規アプリの事実上標準アーキテクチャになりました。
6. Compose Multiplatform 1.7 — UIまで共有する選択肢
Compose Multiplatform(JetBrains)はAndroidのJetpack ComposeランタイムをKotlin/Native(iOS)、JS/Wasm(Web)、JVM(Desktop)へ移植したものです。1.7(2025年5月)でiOS安定化・アクセシビリティ・テキスト入力・ナビゲーション・リソース管理がすべてプロダクション準拠のレベルに到達しました。
長所:iOS・AndroidのUIコード共有率が90%を超える事例も珍しくありません。短所:iOSではSwiftUIコンポーネントと自然に混ざらず、「1画面まるごとCompose」または「1画面まるごとSwiftUI」になりがちです。2026年5月現在、Kakao、NHN、JetBrains自社のToolboxアプリ、WakandaなどがCompose Multiplatform iOSをプロダクションで利用しています。
// Compose Multiplatform 1.7 — iOSとAndroidに共有されるUI
@Composable
fun UsersScreen(repo: UserRepository) {
var users by remember { mutableStateOf<List<User>>(emptyList()) }
LaunchedEffect(Unit) { users = repo.fetchUsers() }
Scaffold(topBar = { CenterAlignedTopAppBar(title = { Text("Users") }) }) { padding ->
Column(modifier = Modifier.padding(padding)) {
users.forEach { user ->
ListItem(headlineContent = { Text(user.name) })
}
}
}
}
7. Jetpack Compose 1.8 — Strong Skippingと予測戻る
Android Jetpack Composeは2024年の1.7、2025年の1.8を経て性能上の主要課題を解消しました。**Strong Skipping Mode**は安定性が不明なパラメータまで自動でスキップするようになり、`@Stable`アノテーションなしでも再コンポジションが減ります。**Predictive Back**(Android 14+)はユーザーが戻るジェスチャーを始めた時点で次の画面を先行レンダリングし、iOSのインタラクティブdismissに似た体験を実現します。
**Material 3 Expressive**(2025年Google I/O)はカラー・モーション・タイポグラフィをより表現豊かに拡張したデザインシステムです。`ColorScheme`が充実し、`MotionScheme`が追加され、新コンポーネント(`FloatingToolbar`、`Carousel`、`LoadingIndicator`)が加わりました。
// Jetpack Compose 1.8 + Material 3 Expressive
@Composable
fun UsersScreen(viewModel: UsersViewModel = hiltViewModel()) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
Scaffold(
topBar = { CenterAlignedTopAppBar(title = { Text("Users") }) }
) { padding ->
when (val state = uiState) {
is UiState.Loading -> LoadingIndicator(Modifier.padding(padding))
is UiState.Success -> LazyColumn(contentPadding = padding) {
items(state.users, key = { it.id }) { user ->
ListItem(
headlineContent = { Text(user.name) },
supportingContent = { Text(user.email) }
)
}
}
is UiState.Error -> ErrorView(state.message, onRetry = viewModel::retry)
}
}
}
Baseline ProfilesとMacrobenchmarkの連携で初回画面のレンダリング時間(LCP)を25~40%削減でき、新規Androidアプリは事実上Composeで始まります。
8. Flutter 4 — Impellerが全面適用
Flutter 4.0(2025年)はImpellerレンダラーをiOS・Android・Desktopすべてのデフォルトにした最初のメジャーリリースです。従来のSkiaベースで発生していたシェーダコンパイルjankが消え、Vulkan/Metalを直接活用して60・90・120fpsを安定して出します。Dart 3.5+のパターンマッチング・records・class modifiersが標準コードスタイルとして定着しました。
Flutterの強みは変わりません — **独自レンダラーによりiOS・Android・Web・Desktop・Embeddedでピクセル単位の同一性**を実現します。短所はOSネイティブのlook-and-feelを模倣する必要がある点で、Cupertinoウィジェットセットは毎年更新されますが100%の一致は困難です。
// Flutter 4 + Riverpod 2 — 非同期状態管理
final usersProvider = FutureProvider<List<User>>((ref) async {
final repo = ref.read(userRepoProvider);
return repo.fetchUsers();
});
class UsersScreen extends ConsumerWidget {
const UsersScreen({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final users = ref.watch(usersProvider);
return Scaffold(
appBar: AppBar(title: const Text('Users')),
body: users.when(
data: (list) => ListView.builder(
itemCount: list.length,
itemBuilder: (_, i) => ListTile(title: Text(list[i].name)),
),
loading: () => const Center(child: CircularProgressIndicator()),
error: (e, _) => Center(child: Text('Error: $e')),
),
);
}
}
Google・Alibaba・BMW・ByteDance・eBayがFlutterをプロダクションで利用し、韓国ではWoowa Brothersの一部アプリ、日本ではZOZO・CyberAgentが導入しています。
9. React Native 0.78 — New Architectureがデフォルト
React Native 0.78(2025年)は**New Architecture(Fabric + TurboModules + Hermes)** をデフォルト有効化した初のリリースです。JSI(JavaScript Interface)ベースの同期呼び出し、Concurrent Rendererとの互換性、JSCに代わりHermesがデフォルトになったことで、起動時間が30~40%短縮されました。
2026年5月現在React Native 0.79までリリースされており、Metaは自社アプリ(Facebook・Instagram・Threads)の大半の画面をRNで運用しています。Microsoft Office・Discord・Shopify・Tesla・Coinbaseが代表的な採用例です。
// React Native 0.78 — 関数コンポーネントとTurboModule
type User = { id: number; name: string; email: string }
export default function UsersScreen() {
const [users, setUsers] = useState<User[]>([])
const [loading, setLoading] = useState(true)
useEffect(() => {
fetch('https://api.example.com/users')
.then((r) => r.json())
.then((data) => setUsers(data))
.finally(() => setLoading(false))
}, [])
if (loading) return <Text>Loading...</Text>
return (
data={users}
keyExtractor={(u) => String(u.id)}
renderItem={({ item }) => (
)}
/>
)
}
const styles = StyleSheet.create({
row: { padding: 16, borderBottomWidth: 1, borderBottomColor: '#eee' },
name: { fontWeight: 'bold', fontSize: 16 },
})
短所も明確です。ネイティブモジュールを自作する際にはNew Architectureへの移行が必要で、一部サードパーティライブラリのNew Arch対応はまだ遅れています。
10. Expo SDK 53 — React Nativeの事実上の標準ツールチェーン
ExpoはReact Nativeのビルド・配信・APIの難点を解決するツールチェーンです。2026年はSDK 53(2025年5月)が標準で、**Expo Router 5**(ファイルベースルーティング、Next.jsに類似)、**EAS Build**(クラウドビルド)、**EAS Update**(OTA)、**EAS Submit**(ストア自動提出)、**Expo DOM Components**(WebView埋め込み)などが中核機能です。
MicrosoftのApp Center終了(2025年3月)により、OTA更新は事実上EAS Update + CodePushの後継または自前構築に二分され、ほとんどのRNチームがEAS Updateを選択しました。
11. Capacitor 6 + Ionic — 現実的なWebコンテナの選択
Capacitor(Ionicチーム、2018~)はCordovaの後継として登場したWebコンテナです。2026年5月時点でCapacitor 6が標準で、**iOSはデフォルトでWKWebView、Androidはデフォルトでシステム WebView**(またはGeckoViewオプション)の上にネイティブプラグインシステムを載せます。Vue・React・Angularなどのウェブフレームワークコードをそのままモバイルパッケージとして作成でき、同じコードをPWAとしても配信できます。
性能はネイティブに及びませんが、社内アプリ・コンテンツアプリ・管理者アプリでは十分です。Burger King、Southwest Airlines、Sworkitが代表的な採用例です。
12. Tauri Mobile 2 + .NET MAUI + NativeScript — ニッチだが健在の選択肢
**Tauri Mobile 2**(2024年)はRustで作られたデスクトップフレームワークTauriのモバイル拡張です。WebViewベースですがRustバックエンドに重い処理を委譲でき、セキュリティ・小型バイナリを重視するチームが採用しています。
**.NET MAUI**(.NET 9、2024年11月)はXamarin.Formsの後継としてMicrosoftが推すクロスプラットフォームUIフレームワークです。.NET 9で安定性が大きく改善され、Blazor Hybridと併用できるので.NETフルスタックチームに魅力的です。
**NativeScript 8**はJavaScript/TypeScriptから本物のネイティブUIを呼び出すフレームワークです。シェアは小さいですがVue・Angular統合に強みがあります。
13. ネイティブ vs クロスプラットフォーム — 意思決定マトリクス
| 基準 | ネイティブ(Swift+Kotlin) | KMP+CMP | Flutter | RN+Expo | Capacitor |
|---|---|---|---|---|---|
| 性能・応答性 | 最高 | 最高 | 非常に良い | 良い | 普通 |
| OS新機能アクセス | 即時 | 1~3ヶ月 | 6~12ヶ月 | 3~6ヶ月 | 可変 |
| コード共有率 | 0% | 60~90% | 95%+ | 90%+ | 95%+ |
| 学習曲線 | 高(2言語) | 中上 | 中(Dart) | 低(JS/TS) | 低 |
| 採用プール | 小 | 中 | 中 | 大 | 大 |
| ビルド時間 | 普通 | 長 | 短 | 短 | 非常に短 |
| アプリサイズ | 小 | 中 | 大 | 中 | 小 |
| デザイン一貫性 | OS別に異なる | OS別に異なる | 同一 | 可変 | 同一 |
結局のところ答えは「**規模の大きなアプリならネイティブまたはKMP、MVP/B2B社内アプリならFlutter/RN/Capacitor**」に収束します。
14. iOS固有 — Apple IntelligenceとApp Intentsの台頭
Apple Intelligence(iOS 18.1+、2024年10月)はiOSアプリがシステムLLM・画像生成・要約と統合する新しい入口を作ります。**App Intents**はSiri・Spotlight・Shortcuts・ホーム画面ウィジェットからアプリ機能を呼び出させ、2025年からはApple Intelligenceがユーザー意図と自動マッチングします。
**TipKit**(iOS 17+)はアプリ内で機能案内ツールチップを作る標準APIです。**ActivityKit**はLive Activities・Dynamic Islandを通じたリアルタイム状態表示を、**WidgetKit**はホーム/ロック/Lock Screenウィジェットを、**RoomPlan**はLiDARベースの屋内3Dスキャンを提供します。
15. Android固有 — Health ConnectとCredential Manager
**Health Connect**(2023年、Android 14+標準)はGoogle FitとSamsung Healthのデータを統合する単一のAPIです。**Credential Manager**はパスワード・passkey・連合認証を一つのダイアログに統合し、2025年からAndroid 14+で事実上の標準ログインUXになりました。
**Privacy Sandbox on Android**(2025年正式)はモバイル広告ID(AAID)代替技術で、**App Bundle + Baseline Profiles + Macrobenchmark**の組み合わせで初回画面のレンダリング時間を25~40%削減できます。**Predictive Back**(Android 14+)はユーザー体験を滑らかにします。
16. アプリストアの変化 — DMAと代替マーケットプレイス
2024年3月発効のEU**デジタル市場法(DMA)** によりiOSはEUユーザー限定で**代替アプリマーケットプレイス**を許可し始めました。Setapp Mobile(MacPaw)、AltStore PAL、Epic Games Storeが代表的で、開発者はCore Technology Fee(CTF)の代わりに新事業条件(2024年5月更新)を選べます。
米国でも**Epic v. Apple**判決により外部決済リンク許可が一部前進し、2025年には外部決済比率の増加でIn-App Purchase依存度がやや弱まりました。AndroidはEUでGoogle Play外のサイドロードを明示的に許可し、Samsung Galaxy Store・Huawei AppGallery・OneStore(韓国通信3社)も依然として一定のシェアを維持しています。
17. アプリ内課金 — Apple IAP・Google Play Billing・RevenueCat・Adapty
iOSの**In-App Purchase(StoreKit 2)** とAndroidの**Google Play Billing 7.x**が標準です。両者ともサブスクリプション・自動更新・offer code・family sharingに対応しますがAPIは異なり、レシート検証・払い戻し・grace periodの処理も複雑です。
これを抽象化するSaaSが**RevenueCat**・**Adapty**です。SDK 1行で両プラットフォームの課金・レシート検証・サーバーバックオフィス・分析を統合し、2026年は新規アプリの約80%がどちらかを使う雰囲気です。RevenueCatは2024年Series C(60M)、Adaptyは2023年Series A(15M)で急成長しています。
18. 分析・CRM — Firebase・Amplitude・Mixpanel・AppsFlyer・Branch
**Firebase Analytics + Crashlytics**が圧倒的標準ですが、精密分析は**Amplitude・Mixpanel**、アトリビューションは**AppsFlyer・Adjust・Branch**がそれぞれ位置を確立しています。SKAdNetwork 4(iOS 16.1+)・Privacy Sandbox時代でアトリビューション精度は落ちましたが、コンバージョンウィンドウと複合メトリクスで補います。
Microsoft App Centerは2025年3月に終了し、その座を**Firebase + Sentry + Bugsnag**が埋めました。SentryはReact Native・Flutter・ネイティブiOS・AndroidすべてにSDKを提供し、ソースマップ・シンボリケーション・セッションリプレイを統合します。
19. モバイルCI/CD — Fastlane・Bitrise・Codemagic・EAS・Xcode Cloud・GitHub Actions
**Fastlane**(2014~)は今も事実上の標準で、ビルド・署名・ストアアップロード自動化の単一窓口です。その上にクラウドビルドサービスが重なります。
Fastlane 標準パターン — Fastfile
default_platform(:ios)
platform :ios do
desc "Push a beta build to TestFlight"
lane :beta do
increment_build_number(xcodeproj: "MyApp.xcodeproj")
build_app(scheme: "MyApp")
upload_to_testflight(skip_waiting_for_build_processing: true)
end
desc "Release a build to the App Store"
lane :release do
capture_screenshots
build_app(scheme: "MyApp")
upload_to_app_store(submit_for_review: true)
end
end
実行: fastlane beta
**Bitrise**はワークフローベースのモバイル専用クラウドCI、**Codemagic**はFlutterに強く、**EAS Build/Submit**はReact Native/Expoの標準、**Xcode Cloud**はApple公式ですが価格が高く、**GitHub Actions**はself-hosted runnerと組み合わせて費用対効果が良いです。
20. モバイルセキュリティ — App Attest・Play Integrity・ProGuard/R8
**App Attest**(iOS 14+)はデバイス完全性トークンを発行し、サーバー側で検証できるようにし、**Play Integrity API**はAndroidで同じ役割を果たします。2025年から両プラットフォームともゲーム・決済・金融アプリでは事実上必須になりました。
コード難読化はAndroidの**R8**(ProGuardの後継)が標準で、iOSはSwiftShield・自前ビルドスクリプトが一般的です。通信セキュリティは**certificate pinning**(TrustKit、OkHttp CertificatePinner)が推奨されます。
21. デザインシステム — Material 3 Expressive・Apple Liquid Glass・Tailwind for Native
**Material 3 Expressive**(2025年)はMaterial Designの表現性を引き上げたアップデートです。**Apple HIG**は2024年のiOS 18でコントロールセンター・ホーム画面ウィジェットガイドが刷新され、2025年に発表された**Liquid Glass**(概念)は視覚効果の次の方向性を示します。
クロスプラットフォームでは**Tailwind CSS**の影響を受けた**NativeWind**(React Native)、**Tailwind for Compose**、**shadcn/ui for React Native**のようなライブラリが急速に成長中です。デザインシステムツールはFigma + Tokens Studioが事実上標準で、Storybook for React NativeとLookbook for Flutterがコンポーネントギャラリーとして使われます。
22. 韓国のモバイルシーン — KMPの本拠地
韓国のモバイルチームは2024~2025年の間に一斉に**Kotlin Multiplatform + Compose Multiplatform**導入を公表しました。**Coupang**は自社カンファレンスでKMPベースの共通モジュールを発表し、**Toss**は決済・認証・送金ロジックをKMPで共有しています。**Karrot(당근)** はチャット・フィードの一部をKMPに移行し、**Baemin**(Woowa Brothers)はKMP導入後記をブログで公開しました。**Kakao**はKakaoTalk・KakaoBank・KakaoMapでKMPを段階的に適用中で、**NHN**はゲーム・決済SDKをKMPで統合しています。
iOSは依然Swift + SwiftUI、AndroidはKotlin + Composeが標準ですが、その間の共有レイヤーとしてKMPが定着した点が最大の変化です。
23. 日本のモバイルシーン — MercariのFlutter、LINEのCompose
**LINEヤフー**(2023年合併)はメッセンジャーはネイティブのまま、Yahoo!JAPANは段階的なRN/Flutter移行を進めており、Compose Multiplatformの検討も公開しました。**Mercari**は2019年からFlutter導入を続け、2025年にメインアプリの一部フローをFlutterで運用しています。**ZOZO**はFlutter採用を公式化し、**freee・Money Forward・SmartHR**はコアモバイルアプリをKotlin + Composeで運用しています。**Sansan**(名刺管理)・**CARTA**(広告)はCompose Multiplatform iOSのPoCを公開しました。
日本はネイティブ優先文化が強いですが、新規スタートアップはRN/Expoで始める比率が急増しています。
24. 意思決定ツリー — どのスタックを選ぶか
- iOS・Android両方必要、チーム全員モバイルネイティブ — **Swift + Kotlin ネイティブ**
- iOS・Android両方必要、ビジネスロジック共有 — **KMP**、UIはSwiftUI + Compose
- iOS・Android・Desktop・Webすべて必要、Kotlinチーム — **KMP + Compose Multiplatform**
- 1コード1ピクセル、デザイン統一優先、チームがDart学習可能 — **Flutter 4**
- Web人材活用、迅速なリリース・OTAが必要 — **React Native + Expo**
- 社内アプリ・コンテンツアプリ、PWAアセット再活用 — **Capacitor + Ionic**
- .NETフルスタック、Blazorアセット保有 — **.NET MAUI**
- Rust強化、セキュリティ・小型バイナリ優先 — **Tauri Mobile 2**
25. 移行ガイド — ネイティブ ↔ クロスプラットフォーム
UIKit/ViewからSwiftUI/Composeへの移行は画面単位で段階的に進めるのが定石です。iOSは`UIHostingController`、Androidは`ComposeView`で既存画面の中に新規UIを挿入できます。ネイティブからKMPへの移行は、ドメイン・ネットワーク・DBなど「UIから遠い」レイヤーから移し、ViewModelは最後に移す順序が安全です。
RN/Flutterからネイティブへの移行はコストが大きいため、通常は「性能が重要な画面だけ」をネイティブに切り出すhybrid戦略を取ります。RNの場合は`react-native-navigation`や自前の`NativeStackNavigator`でネイティブ画面を挟み込め、Flutterは`add-to-app`モードで既存ネイティブアプリに一部画面だけをFlutterで作成できます。
26. まとめ — 2026年モバイルは多陣営共存の時代
2026年のモバイル開発にはもはや単一の正解がありません。ネイティブ陣営はOS新機能アクセスと最高のUXを、KMPはビジネスロジック共有とネイティブUIのバランスを、Flutterはピクセル単位の一貫性を、React NativeはWeb人材の再活用とOTA更新を、CapacitorはPWAアセットの再活用を、それぞれ別の位置で提供します。
さらにApple Intelligence・Health Connect・DMAマーケットプレイス・Privacy SandboxなどのOS/政策レベルの変化が重なり、2026年のモバイル開発者は「フレームワーク選択よりもシステム統合能力」がより重要になっています。どのスタックを選んでも一つは明確です — **宣言的UIと非同期状態管理、そしてシステムLLMとの統合**が向こう5年の標準になります。
References
- [developer.apple.com/documentation/swiftui](https://developer.apple.com/documentation/swiftui)
- [developer.apple.com/xcode](https://developer.apple.com/xcode/)
- [developer.apple.com/documentation/foundationmodels](https://developer.apple.com/documentation/foundationmodels)
- [developer.apple.com/documentation/swiftdata](https://developer.apple.com/documentation/swiftdata)
- [swift.org](https://www.swift.org/)
- [developer.android.com/jetpack/compose](https://developer.android.com/jetpack/compose)
- [developer.android.com/health-and-fitness/guides/health-connect](https://developer.android.com/health-and-fitness/guides/health-connect)
- [kotlinlang.org/lp/multiplatform](https://kotlinlang.org/lp/multiplatform/)
- [github.com/JetBrains/compose-multiplatform](https://github.com/JetBrains/compose-multiplatform)
- [flutter.dev](https://flutter.dev/)
- [reactnative.dev](https://reactnative.dev/)
- [docs.expo.dev](https://docs.expo.dev/)
- [capacitorjs.com](https://capacitorjs.com/)
- [v2.tauri.app](https://v2.tauri.app/start/prerequisites/)
- [dotnet.microsoft.com/maui](https://dotnet.microsoft.com/en-us/apps/maui)
- [fastlane.tools](https://fastlane.tools/)
- [bitrise.io](https://bitrise.io/)
- [codemagic.io](https://codemagic.io/)
- [revenuecat.com](https://www.revenuecat.com/)
- [adapty.io](https://adapty.io/)
- [firebase.google.com](https://firebase.google.com/)
현재 단락 (1/255)
モバイル開発は2020年にSwiftUI 1.0とJetpack Compose 1.0が公開されてから6年で全く異なる風景になりました。両陣営とも**宣言的UI**へ移行し、Kotlin Multi...