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