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
Connor McEwen
September 14, 2016
Technology
73
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
120
React Native Dev Tools
cmcewen
0
520
Other Decks in Technology
See All in Technology
SmartHR Engineering Team Deck
smarthr
1
2.2k
案件に一番詳しいAIを Amazon Bedrock AgentCore で作る ― 知見が知見を生むチームへ / Compounding Knowledge with AgentCore
yusukeshimizu
1
100
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
210
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
2
1.1k
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
260
Digitization部 紹介資料
sansan33
PRO
2
7.7k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
830
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
私がブラウザを自作したくなった理由
supurazako
1
240
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
360
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
110
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
The browser strikes back
jonoalderson
0
1.5k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
650
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
280
Site-Speed That Sticks
csswizardry
13
1.4k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
540
Rails Girls Zürich Keynote
gr2m
96
14k
How to Talk to Developers About Accessibility
jct
2
520
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
530
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