Skip to content

필사 모드: モバイル開発 2026 完全ガイド — Swift 6・SwiftUI 6・Kotlin Multiplatform・Jetpack Compose・Flutter 4・React Native 0.78・Expo SDK 53 徹底解説

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

> 「片方では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...

작성 글자: 0원문 글자: 17,699작성 단락: 0/255