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
Blurring the Line Between Native and Web (Droid...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jake Wharton
PRO
June 26, 2018
Technology
16
4.8k
Blurring the Line Between Native and Web (Droidcon DE 2018)
Video:
https://youtu.be/yd-Xztr4fyY
Jake Wharton
PRO
June 26, 2018
Tweet
Share
More Decks by Jake Wharton
See All by Jake Wharton
KMP with non-Kotlin languages (Droidcon NYC 2025)
jakewharton
PRO
2
810
Compose UI for... a light switch? (KotlinConf 2024)
jakewharton
PRO
3
2.1k
Releasing faster with Kotlin multiplatform (DPE Summit 2023)
jakewharton
PRO
3
1.5k
Playing in the Treehouse with Redwood and Zipline (KotlinConf 2023)
jakewharton
PRO
1
2k
Native UI with Multiplatform Compose (Droidcon NYC 2022)
jakewharton
PRO
2
7.3k
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
4.9k
Using Kotlin/JS and Kotlin/Native on Android (Droidcon NYC 2019)
jakewharton
PRO
4
7.7k
Mechanisms of Metaprogramming (Chicago Roboto 2019)
jakewharton
PRO
6
9k
Other Decks in Technology
See All in Technology
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
220
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
480
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
1k
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
150
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
2
130
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
2
3k
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
Featured
See All Featured
BBQ
matthewcrist
89
10k
Scaling GitHub
holman
464
140k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
How to Ace a Technical Interview
jacobian
281
24k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
750
Documentation Writing (for coders)
carmenintech
77
5.3k
A designer walks into a library…
pauljervisheath
210
24k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
76
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Unsuck your backbone
ammeep
671
58k
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