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 CodePush in Wantedly
Search
Yuki YAMADA
May 29, 2018
Technology
1
1k
React Native CodePush in Wantedly
Roppongi.js #3 で発表しました。Microsoft の提供する React Native CodePush についてです。
Yuki YAMADA
May 29, 2018
Tweet
Share
More Decks by Yuki YAMADA
See All by Yuki YAMADA
Frontend Engineering at Wantedly
yamadayuki
5
36k
Actor Model in Reason
yamadayuki
0
1.1k
React with Reason
yamadayuki
1
650
Wantedlyの新卒研修
yamadayuki
1
3.2k
Introduction to Flow
yamadayuki
0
450
Other Decks in Technology
See All in Technology
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
5
590
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
290
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
120
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
100
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
510
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Optimizing for Happiness
mojombo
376
70k
Embracing the Ebb and Flow
colly
84
4.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Building Applications with DynamoDB
mza
90
6.1k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
860
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Unsuck your backbone
ammeep
668
57k
Happy Clients
brianwarren
98
6.7k
Transcript
©2018 Wantedly, Inc. React Native CodePush Roppongi.js #3 29.Mar.2018 -
Yamada Yuki
©2018 Wantedly, Inc. Yuki Yamada @yamadayuki I’m an Engineer @
Wantedly I write JS, Golang, Ruby … etc. Now I focus on Frontend Engineering at Feed squad.
©2018 Wantedly, Inc. React Native CodePush ͷΛ͠·͢
©2018 Wantedly, Inc. 1. React Native / CodePush ͱ 2.
CodePush ͷಋೖഎܠɾํ๏ 3. CodePush ͷதͷͳ͠ ࣍
©2018 Wantedly, Inc. React Native / CodePush ͱ
©2018 Wantedly, Inc. React Native React Ͱهड़Ͱ͖Δ View ϥΠϒϥϦ iOS
/ Android ͷදࣔͷ෦Λ React ͷදݱํ๏Λ ͍͍ͬͯײ͡ʹهड़Ͱ͖ΔϥΠϒϥϦɻදࣔͷ෦ ͚ͩͰͳ͘ɺϩδοΫͷ෦JSͰهड़Ͱ͖Δ ͷͰɺॏཁͳϏδωεϩδοΫͷ෦Λ iOS / Android ྆ํͰڞ௨ԽͰ͖Δ͜ͱ͕Մೳʹͳͬͨੌ ͍ͭɻؤுΕΣϒͱͷڞ௨ԽՄೳɻ
©2018 Wantedly, Inc. CodePush React Native ෦Λૉૣ͘ఏڙͰ͖Δ Microsoft ͕ఏڙ͢Δ Visual
Studio App Center ͷ ػೳͷҰͭɻReact Native Cordova ͷ JS ෦ ΛϓϥοτϑΥʔϜͷ৹ࠪແ͠ͰมߋͰ͖Δπʔϧɻ React Native ༻ͷ HOC ༻ҙ͞Ε͍ͯͯɺҰಋ ೖͯ͠ϨʔϧΛෑ͚ૉૣ͍ΠςϨʔγϣϯͰ։ൃ ΛਐΊΔ͜ͱ͕Ͱ͖Δͣɻ
©2018 Wantedly, Inc. CodePush ͷಋೖഎܠɾํ๏
©2018 Wantedly, Inc. CodePush ͷಋೖഎܠ Feed νʔϜͱͯ͠ Wantedly ͷ iOS
ΞϓϦʹ৽͍͠ػೳΛ࡞Γ͔ͨͬͨɻ -> Ͱ User Growth νʔϜผͷػೳ։ൃΛ͍ͯ͠ΔͷͰ iOS ΤϯδχΞ͕͍ͳ͍ɻ -> ͔͠৽͍͠ػೳ࣮ݧΛ͍Ζ͍Ζ͍͖͍ͯͨ͠ɻ React Native / CodePush ΛͬͨΒղܾͰ͖ͦ͏
©2018 Wantedly, Inc. CodePush ಋೖํ๏ Πϯετʔϧ `yarn add react-native-code-push` ࠓճطଘΞϓϦʹಋೖ͢Δ͜ͱʹͳ͍ͬͯͨͷͰɺ
node module ΛΠϯετʔϧͨ͠ͷͪɺ CocoaPods Ͱཧ͢Δඞཁ͕͋ͬͨɻ
©2018 Wantedly, Inc. CodePush ಋೖํ๏ codePush HOC CodePush appcenter
ʹରͯ͠৽͍͠Ϗϧυ͕ ଘࡏ͢Δ͔Λ֬ೝͯ͠ɺ͋ͬͨΒμϯϩʔυ͖ͯ͠ ͍͍ͯλΠϛϯάͰ jsbundle ϑΝΠϧΛஔ͖͑ ΔɻͦΕΛఏڙ͢ΔHOC ͰίϯϙʔωϯτΛ wrap ͢Δɻ
©2018 Wantedly, Inc. CodePush ಋೖํ๏ σϓϩΠ appcenter CLI ΛͬͯσϓϩΠ͢Δɻ Visual
Studio App Center ʹσϓϩΠͨ͠Βɺ CodePush Λಋೖͨ͠ React Native ΞϓϦ͕֬ೝ ͯ͠৽͍͠ίʔυΛऔಘ͢ΔΑ͏ʹͳ͍ͬͯΔ
©2018 Wantedly, Inc. CodePush ͷಋೖഎܠ Feed νʔϜͱͯ͠ Wantedly ͷ iOS
ΞϓϦʹ৽͍͠ػೳΛ࡞Γ͔ͨͬͨɻ -> Ͱ User Growth νʔϜผͷػೳ։ൃΛ͍ͯ͠ΔͷͰ iOS ΤϯδχΞ͕͍ͳ͍ɻ -> ͔͠৽͍͠ػೳ࣮ݧΛ͍Ζ͍Ζ͍͖͍ͯͨ͠ɻ React Native / CodePush ΛͬͨΒղܾͰ͖ͦ͏ -> ߦ͚ͦ͏
©2018 Wantedly, Inc. CodePush ͷதͷͳ͠
©2018 Wantedly, Inc. CodePush தͷͳ͠ Ͳ͏ͬͯಈ͍ͯΔͷ͔ https://github.com/Microsoft/react-native- code-push/blob/ dea708813f14f1aba6d464f46e7a1883d1a491da/ CodePush.js
ΛಡΜͰΈΔ `codePushfy` ͱ `NativeCodePush` ͕ॏཁɻ
©2018 Wantedly, Inc. CodePush தͷͳ͠
©2018 Wantedly, Inc. CodePush தͷͳ͠
©2018 Wantedly, Inc. CodePush தͷͳ͠
©2018 Wantedly, Inc. CodePush தͷͳ͠
©2018 Wantedly, Inc. CodePush தͷͳ͠
©2018 Wantedly, Inc. CodePush தͷͳ͠ NativeCodePush Native ͷ bridge ͕٧·ͬͨ
moduleɻ `ios/CodePush/CodePush.m` ͱ͔ʹͦΕͧΕ ͷϓϥοτϑΥʔϜͷ࣮͕͋ΔɻͦΕ͕ React Native ͷ NativeModule ͱ͍͏ػೳͰ OS ͷڍ ಈΛJS ଆ͔ΒݺΔΑ͏ʹ expose ͞Ε͍ͯΔɻ ࠷৽ͷϏϧυΛ֬ೝ͢Δͱ͖ͱ͔ʹར༻͞ΕΔɻ
©2018 Wantedly, Inc. NativeCodePush ͷத JS͡Όͳ͍ͷͰͳ͠·ͤΜ Feed ʹϒϩάΛॻ͖·͢ɻ CodePush தͷͳ͠
©2018 Wantedly, Inc. ·ͱΊ WebΤϯδχΞͰ CodePush ͷಋೖͳΜͱ͔Ͱ͖ͨ CodePush ӡ༻͑͞Ͱ͖Ε͍͍πʔϧʹͳΔ React
Native Λͬͯૉૣ࣮͘ݧΛ͢Δ͕Ͱ͖ͨ
©2018 Wantedly, Inc. Enjoy