potatotips #82 iOS/Android開発Tips共有会の発表資料です。
potatotips #82©2023 RAKUS Co., Ltd.KMM & Compose MultiPlatformで始めるクロスプラットフォーム開発@akkiee76potatotips #82 iOS/Android開発Tips共有会
View Slide
potatotips #82Akihiko Sato / 株式会社ラクス Lead Engineer / @akkiee76SaaS 開発 (Backend, Frontend) / Mobile 開発 (iOS, Android)上流工程、コードレビュー、チームの課題改善などコールドブリューコーヒー☕ / パン作り🍞 / あんバターフランス🥐自己紹介
potatotips #82今日伝えたいことKMM & Compose MultiPlatform を導入したクロスプラットフォーム開発の紹介
potatotips #82Kotlin Multiplatform for Mobile (KMM)JetBrainsが開発したKotlinベースのクロスプラットフォーム開発フレームワーク。1つの共通のKotlinコードベースを使用して、iOSとAndroidの両方のプラットフォーム向けにネイティブアプリを開発することができる点が特徴。
potatotips #82Kotlin Multiplatform for Mobile (KMM)フレームワークイメージ
potatotips #82Kotlin Multiplatform for Mobile (KMM)アーキテクチャイメージCompose Multiplatform
potatotips #82Compose MultiPlatformCompose Multiplatformは、Kotlinを使用して複数のプラットフォーム間でUIを共有するための宣言的なフレームワークです。JetBrainsとオープンソースの貢献者によって開発され、Jetpack Composeに基づいています。https://github.com/JetBrains/compose-multiplatform
potatotips #82ここからは導入手順を紹介します
potatotips #82開発に必要な環境・ macOS・ Android Studio・ Xcode・ JDK・ Kotlin Multiplatform Mobile plugin・ Kotlin plugin・ CocoaPods dependency managerあとは brew install kdoctor を実行するだけ
potatotips #82プロジェクト作成* Desktop版はIntelliJから作成可能
potatotips #82プロジェクト構成
potatotips #82commonMainに定義されている共通コード
potatotips #82実際に利用したライブラリなど・ Navigation・ Network・ DI(時間の関係上3つ紹介)
potatotips #82Navigation自分の実装イメージはこんな感じでしたが・・・。
potatotips #82Navigationサポートされていなかった。。https://github.com/JetBrains/compose-multiplatform/tree/master/tutorials/Navigation
potatotips #82Navigationとりあえず自前で実装(Android)
potatotips #82Navigationとりあえず自前で実装(iOS)* main.ios.ktも定義が必要です。
potatotips #82NetworkKtrofitライブラリを導入して実装RetrofitのようなAPIで実装することが可能https://foso.github.io/Ktorfit/
potatotips #82Networkレスポンスをselializeするため、kotlinx-serializationも同時に導入します。https://github.com/Kotlin/kotlinx.serialization
potatotips #82DI (Dependency Injection) 〜 module 定義Koin(InsertKoinIO)を導入して実装https://insert-koin.io/docs/reference/koin-mp/kmp/
potatotips #82DI (Dependency Injection) 〜 Android 編
potatotips #82DI (Dependency Injection) 〜 iOS 編
potatotips #82まとめ・ ComposeでViewを共通で利用できるため、生産性の向上、保守性に期待できる・ Kotlinで実装する共通ロジックは、柔軟に設計ができる・ Android、iOS 両方のアーキテクチャの知見が必要・ まだまだ使い勝手が悪い点もあるが今後のアップデートに期待!
potatotips #82ご静聴ありがとうございました