Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin Multiplatform / Compose Multiplatform を活...

Kotlin Multiplatform / Compose Multiplatform を活用したモバイルアプリ開発の最前線

Kotlin Multiplatform / Compose Multiplatform を活用したモバイルアプリ開発の最前線 / 技育CAMPアカデミアにて解説した、前半パートの資料です。
https://talent.supporterz.jp/events/4f890a5a-495e-4822-a7c8-00ffd76674fa/

Avatar for Kenta Enomoto

Kenta Enomoto

July 30, 2025
Tweet

More Decks by Kenta Enomoto

Other Decks in Technology

Transcript

  1. ネイティブ開発とマルチプラットフォーム開発の比較 5 ネイティブ開発 マルチプラットフォーム開発 UIの自由度 高い フレームワークによる制限あり OSごとの最適化 容易 難易度が高くなることも

    コードの再利用性 低い(完全に分離) 高い(共通コード) 人的コスト 高い(OS毎に必要) 低く抑えられる可能性 学習コスト iOS/Android 両方必要 フレームワークの習得が必要
  2. マルチプラットフォーム開発のメリット/デメリット • ✅ メリット ◦ 開発・保守コストの削減 ◦ 開発速度の向上 • ❌

    デメリット ◦ UIのネイティブ感を損なうことがある ◦ 複雑なネイティブ機能の実装が困難 ◦ フレームワークの制約やバグに依存 6
  3. 代表的なマルチプラットフォーム開発技術 • Kotlin Multiplatform (KMP), Compose Multiplatform (CMP) ◦ Kotlin

    • Flutter ◦ Dart, UI完全描画型 • React Native ◦ JavaScript, ネイティブブリッジ型 • .NET MAUI, Xamarin ◦ C# 7
  4. Compose Multiplatform (CMP) とは • Jetpack ComposeのUI技術をマルチプラットフォームで使える技術 • 対応プラットフォーム ◦

    Android / iOS ◦ Desktop (Windows, macOS, Linux) ◦ Web (alpha 版) • 特徴 ◦ 宣言的UI - UIを「何をしたいか」で記述 ◦ リアクティブ - データ変更時に自動でUI更新 ◦ 型安全 - Kotlinの型システムを活用 10
  5. KMP / CMP を採用することのメリット • 開発効率 ◦ コード共有 - ビジネスロジックの重複排除

    ◦ 開発速度向上 - 一度書けば複数プラットフォームで動作 ◦ 保守性向上 - バグ修正も一箇所で済む • 技術的メリット ◦ 型安全 - Kotlinの型システム ◦ テスト容易性 - 共通ロジックのテスト ◦ チーム効率 - 知識の共有・スキルの流用 13
  6. KMP / CMP のデメリット • 学習コスト ◦ Kotlin, Jetpack Compose,

    Android • デバッグ難易度 ◦ プラットフォーム固有の機能 • 技術的制約 ◦ 頻繁なアップデート ◦ エコシステム、ライブラリの不足 14
  7. 他のクロスプラットフォームとの比較 15 KMP / CMP Flutter React Native 言語 Kotlin

    Dart JavaScript, TypeScript レンダリング Skia ベース (Android はネイティブ) Impeller, Skia ネイティブ ホットリロード 一部のみ (デスクトップのみ) 完全対応 完全対応 サポートする プラットフォーム Android, iOS, Desktop, Web Android, iOS, Desktop, Web Android, iOS コード共有 柔軟な範囲の指定が可能 ほぼ全て ネイティブ API については各 OS で切り出す ネイティブ API の使用 expect/actual の仕組みを用いる or DI してそれぞれのネイティブの言語を用 いる MethodChannel NativeModules