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
Thorben Primke - Leavering Your Android Knowled...
Search
droidcon Berlin
July 17, 2018
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Thorben Primke - Leavering Your Android Knowledge To Boost Your Team’s Velocity With React Native
droidcon Berlin
July 17, 2018
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
86
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
90
Boris Farber & Nikita Kozlov - The_Build_Side_of_Android_App
droidcon_berlin_2018
0
220
Zan Markan - The state of Kotlin
droidcon_berlin_2018
0
88
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
340
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
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
140
FreeBSDでZabbixを動かす
kenkino
0
330
速習iPhone Duo対応
yuukiw00w
2
850
Agents on Rails - Rails at Scale 2026
irinanazarova
0
280
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
380
アクセシビリティから考える情報設計
high_g_engineer
0
420
MCP Appsでつくるチャット駆動な地図アプリ
nakamori1024
0
110
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
140
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
250
setup-vp GitLab対応の裏側
naokihaba
0
140
一人だけ、Kiroが静止する日
hideg
0
130
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
270
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building AI with AI
inesmontani
PRO
1
1.3k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Optimizing for Happiness
mojombo
378
71k
Transcript
None
Leavering Your Android Knowledge To Boost Your Team’s Velocity With
React Native 6/27/2018 Thorben Primke Droidcon Berlin
Thorben Primke Product Engineer Pinterest @tprimke
Agenda Background Technical Aspects Current State & What’s Next 1
2 3
React Native React for building mobile application • Developed by
Facebook • Uses JavaScriptCore for processing the JS • Renders natively • Extensible
Our Interest What sparked the exploration • Product Engineering •
Growth Engineering • Business value • Piece wise adoption
Build Times Almost no more waiting • Android - 30sec
to multiple minutes • RN - Instant reloads
Context Less Lost In Translation • Efficient communication • One
Engineer for Web & Mobile • PM, design and engineer • Fewer inconsistencies
Foundation Starting Fresh vs Extending • Greenfield • Brownfield
But really… …is there no other way • Server Driven
UI • Hire more mobile engineers • Adds complexity to infrastructure
The Team Thorben Primke Product Engineer @tprimke Vivian Qu
Growth Engineer @vivqu Michael Schneider Core Experience Engineer @maicki
Agenda Background Technical Aspects Current State & What’s Next 1
2 3
New Home Where to keep the shared code • Android
and iOS in separate repositories • Separate repository for RN • Symlink into mobile repositories
Dependencies Frictionless integration • Leverage Maven • React Native is
already in local maven • Every other library needs the same
Dependencies Frictionless integration • Leverage Maven • React Native is
already in local maven • Every other library needs the same
Dependencies Frictionless integration • Leverage Maven • React Native is
already in local maven • Every other library needs the same
But APK Size …let’s take a look • Split APK
by arch • Multi dex • Fresco already in codebase • Only armv7 and x86
Let’s Render …how to render your React • Fragment based
architecture • Full screen • One React screen / module, one fragment
Let’s Render …how to render your React • Fragment based
architecture • Full screen • One React screen / module, one fragment
Dynamic Typing …but we like static languages • Flow •
TypeScript • Typeahead & refactoring
Native <-> RN …how does it work? • JavaScriptCore •
React Native Bridge • Delayed initialization React Native Native Bridge
API Client …no duplicate networking logic • Expose the REST
methods • No auth token to pass around • Reuse logging
API Client …no duplicate networking logic • Expose the REST
methods • No auth token to pass around • Reuse logging
UI Components …how does it work? • Pinterest Design System
• Gestalt on web • Ported the majority to React Native
Images …sharing between RN and native • Bridge your native
ImageView • Share the same cache
Navigation Leave it to native • JS vs Native navigation
• Single screen approach • Flexible router
Navigation Leave it to native • JS vs Native navigation
• Single screen approach • Flexible router
Navigation Leave it to native • JS vs Native navigation
• Single screen approach • Flexible router
Localization Nothing out of the box • JS Libs •
ICU format • Modeled after Android strings.xml
Localization Nothing out of the box • JS Libs •
ICU format • Modeled after Android strings.xml
Localization Nothing out of the box • JS Libs •
ICU format • Modeled after Android strings.xml
Localization Nothing out of the box • JS Libs •
ICU format • Modeled after Android strings.xml
More Bridging …for all the important pieces • Context Logging
• Experiment Framework
Agenda Background Technical Aspects Current State & What’s Next 1
2 3
Ensuring Success …one screen at a time • A/A NUX
performance experiment • Pre-build meetings • Always frictionless
Ensuring Success …one screen at a time • 4+ screens
live in the app • Continued support • Technology supported
More Work …supporting non-fullscreen • Asynchronous JS layout • iOS
has support RCTSurfaceView • Starting work for Android • Next version of React Native
OTA Updates …or known as code push • Considered but
delayed • Useful even with weekly releases • Requires UI to be fully JS
© Copyright, All Rights Reserved, Pinterest Inc. 2018 Thorben Primke
- @tprimke