Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KMM&Compose MutiPlatformで始めるクロスプラットフォーム開発
Search
akkiee76
June 21, 2023
Technology
2
1.2k
KMM&Compose MutiPlatformで始めるクロスプラットフォーム開発
potatotips #82 iOS/Android開発Tips共有会の発表資料です。
akkiee76
June 21, 2023
Tweet
Share
More Decks by akkiee76
See All by akkiee76
Meet the Translation API
akkie76
0
310
コードレビューで開発を加速させるAIコードレビュー
akkie76
1
510
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
4.4k
コードレビューを支援するAI技術の応用
akkie76
5
860
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
8.2k
Jetpack Compose で Adaptive Layout に対応しよう
akkie76
0
670
Observationではじめる値監視
akkie76
4
4.5k
TextField 表示スタイル変更の 有効活用例 5 選
akkie76
0
630
rememberUpdatedState の使いどころを考える
akkie76
0
490
Other Decks in Technology
See All in Technology
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
630
2/18 Making Security Scale: メルカリが考えるセキュリティ戦略 - Coincheck x LayerX x Mercari
jsonf
0
180
AIエージェント元年
shukob
0
150
クラウド食堂とは?
hiyanger
0
110
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.1k
Pwned Labsのすゝめ
ken5scal
1
380
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.1k
AWSアカウントのセキュリティ自動化、どこまで進める? 最適な設計と実践ポイント
yuobayashi
7
540
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
4.9k
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.1k
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
340
コンテナサプライチェーンセキュリティ
kyohmizu
1
140
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Why Our Code Smells
bkeepers
PRO
336
57k
RailsConf 2023
tenderlove
29
1k
Building Applications with DynamoDB
mza
93
6.2k
Building Your Own Lightsaber
phodgson
104
6.2k
Rails Girls Zürich Keynote
gr2m
94
13k
Documentation Writing (for coders)
carmenintech
67
4.6k
The Cult of Friendly URLs
andyhume
78
6.2k
Transcript
potatotips #82 ©2023 RAKUS Co., Ltd. KMM & Compose MultiPlatformで
始めるクロスプラットフォーム開発 @akkiee76 potatotips #82 iOS/Android開発Tips共有会
potatotips #82 Akihiko Sato / 株式会社ラクス Lead Engineer / @akkiee76
SaaS 開発 (Backend, Frontend) / Mobile 開発 (iOS, Android) 上流工程、コードレビュー、チームの課題改善など コールドブリューコーヒー☕ / パン作り🍞 / あんバターフランス🥐 自己紹介
potatotips #82 今日伝えたいこと KMM & Compose MultiPlatform を導入したクロスプラットフォーム開発の紹介
potatotips #82 Kotlin Multiplatform for Mobile (KMM) JetBrainsが開発したKotlinベースのクロスプラットフォーム 開発フレームワーク。1つの共通のKotlinコードベースを使用して、 iOSとAndroidの両方のプラットフォーム向けにネイティブアプリを
開発することができる点が特徴。
potatotips #82 Kotlin Multiplatform for Mobile (KMM) フレームワークイメージ
potatotips #82 Kotlin Multiplatform for Mobile (KMM) アーキテクチャイメージ Compose Multiplatform
potatotips #82 Compose MultiPlatform Compose 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 #82 commonMainに定義されている共通コード
potatotips #82 実際に利用したライブラリなど ・ Navigation ・ Network ・ DI (時間の関係上3つ紹介)
potatotips #82 Navigation 自分の実装イメージはこんな感じでしたが・・・。
potatotips #82 Navigation サポートされていなかった。。 https://github.com/JetBrains/compose-multiplatform/tree/master/tutorials/Navigation
potatotips #82 Navigation とりあえず自前で実装(Android)
potatotips #82 Navigation とりあえず自前で実装(iOS) * main.ios.ktも定義が必要です。
potatotips #82 Network Ktrofitライブラリを 導入して実装 RetrofitのようなAPIで 実装することが可能 https://foso.github.io/Ktorfit/
potatotips #82 Network レスポンスをselializeするため、 kotlinx-serializationも同時に導入 します。 https://github.com/Kotlin/kotlinx.serialization
potatotips #82 DI (Dependency Injection) 〜 module 定義 Koin(InsertKoinIO)を導入して実装 https://insert-koin.io/docs/reference/koin-mp/kmp/
potatotips #82 DI (Dependency Injection) 〜 Android 編
potatotips #82 DI (Dependency Injection) 〜 iOS 編
potatotips #82 まとめ ・ ComposeでViewを共通で利用できるため、 生産性の向上、保守性に期待できる ・ Kotlinで実装する共通ロジックは、柔軟に設計ができる ・ Android、iOS
両方のアーキテクチャの知見が必要 ・ まだまだ使い勝手が悪い点もあるが今後のアップデートに期待!
potatotips #82 ご静聴ありがとうございました