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 Multi-platform(?)
Search
Panini
June 27, 2018
Technology
1
710
Kotlin Multi-platform(?)
Panini
June 27, 2018
Tweet
Share
More Decks by Panini
See All by Panini
Kotlin 1.5 preview
panini
1
430
Java谷園から逃げ出した話
panini
0
360
Kotlin 1.4-rc
panini
0
220
Fixing Broken Robots - Android Mutation Testing
panini
0
180
Kotlin Multiplatform
panini
2
630
build.gradle.kts
panini
2
2.3k
Convert Java file to Kotlin file ⌥⇧⌘K
panini
0
1.1k
Introducing Android P
panini
2
820
Display Cutout
panini
1
620
Other Decks in Technology
See All in Technology
アプリケーションの中身が見える!Mackerel APMの全貌と展望 / Mackerel APMリリースパーティ
mackerelio
0
450
Javaアプリケーションの配布とパッケージング / Distribution and packaging of Java applications
hogelog
1
270
[zh-TW] DevOpsDays Taipei 2025 -- Creating Awesome Change in SmartNews!(machine translation)
martin_lover
1
650
うちの会社の評判は?SNSの投稿分析にAIを使ってみた
doumae
0
290
GigaViewerにおけるMackerel APM導入の裏側
7474
0
460
CSSDay, Amsterdam
brucel
0
140
kintone開発組織のDevOpsへの移り変わりと実践
ueokande
1
130
Machine Intelligence for Vision, Language, and Actions
keio_smilab
PRO
0
500
ソフトウェアは捨てやすく作ろう/Let's make software easy to discard
sanogemaru
10
5.8k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
38k
継続戦闘能⼒
sansantech
PRO
0
220
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
480
Featured
See All Featured
Bash Introduction
62gerente
614
210k
YesSQL, Process and Tooling at Scale
rocio
172
14k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Balancing Empowerment & Direction
lara
1
89
Code Reviewing Like a Champion
maltzj
523
40k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
15
890
GitHub's CSS Performance
jonrohan
1031
460k
Music & Morning Musume
bryan
47
6.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Transcript
Multiplatform Kotlin(?) Kotlin Developers Meetup
About Me • Matthew Vern / Panini • Twitter: @callipan
Github: panpanini • Mercari, Inc • Android Engineer (US) • kotlin@kawaii.com
About Me • Matthew Vern / Panini • Twitter: @callipan
Github: panpanini • Mercari, Inc • Android Engineer (US) • kotlin@kawaii.com • React Native Engineer??
React Native • Build native mobile apps using JavaScript and
React • “Write Once, Run Anywhere” • Works both on Android & iOS • Hot reload • Interfaces with native Kotlin/Swift code
React Native @ Mercari US • Used in Profile &
Chat screens • Great for simple screens • Easy feature parity between platforms • But...
I wanna write Kotlin
Kotlin.js • Transpiles Kotlin to JavaScript • Kotlin-react https://github.com/JetBrains/create-react-kotlin-app •
• Kotlin-React-Native?
Kotlin React Native • Create Kotlin JS project inside ReactNative
project • Link React Native JS to Kotlin JS output
Kotlin React Native • Create wrapper for React Native JS
• @JsModule • external
Kotlin React Native • React has a lot of ceremony
to create components • Abstract as much away with DSL • Makes UI code much cleaner
Kotlin React Native • React has a lot of ceremony
to create components • Abstract as much away with DSL • Makes UI code much cleaner
Hot Reload • “Keep the app running and to inject
new versions of the files that you edited at runtime” • Kotlin has to be compiled though...
Gradle Continuous Build https://blog.gradle.org/introducing-continuous- build • “As of 2.5, Gradle
supports continuous build execution, which will automatically re-execute builds when changes are detected to its inputs.” • Anytime a file is changed, gradle will rerun the task • Hot reload!
Summary • We can write React Native in Kotlin! •
Supports Hot Reloading • Kotlin DSL makes building UI easy • Can run same code on Android & iOS
Summary • The Kotlin we write is 90% JavaScript.. •
dynamic • Lots of boilerplate code • Very little documentation • Lets just use Kotlin multiplatform instead