本セッションでは、Compose Multiplatformと各プラットフォームのネイティブUIフレームワーク(Jetpack ComposeとSwiftUI)を組み合わせたハイブリッド開発手法を解説します。実際のプロダクトでは、ビジネスロジックをKotlin Multiplatformで共有し、UI層では各プラットフォームに適したフレームワークを使い分けました。SwiftUIベースのiOSアプリにCompose Multiplatform製の画面を組み込む方法や、逆にCompose画面内でSwiftUIコンポーネント(Map等のiOSネイティブUI)を呼び出す実装テクニックを紹介します。これにより、プラットフォーム固有のUI/UX(iOSのデザイン言語や標準コンポーネント)を活かしながら、ビジネスロジックや一部UIコードの共有による効率化を実現しました。 また、コード分離の戦略として、画面やコンポーネント単位でComposeとSwiftUIのどちらで実装するかを判断する基準や、KMPで定義したViewModelから両プラットフォームのUIを扱う設計パターンにも触れます。ネイティブとクロスプラットフォームUIの共存によるメリット・デメリットを踏まえ、既存アプリへの段階的なCompose導入方法や開発フローへの影響について、実践的な知見を共有します。
Yena Hwang KINTO Technologies Corporation, Assistant Manager
Kotlin Multiplatformの導入や、ComposeとSwiftUIを組み合わせたクロスプラットフォーム開発に関心がある中級レベルのモバイルアプリ開発者。