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
Thorben Primke - Leavering Your Android Knowled...
Search
droidcon Berlin
July 17, 2018
Programming
100
0
Share
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
210
Jon Markoff - Voice in the enterprise
droidcon_berlin_2018
0
77
Michael Jess - Enabling enterprise mobility with SAP
droidcon_berlin_2018
0
120
Ronen Sabag - Lean async code with Kotlin’s coroutines
droidcon_berlin_2018
0
78
Boris Farber & Nikita Kozlov - The_Build_Side_of_Android_App
droidcon_berlin_2018
0
200
Zan Markan - The state of Kotlin
droidcon_berlin_2018
0
82
Miquel Beltran - No More □ (tofu) Mastering Emoji on Android
droidcon_berlin_2018
0
140
Laurent Gasser & Jeremy Rochot - Sharing a success story - A low cost, Customer driven and co-developed Android EMM
droidcon_berlin_2018
0
320
Hoi Lam - Adding ML Kit to Android Things And some TensorFlow things
droidcon_berlin_2018
1
240
Other Decks in Programming
See All in Programming
Agent Skills を社内で育てる仕組み作り
jackchuka
1
2.1k
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
3
570
🦞OpenClaw works with AWS
licux
1
370
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
160
KMP × Kotlin 2.3 - How Android Got Slower While iOS Builds Improved by 47%
rio432
0
200
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
0
200
Cloudflare で始める Data Platform
ta93abe
0
180
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
190
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.1k
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
200
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
130
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
490
Featured
See All Featured
BBQ
matthewcrist
89
10k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
200
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
4 Signs Your Business is Dying
shpigford
187
22k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
240
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
180
Tell your own story through comics
letsgokoyo
1
920
Game over? The fight for quality and originality in the time of robots
wayneb77
1
170
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.4k
The Invisible Side of Design
smashingmag
302
52k
WENDY [Excerpt]
tessaabrams
10
37k
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