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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
akkiee76
June 21, 2023
Technology
1.6k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KMM&Compose MutiPlatformで始めるクロスプラットフォーム開発
potatotips #82 iOS/Android開発Tips共有会の発表資料です。
akkiee76
June 21, 2023
More Decks by akkiee76
See All by akkiee76
Graph Art with Charts API – Beyond Data Visualization
akkie76
0
250
Meet the Translation API
akkie76
0
500
コードレビューで開発を加速させるAIコードレビュー
akkie76
1
760
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
6.2k
コードレビューを支援するAI技術の応用
akkie76
5
1.3k
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
10k
Jetpack Compose で Adaptive Layout に対応しよう
akkie76
0
1.2k
Observationではじめる値監視
akkie76
4
4.9k
TextField 表示スタイル変更の 有効活用例 5 選
akkie76
0
790
Other Decks in Technology
See All in Technology
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
1.6k
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
200
サイバー捜査員研修(前半)
nomizone
1
1.9k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
120
JavaScript 研修 (2026)
recruitengineers
PRO
1
460
Webアクセシビリティ入門 2026
recruitengineers
PRO
2
460
PLATEAU で バーチャル花火大会
tatsuya1970
0
110
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
330
TypeScript入門 2026
recruitengineers
PRO
2
500
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
780
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
360
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.7k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
690
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
470
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
WCS-LA-2024
lcolladotor
0
790
Docker and Python
trallard
47
4.1k
The Limits of Empathy - UXLibs8
cassininazir
1
600
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
360
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 ご静聴ありがとうございました