Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Blurring the Line Between Native and Web (Droid...
Search
Jake Wharton
PRO
June 26, 2018
Technology
4.8k
16
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Blurring the Line Between Native and Web (Droidcon DE 2018)
Video:
https://youtu.be/yd-Xztr4fyY
Jake Wharton
PRO
June 26, 2018
More Decks by Jake Wharton
See All by Jake Wharton
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
1.1k
KMP with non-Kotlin languages (Droidcon NYC 2025)
jakewharton
PRO
2
1.3k
Compose UI for... a light switch? (KotlinConf 2024)
jakewharton
PRO
3
2.4k
Releasing faster with Kotlin multiplatform (DPE Summit 2023)
jakewharton
PRO
3
1.7k
Playing in the Treehouse with Redwood and Zipline (KotlinConf 2023)
jakewharton
PRO
1
2.4k
Native UI with Multiplatform Compose (Droidcon NYC 2022)
jakewharton
PRO
2
7.7k
What's new in Java 19: The end of Kotlin? (KotlinConf 2019)
jakewharton
PRO
6
10k
Diffusing Changes in Your APKs (Droidcon Toronto 2019)
jakewharton
PRO
5
5.2k
Using Kotlin/JS and Kotlin/Native on Android (Droidcon NYC 2019)
jakewharton
PRO
4
7.9k
Other Decks in Technology
See All in Technology
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
210
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
140
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
120
大阪オフィスに Unitree Go2 がやってきたので Physical AI やってみた
dafujii
0
250
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
820
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.3k
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
190
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
100
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
260
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
310
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
440
KanaAI
shreyas1009
0
140
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The Invisible Side of Design
smashingmag
301
52k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Music & Morning Musume
bryan
48
7.4k
Are puppies a ranking factor?
jonoalderson
2
4k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
270
So, you think you're a good person
axbom
PRO
2
2.2k
Done Done
chrislema
187
17k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Transcript
#NATIVE&WEB @JAKEWHARTON
None
None
None
None
None
None
None
JavaScriptCore
JavaScriptCore JNI
JavaScriptCore VM / Main Thread JNI
JavaScriptCore UI Toolkit VM / Main Thread JNI
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread UI Toolkit
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread UI Toolkit V8
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread UI Toolkit V8 DOM
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread UI Toolkit V8 DOM
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread UI Toolkit V8 DOM
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread UI Toolkit V8 DOM
JavaScriptCore UI Toolkit VM / Main Thread JNI JavaScriptCore Runtime
Main Thread UI Toolkit V8 DOM
JavaScriptCore JNI JavaScriptCore Runtime V8
V8 JNI JavaScriptCore Runtime V8
Duktape JNI JavaScriptCore Runtime V8
Duktape JNI JavaScriptCore Runtime V8
Duktape JNI JavaScriptCore Runtime V8
React Native Platform Duktape JNI JavaScriptCore Runtime V8
JS Engine + Abstraction Your App Duktape JNI JavaScriptCore Runtime
V8
None
None
None
None
Shared Library + Abstraction Your App
Shared Library + Abstraction Your App ????
None
None
None
None
Multiplatform Abstraction Your App
Your App
Your App
J2ObjC
J2ObjC
J2ObjC
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
app feature 1 feature 2 feature 3
app feature 1 feature 2 feature 3 myapp.apk
app feature 1 feature 2 feature 3 myapp.apk base.apk
app feature 1 feature 2 feature 3 myapp.apk base.apk feature1.apk
app feature 1 feature 2 feature 3 myapp.apk base.apk feature1.apk
HTML CSS JS PNG PNG /index.html HTML /feature1.html
app feature 1 feature 2 feature 3
feature 1 feature 2 feature 3
feature 2 feature 3
feature 3
None
DEX DEX DEX DEX
DEX ARM x86 DEX DEX DEX
DEX ARM x86 en-US de DEX DEX DEX en-US en-US
en-US de de de
app_arm_en-US.apk DEX ARM en-US DEX en-US DEX en-US DEX en-US
DEX en-US de DEX en-US de ARM x86 en-US de DEX en-US de DEX
app_arm_en-US.apk DEX ARM en-US DEX en-US DEX en-US DEX en-US
DEX en-US de DEX en-US de ARM x86 en-US de DEX en-US de DEX de de de de app_de.apk
DEX en-US de DEX en-US de ARM x86 en-US de
DEX en-US de DEX ARM en-US DEX DEX en-US de
DEX en-US de DEX en-US de ARM x86 en-US de
DEX en-US de DEX ARM en-US DEX base_arm_en-US.apk DEX en-US
DEX en-US de DEX en-US de ARM x86 en-US de
DEX en-US de DEX ARM en-US DEX base_arm_en-US.apk DEX en-US feature1_arm_en-US.apk
ARM en-US DEX base_arm_en-US.apk DEX en-US feature1_arm_en-US.apk HTML CSS JS
PNG PNG /index.html HTML /feature1.html
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
native_app.apk DEX ... ART
native_app.apk DEX ... ART Int JIT AOT
native_app.apk DEX ... ART Int JIT AOT CPU
native_app.apk DEX ... ART ART Int JIT AOT CPU chrome.apk
... DEX
native_app.apk DEX ... ART ART V8 Int JIT AOT CPU
chrome.apk ... DEX
native_app.apk DEX ... ART ART V8 Int JIT AOT CPU
chrome.apk ... DEX ... JS cache/
native_app.apk DEX ... ART ART V8 Int JIT AOT CPU
Int JIT chrome.apk ... DEX ... JS cache/
native_app.apk DEX ... ART ART V8 Int JIT AOT CPU
CPU Int JIT chrome.apk ... DEX ... JS cache/
native_app.apk DEX ... ART ART V8 Int JIT AOT CPU
CPU Int JIT JIT & AOT cache chrome.apk ... DEX ... JS cache/
native_app.apk DEX ... ART ART V8 Int JIT AOT CPU
CPU Int JIT JIT & AOT cache chrome.apk ... DEX ... JS cache/
None
Shared Library + Abstraction Your App ????
Shared Library + Abstraction Your App WASM
Multiplatform Abstraction Your App
Multiplatform Abstraction Your App WASM
ART V8 CPU Int JIT chrome.apk ... DEX ... JS
cache/
ART V8 CPU Int JIT chrome.apk ... DEX ... JS
cache/
ART V8 CPU Int JIT chrome.apk ... DEX ... JS
cache/ airhorner.apk ... DEX
None
None
None
None
ART V8 CPU Int JIT chrome.apk ... DEX ... JS
cache/
ART V8 CPU Int JIT airhorner.apk ... DEX ... JS
cache/
ART V8 CPU Int JIT airhorner.apk ... DEX ... JS
cache/ JIT & AOT cache
None
None
None
None
None
app.apk
app.aab app.apk
app.aab app.apk
app.aab app.apk
app.ipa app.aab app.apk
app.ipa app.aab app.apk
app.ipa app.aab app.apk
website/ index.html feature1.html feature2.html feature3.html app.js styles.css app.ipa app.aab app.apk
app-fat.jar website/ index.html feature1.html feature2.html feature3.html app.js styles.css app.ipa app.aab
app.apk
None
None
apk via aab via url
apk via aab via url
apk via aab via url apk via aab via url
apk via aab via url apk via aab via url
apk apk via aab via url apk via aab via
url
apk apk via aab via url apk via aab via
url
apk via aab apk apk via aab via url apk
via aab via url
apk via aab apk apk via aab via url apk
via aab via url
apk via aab apk via aab apk apk via aab
via url apk via aab via url
apk via aab apk via aab apk apk via aab
via url apk via aab via url
apk via aab apk via aab apk apk via aab
via url apk via aab via url Chrome app
apk via aab apk via aab apk apk via aab
via url apk via aab via url Chrome app
apk via aab apk via aab apk apk via aab
via url apk via aab via url Chrome app url
apk via aab apk via aab apk apk via aab
via url apk via aab via url Chrome app url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url ipa url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url ipa url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url ipa url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url ipa url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url pwa ipa url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url pwa ipa url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url pwa ipa ipa url
apk via aab apk via aab apk webapk apk via
aab via url apk via aab via url Chrome app url url pwa ipa ipa url
apk via aab apk via aab apk webapk apk via
aab via url url apk via aab via url Chrome app url url pwa ipa ipa url url
#NATIVE&WEB @JAKEWHARTON