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
React Native for Unified Codebase
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Sonny Lazuardi
December 14, 2016
Technology
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
React Native for Unified Codebase
Facebook Developer Circle Malang, React Native Meetup
Sonny Lazuardi
December 14, 2016
More Decks by Sonny Lazuardi
See All by Sonny Lazuardi
Artificial Intelligence & Design Plugin
sonnylazuardi
0
320
Making Interactive Web using Framer Motion
sonnylazuardi
0
92
The Story of Making Figma Plugins
sonnylazuardi
4
270
UX Prototyping Tools
sonnylazuardi
5
790
Clean Code in Javascript
sonnylazuardi
5
520
Native Mobile App with Javascript - React Native - Code Push
sonnylazuardi
0
410
Bantu Asap - SS Ceria
sonnylazuardi
0
170
React Native for Mobile App Development
sonnylazuardi
3
540
[Sidang] Layanan Basis Data Real Time NoSQL untuk Kolaborasi Web Audio Editor
sonnylazuardi
0
230
Other Decks in Technology
See All in Technology
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
6
3.8k
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
250
運用を見据えたAIエージェント設計実践
amacbee
1
2.8k
Cloud Run のアップデート 触ってみる&紹介
gre212
0
310
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1.2k
はじめてのDatadog
kairim0
0
280
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
2
980
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
180
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
270
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
500
AI フレンドリーなエラー監視を TypeScript で実現する
shinyaigeek
2
260
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
470
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Deep Space Network (abreviated)
tonyrice
0
160
The Language of Interfaces
destraynor
162
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
Utilizing Notion as your number one productivity tool
mfonobong
4
310
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
320
Speed Design
sergeychernyshev
33
1.8k
Site-Speed That Sticks
csswizardry
13
1.2k
Designing for humans not robots
tammielis
254
26k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
940
Transcript
React Native for Unified Codebase Dec 14th, 2016
@sonnylazuardi
Sale Stock 1 Codebase 3 Platforms Web Cordova Android iOS
UI-Kit & Styling • Based on Primitive Component (like: github.com/lelandrichardson/react-p
rimitives) • Include Text, View, Image, Button, TextInput • No gradient • Flexbox vs CSS
Routing • Custom Router based on https://github.com/mjackson/history • Support Code
Splitting on web • Save current scrolling position based on route
Native Modules • One Signal Push Notification • Facebook &
Google Sign In • Google Smart Lock • Google Analytics • Image Picker, Image Zoom • Appsflyer, Crashlytics
Prototyping • Apollo Client to get rid of reducers •
Exponent allows developing app without Android SDK, XCode. • Exponent allows direct deploy to ios and android devices
Performance Tuning
Startup Memory Usage
Scrolling Memory Usage • Get an infinite scroll on our
app, 25000++ live products to show. • https://github.com/brentvatne/fixed- height-windowed-list-view-experime nt • Solve the dynamic height listview by preprocessing items’ height array.
Scrolling Memory Usage Comparison
Faster Startup • Batch initial bootstrap requests • Prefetch Initial
Data on Native Side • (-) Slow Transition Between Tabs Up to 10 secs faster on low-end devices under 2G
GraphQL Batching getCart() getCatalogue() getFoo() getBar() [getCart(), getCatalogue(), getFoo(), getBar()]
Start App Start App
GraphQL Batching • Faster time-to-render on slower networks, like 2G
Connections. • Cut down 6 different HTTP calls into 1 call to render the homepage
Versioner • Custom Versioner based on github.com/Microsoft/code-push • Hosted on
our own server (S3) • Update directly to client devices without Play Store approval
Split Build • universalApk = false • ARM & X86
build • Before Split Build: 13 MB • After Split Build ◦ ARM: 6.9 MB ◦ X86: 8 MB
APK File Size
@sonnylazuardi