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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kevin Galligan
August 16, 2018
Technology
220
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kotlin Multiplatform
Kotlin Multiplatform iOS development
Kevin Galligan
August 16, 2018
More Decks by Kevin Galligan
See All by Kevin Galligan
KotlinConf 2023: Kotlin Mobile Multiplatform for Teams
kpgalligan
4
620
SDK Design and Publishing For Kotlin Multiplatform Mobile
kpgalligan
2
530
KMP Binky Only
kpgalligan
1
260
Troubled Waters: Bridging platform-native SDKs with Kotlin Multiplatform
kpgalligan
3
350
KMM Kickstart For Android Developers
kpgalligan
2
290
Kotlin Multiplatform in Production
kpgalligan
4
490
Kotlin/Native Concurrency for Mobile Multiplatform
kpgalligan
2
750
Kotlin Native Concurrency Explained (Kotlinconf 2019)
kpgalligan
3
1k
Kotlin Multiplatform Intro
kpgalligan
2
10k
Other Decks in Technology
See All in Technology
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
120
【試作】IoT x AIエージェント
happysamurai294
0
100
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
550
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
300
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
120
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
120
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
230
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
3
760
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
1
190
Does an AI Watermark Survive Translation?
machinetranslation
0
520
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
430
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
710
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
410
The Curious Case for Waylosing
cassininazir
1
490
GraphQLとの向き合い方2022年版
quramy
50
15k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
660
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
390
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
240
How to Ace a Technical Interview
jacobian
281
24k
Why Our Code Smells
bkeepers
PRO
340
58k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
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