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
Jake Wharton - Blurring the line between Native...
Search
droidcon Berlin
July 17, 2018
Programming
89
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jake Wharton - Blurring the line between Native and Web
droidcon Berlin
July 17, 2018
Transcript
118 slides
#NATIVE&WEB @JAKEWHARTON
None
None
None
None
None
None
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 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 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
Shared Library + Abstraction Your App ????
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
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
DEX ARM x86 en-US de DEX DEX DEX en-US en-US
en-US de de de
DEX en-US de DEX en-US de ARM x86 en-US de
DEX en-US de DEX DEX ARM en-US DEX en-US DEX en-US DEX en-US
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_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
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 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 chrome.apk ... DEX ... JS
cache/
ART V8 CPU Int JIT airhorner.apk ... DEX ... JS
cache/ JIT & AOT cache
app-fat.jar website/ index.html feature1.html feature2.html feature3.html app.js styles.css app.ipa app.aab
app.apk
None
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 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 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 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 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
More Decks by droidcon Berlin
See All by droidcon Berlin
Jon Markoff - Best practice for apps
droidcon_berlin_2018
0
230
Jon Markoff - Voice in the enterprise
droidcon_berlin_2018
0
90
Michael Jess - Enabling enterprise mobility with SAP
droidcon_berlin_2018
0
140
Ronen Sabag - Lean async code with Kotlin’s coroutines
droidcon_berlin_2018
0
94
Boris Farber & Nikita Kozlov - The_Build_Side_of_Android_App
droidcon_berlin_2018
0
230
Zan Markan - The state of Kotlin
droidcon_berlin_2018
0
92
Miquel Beltran - No More □ (tofu) Mastering Emoji on Android
droidcon_berlin_2018
0
150
Laurent Gasser & Jeremy Rochot - Sharing a success story - A low cost, Customer driven and co-developed Android EMM
droidcon_berlin_2018
0
350
Hoi Lam - Adding ML Kit to Android Things And some TensorFlow things
droidcon_berlin_2018
1
250
Other Decks in Programming
See All in Programming
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
600
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
230
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
AmebaブログはKMPから卒業します
kmars0605
0
350
LLM 101
dalinaum
0
480
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
170
AI-Powered Domain-Driven Design
ziobrando
0
430
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
GraphQL の onError と Nullability のこれから
quramy
0
210
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.7k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Pragmatic Product Professional
lauravandoore
37
7.5k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Code Reviewing Like a Champion
maltzj
529
40k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Faster Mobile Websites
deanohume
310
32k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
630
Building Flexible Design Systems
yeseniaperezcruz
330
41k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
900