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
210
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
510
SDK Design and Publishing For Kotlin Multiplatform Mobile
kpgalligan
2
420
KMP Binky Only
kpgalligan
1
210
Troubled Waters: Bridging platform-native SDKs with Kotlin Multiplatform
kpgalligan
3
270
KMM Kickstart For Android Developers
kpgalligan
2
210
Kotlin Multiplatform in Production
kpgalligan
4
410
Kotlin/Native Concurrency for Mobile Multiplatform
kpgalligan
2
640
Kotlin Native Concurrency Explained (Kotlinconf 2019)
kpgalligan
3
670
Kotlin Multiplatform Intro
kpgalligan
2
10k
Other Decks in Technology
See All in Technology
「ラベルにとらわれない」エンジニアでいること/Be an engineer beyond labels
kaonavi
0
220
30 代子育て SRE が考える SRE ナレッジマネジメントの現在と将来
kworkdev
PRO
0
170
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
2
250
MCP Documentation Server @AI Coding Meetup #1
yyoshiki41
1
1.1k
コード品質向上で得られる効果と実践的取り組み
ham0215
2
220
OCI見積もり入門セミナー
oracle4engineer
PRO
0
160
Cline、めっちゃ便利、お金が飛ぶ💸
iwamot
20
19k
TopAppBar Composableをカスタムする
hunachi
0
170
Symfony in 2025: Scaling to 0
fabpot
2
270
10分でわかるfreeeのQA
freee
1
11k
Medmain FACTBOOK
akinaootani
0
150
デザインシステムのレガシーコンポーネントを刷新した話/Design System Legacy Renewal
kaonavi
0
120
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
720
Building a Scalable Design System with Sketch
lauravandoore
462
33k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
51
2.4k
Writing Fast Ruby
sferik
628
61k
GraphQLの誤解/rethinking-graphql
sonatard
70
10k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
19k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
118
51k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
22
2.6k
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