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
Cross-Platform React Native
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Connor McEwen
September 14, 2016
Technology
71
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cross-Platform React Native
Connor McEwen
September 14, 2016
More Decks by Connor McEwen
See All by Connor McEwen
A Year With React Native
cmcewen
0
110
React Native Dev Tools
cmcewen
0
510
Other Decks in Technology
See All in Technology
FDE という解 ― 暗黙知と明示知をつなぐ、伴走型エンジニアリング ―
otanet
0
110
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
18
6.1k
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
120
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
150
チームで実践する AI-DLC 思考の軌跡を残すチェックポイント設計
belongadmin
0
3.2k
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
290
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2.4k
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
3
190
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
3
570
手塩にかけりゃいいってもんじゃない
ming_ayami
0
150
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
120
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
3
2k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
BBQ
matthewcrist
89
10k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
How to Ace a Technical Interview
jacobian
281
24k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
How to build a perfect <img>
jonoalderson
1
5.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Transcript
Cross-Platform React Native What does that really mean? Connor McEwen
About Me cmcewen @connormcewen Lead Engineer, Emerging Products Using React
Native since the beta
Flare • Small business community app • 100% React Native
• Featured in App Store + Google Play Store
RN Cross-Platform …We’re not chasing “write once, run anywhere.” We
call this approach “learn once, write anywhere.” iOS
How it works http://tadeuzagallo.com/blog/react-native-bridge/ iOS … Same API
How it works class Hello extends React.Component { render() {
return( <View> <Text>Hello world!</Text> </View> ) } } - (UIView *)view { return [RCTView new]; } @Override public ReactViewGroup createViewInstance(Them return new ReactViewGroup(context); }
The Dream
Reality
Why? • Design choices - material design • Phone features
- hardware back button • Different APIs - permissions • Performance • Layout
How • .ios.js + .android.js • inline Platform.OS class Hello
extends Component { render() { return( <View> <Text>I’m iOS!</Text> </View> ) } } class Hello extends Component { render() { return( <View> <Text>I’m Android!</Text> </View> ) } } class Hello extends Component { render() { if (Platform.OS === ‘ios’) { return( <View> <Text>I’m iOS!</Text> </View> ) } else { return( <View> <Text>I’m Android!</Text> </View> ) } } }
Our stats • 166 total files in js directory •
4 .android.js + 4.ios.js = 4.8% • 37 .js use the Platform API = 22% imageContainer: { paddingTop: Platform.OS === 'ios' ? 5 : 10 },
Timeline Started working on Flare on iOS Aug. 2015 RN
Android released Sep. 2015 Initial Flare Android version Mar. 2016 iOS release + feature May 2016 Oh shit Android bugs + perf June 2016 Android release June 2016 Google feedback to get featured July 2016 Android feature Aug 2016
Key differences • Material Design • Touchables • Permissions APIs
Lesson Learned • Test both platforms early • Don’t use
negative absolute positions • You might need to make native modules for parity • Things have gotten much better
Thanks! @connormcewen