Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlin Multi-platform(?)
Search
Panini
June 27, 2018
Technology
1
740
Kotlin Multi-platform(?)
Panini
June 27, 2018
Tweet
Share
More Decks by Panini
See All by Panini
Kotlin 1.5 preview
panini
1
460
Java谷園から逃げ出した話
panini
0
390
Kotlin 1.4-rc
panini
0
240
Fixing Broken Robots - Android Mutation Testing
panini
0
200
Kotlin Multiplatform
panini
2
670
build.gradle.kts
panini
2
2.4k
Convert Java file to Kotlin file ⌥⇧⌘K
panini
0
1.1k
Introducing Android P
panini
2
840
Display Cutout
panini
1
660
Other Decks in Technology
See All in Technology
LLM-Readyなデータ基盤を高速に構築するためのアジャイルデータモデリングの実例
kashira
0
240
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
620
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
270
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
190
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
180
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
130
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
840
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
5.3k
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
830
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
350
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
140
初めてのDatabricks AI/BI Genie
taka_aki
0
130
Featured
See All Featured
Designing for Performance
lara
610
69k
Balancing Empowerment & Direction
lara
5
800
What's in a price? How to price your products and services
michaelherold
246
13k
Bash Introduction
62gerente
615
210k
Agile that works and the tools we love
rasmusluckow
331
21k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
[SF Ruby Conf 2025] Rails X
palkan
0
510
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Transcript
Multiplatform Kotlin(?) Kotlin Developers Meetup
About Me • Matthew Vern / Panini • Twitter: @callipan
Github: panpanini • Mercari, Inc • Android Engineer (US) •
[email protected]
About Me • Matthew Vern / Panini • Twitter: @callipan
Github: panpanini • Mercari, Inc • Android Engineer (US) •
[email protected]
• 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