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
Kotlin Multiplatform
Search
Kevin Galligan
August 16, 2018
Technology
1
220
Kotlin Multiplatform
Kotlin Multiplatform iOS development
Kevin Galligan
August 16, 2018
Tweet
Share
More Decks by Kevin Galligan
See All by Kevin Galligan
KotlinConf 2023: Kotlin Mobile Multiplatform for Teams
kpgalligan
4
550
SDK Design and Publishing For Kotlin Multiplatform Mobile
kpgalligan
2
470
KMP Binky Only
kpgalligan
1
230
Troubled Waters: Bridging platform-native SDKs with Kotlin Multiplatform
kpgalligan
3
290
KMM Kickstart For Android Developers
kpgalligan
2
250
Kotlin Multiplatform in Production
kpgalligan
4
450
Kotlin/Native Concurrency for Mobile Multiplatform
kpgalligan
2
700
Kotlin Native Concurrency Explained (Kotlinconf 2019)
kpgalligan
3
820
Kotlin Multiplatform Intro
kpgalligan
2
10k
Other Decks in Technology
See All in Technology
巨大モノリスのリプレイス──機能整理とハイブリッドアーキテクチャで挑んだ再構築戦略
zozotech
PRO
0
290
プロダクト負債と歩む持続可能なサービスを育てるための挑戦
sansantech
PRO
1
890
重厚長大企業で、顧客価値をスケールさせるためのプロダクトづくりとプロダクト開発チームづくりの裏側 / Developers X Summit 2025
mongolyy
0
180
アジャイル社内普及ご近所さんマップを作ろう / Let's create an agile neighborhood map
psj59129
1
140
SRE視点で振り返るメルカリのアーキテクチャ変遷と普遍的な考え
foostan
2
900
AI開発の定着を推進するために揃えるべき前提
suguruooki
1
130
FFMとJVMの実装から学ぶJavaのインテグリティ
kazumura
0
160
自然言語でAPI作業を片付ける!「Postman Agent Mode」
nagix
0
130
信頼性が求められる業務のAIAgentのアーキテクチャ設計の勘所と課題
miyatakoji
0
150
Greenは本当にGreenか? - B/GデプロイとAPI自動テストで安心デプロイ
kaz29
0
130
AWS re:Invent 2025 で頻出の 生成 AI サービスをおさらい
komakichi
3
220
大規模モノレポの秩序管理 失速しない多言語化フロントエンドの運用 / JSConf JP 2025
shoota
0
360
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
680
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Documentation Writing (for coders)
carmenintech
76
5.1k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
The Invisible Side of Design
smashingmag
302
51k
Transcript
Kotlin Multiplatform
@allymcleangames
Hello
• Kevin Galligan, President of Touchlab • I’ve been coding
Android since before the G1, run a mobile dev shop, and since late 2015 have been largely focused on mobile code sharing • I’m going to tell you about Kotlin Multiplatform
None
Kotlin?
• Static “Better Java” by Jetbrains • 2011 - Announced
• 2016 - v1.0 • 2017 - Google++
None
JVM JS Native
JVM JS Native Common
None
Native
Native Not Native
Native Not Native - Me(h)tal Not Native - Rock
None
–Lemmy Kilmister “It’s Little Richard’s fault, all of it. Little
Richard is directly responsible for Motorhead.”
None
None
None
None
None
None
None
None
None
None
• Shared, testable architecture (not UI) • Smooth interop, optional
code sharing • Active community • Good tools • Bonus! One platform 100% native K O T L I N M U L T I P L A T F O R M
None
None
None
I Can’t See The Future
safe bets
None
None
None
JVM JS Native Common
JVM JS Native Common
JVM Native Common
JVM Native Common Android Stuff Framework iOS Stuff
Common
Common mainThread?
None
None
None
None
None
None
None
Typealias
None
None
Expected a method, was actually there!
None
None
None
None
None
None
None
None
None
Status
Kotlin/Native at .9
Tooling
Speed
Libraries
None
None
None
None
None
None
None
None
None
None
None
None
None
None
• 5 React Native • 3 Flutter • 4 Kotlin
Multiplatform • ~20% of the content! Cross Platform Droidcon
• Serialization • Ktor • I/O • Coroutines Jetbrains
Threads
State
all the code you’ve ever written not frozen frozen
all the code you’ve ever written not frozen frozen
Frozen is • A special runtime state • Like super-immutable
• Only way to share data between threads
Data OtherMutable OtherShared Stuff MoreStuff
Data OtherMutable OtherShared Stuff MoreStuff
None
None
None
None
None
None
None
It works!
Q3 Q2 Q4 Q1 Q2 2018 2019 0 .6 v0.7
v0.8 v0.8.2
Q3 Q2 Q4 Q1 Q2 2018 2019 0 .6 v0.7
v0.8 v0.8.2 v0.9 Coroutines (and other libs)
Q3 Q2 Q4 Q1 Q2 2018 2019 0 .6 v0.7
v0.8 v0.8.2 v0.9 Coroutines (and other libs)
Q3 Q2 Q4 Q1 Q2 2018 2019 0 .6 v0.7
v0.8 v0.8.2 v0.9 Coroutines (and other libs)
Q3 Q2 Q4 Q1 Q2 2018 2019 0 .6 v0.7
v0.8 v0.8.2 v0.9 Coroutines (and other libs) v1
Q3 Q2 Q4 Q1 Q2 2018 2019 0 .6 v0.7
v0.8 v0.8.2 v0.9 Coroutines (and other libs) v1 Major reactive lib Date/other libs Improved tooling Faster builds
Q3 Q2 Q4 Q1 Q2 2018 2019 0 .6 v0.7
v0.8 v0.8.2 v0.9 Coroutines (and other libs) v1 Major reactive lib Date/other libs Improved tooling Faster builds “Mainstream” Big apps Wasm threads
2010 ORMLite ActiveAndroid
2010 ORMLite ActiveAndroid :P
2010 ORMLite ActiveAndroid :P 2018 ORMLite SQLBright SQLDelight Storeio Room
Cupboard SugarORM GreenDAO DBFlow Squeeky Ollie Requery Squidb
2018 Knarch.db SQLDelight 2025? MPSettings Jetbrains stuff
None
[email protected]
@kpgalligan
[email protected]
@kpgalligan Discount code: AndroidSummit