Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Thorben Primke - Leavering Your Android Knowled...
Search
droidcon Berlin
July 17, 2018
Programming
0
99
Thorben Primke - Leavering Your Android Knowledge To Boost Your Team’s Velocity With React Native
droidcon Berlin
July 17, 2018
Tweet
Share
More Decks by droidcon Berlin
See All by droidcon Berlin
Jon Markoff - Best practice for apps
droidcon_berlin_2018
0
190
Jon Markoff - Voice in the enterprise
droidcon_berlin_2018
0
64
Michael Jess - Enabling enterprise mobility with SAP
droidcon_berlin_2018
0
110
Ronen Sabag - Lean async code with Kotlin’s coroutines
droidcon_berlin_2018
0
68
Boris Farber & Nikita Kozlov - The_Build_Side_of_Android_App
droidcon_berlin_2018
0
190
Zan Markan - The state of Kotlin
droidcon_berlin_2018
0
74
Miquel Beltran - No More □ (tofu) Mastering Emoji on Android
droidcon_berlin_2018
0
130
Laurent Gasser & Jeremy Rochot - Sharing a success story - A low cost, Customer driven and co-developed Android EMM
droidcon_berlin_2018
0
280
Hoi Lam - Adding ML Kit to Android Things And some TensorFlow things
droidcon_berlin_2018
1
220
Other Decks in Programming
See All in Programming
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
140
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
160
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
520
Microservices rules: What good looks like
cer
PRO
0
1.6k
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
380
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
920
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
認証・認可の基本を学ぼう前編
kouyuume
0
260
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
240
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
170
ゲームの物理 剛体編
fadis
0
370
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
240
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
Getting science done with accelerated Python computing platforms
jacobtomlinson
0
75
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
100
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
400
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Embracing the Ebb and Flow
colly
88
4.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
47
33k
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