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 Expoで行うアプリの簡単最速運用
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yu Watanabe
February 27, 2019
Programming
0
340
React Native Expoで行うアプリの簡単最速運用
Expoの利点を最大限使うためにcircleciを使いましょう的なお話です。
さらに自分が作ったexpo-qr-notifyというのを使えばもっと開発運用が楽になります的なお話です。
Yu Watanabe
February 27, 2019
Tweet
Share
More Decks by Yu Watanabe
See All by Yu Watanabe
依存ライブラリを薄くするために車輪を再開発してもいいんだよ🛞
watanabeyu
0
130
Bolt 🤝 Expo
watanabeyu
0
390
npm packageとリリースとモノレポ
watanabeyu
0
70
react-native-ffmpegを使って動画をいじくりmawasou
watanabeyu
0
990
react-native-unimodulesを用いてのApp内課金実装
watanabeyu
0
1.2k
gandhの紹介です
watanabeyu
0
41
XcodeやAndroid Studioを弄らないアイコン管理
watanabeyu
2
680
Firebaseオンリー + React Nativeでアプリを作ると果たして簡単になるのか?
watanabeyu
4
1.3k
react-native-unimodulesのススメ
watanabeyu
1
6.7k
Other Decks in Programming
See All in Programming
文字コードの話
qnighy
44
17k
DSPy入門 Pythonで実現する自動プロンプト最適化 〜人手によるプロンプト調整からの卒業〜
seaturt1e
1
710
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
430
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
180
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
730
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.1k
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
140
Docコメントで始める簡単ガードレール
keisukeikeda
1
110
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.3k
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
180
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
430
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
210
Featured
See All Featured
It's Worth the Effort
3n
188
29k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
310
The SEO Collaboration Effect
kristinabergwall1
0
390
Embracing the Ebb and Flow
colly
88
5k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
310
How STYLIGHT went responsive
nonsquared
100
6k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
150
Typedesign – Prime Four
hannesfritz
42
3k
Designing for humans not robots
tammielis
254
26k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
100
Transcript
2019/02/27 ΘͨͳΏ͏ REACT NATIVE EXPOͰߦ͏ΞϓϦͷ؆୯࠷ӡ༻
▸ ࣗݾհ ▸ React Native Expoͱ ▸ ExpoΛ͏ϝϦοτ/σϝϦοτ ▸ ։ൃӡ༻Λૉૣ͘؆୯ʹߦ͏ͨΊʹ
▸ circleciͷಋೖ ▸ expo-qr-notifyͷಋೖ ▸ ·ͱΊ ֓ཁ
ࣗݾհ(1) ΘͨͳΏ͏ ▸ ॴଐ ▸ גࣜձࣾg&h ▸ Web / ΞϓϦΛझຯͰެ։
▸ ࣄ༰ ▸ αʔό / ϑϩϯτ / ΞϓϦ / Web ▸ ΞΧϯτ ▸ Twitter : @hmktsu ▸ Github : @watanabeyu ࣮ફExpo͍ͬͯ͏ຊΛڞஶͰ201812݄ʹग़൛
ࣗݾհ(2) ▸ https://www.gandh.jp ▸ 3໊(ΤϯδχΞࣗҰਓ)Ͱฏۉྸ30ͷγχΞձࣾ ▸ ετϦʔτΧϧνϟʔ × ITͳαʔϏεΛӡӦ ▸
ݱࡏͷϝΠϯࣄۀɿhttps://www.weddyweddy.net ▸ μϯαʔ͚ͷϓϥοτϑΥʔϜܥSNSΞϓϦ ▸ ͪ͜ΒͰνϣΠεͨ͠གྷΓ͍͢30ඵఔͷۂͰགྷͬͯಈըΛΞοϓ
REACT NATIVE EXPOͰߦ͏ΞϓϦͷ؆୯࠷ӡ༻ React Native Expoͱ
REACT NATIVE EXPOͱ(1) ▸ React NativeΛݶΓͳ͘web։ൃʹ͚ۙͮΔͨΊͷͷ ▸ XcodeAndroid Studio͕ෆཁ ▸
JavaScriptͷΈͰ࡞Δ͜ͱ͕Մೳ
REACT NATIVE EXPOͱ(2) ▸ σόοάʹExpo Clientͱ͍͏ΞϓϦΛ֤ετΞ͔Βμϯϩʔυ ▸ ಉҰωοτϫʔΫ / ಉҰϩάΠϯΞΧϯτͰ࣮ߦՄೳ
▸ ΄ͱΜͲͷͰγʔϜϨεʹσόοΫՄೳ
REACT NATIVE EXPOͱ(3) ▸ Expo SnackͰWebϒϥβ্Ͱࢼ͢͜ͱ͕Մೳ ▸ ExpoΞΧϯτʹಉظͰ͖Δ ▸ γϛϡϨʔλଐͯ͠ΔͷͰϒϥβͷΈͰ։ൃ͕Մೳ
REACT NATIVE EXPOͱ(4) ▸ ओཁͳػೳʹରԠ ▸ Χϝϥ ▸ ԻಈըΛ࠶ੜը(Ի)ͨ͠ΓɺϝσΟΞϥΠϒϥϦͷΞΫηε ▸
֤छηϯαʔܥ ▸ ͳͲͳͲ ΄΅΄΅ͷΞϓϦ։ൃʹඞཁͳػೳʹରԠ
REACT NATIVE EXPOͱ(5) ▸ CodePushͷΑ͏ͳOTAΞοϓσʔτʹඪ४ରԠ ▸ configڥ͝ͱʹ؆୯ʹઃఆՄೳ ▸ app.jsonrelease-channelΛϏϧυຖʹมߋՄೳ ▸
ΞϓϦΛϏϧυ͢Δࡍͷূ໌ॻؔ࿈ΛExpoͰཧͯ͘͠ΕΔ EXPO.HOST —config app.development.json release-channel=development -config app.production.json —release-channel=production ɾiOS Distribution ɾAPNs iOS ɾiOS Development ɾAndroid KeyStore
REACT NATIVE EXPOͰߦ͏ΞϓϦͷ؆୯࠷ӡ༻ ExpoΛ͏ϝϦοτ/σϝϦοτ
EXPOΛ͏ϝϦοτ/σϝϦοτ(1) ʙϝϦοτʙ ▸ JSͷΈͳͷͰWebग़ͷΤϯδχΞ͕৮Γ͍͢ ▸ ͍͍ͪͪϏϧυ͢Δඞཁ͕ͳ͍ͷͰσόοά͕؆୯ ▸ ExpoଆͰίϯϙʔωϯτΛ։ൃͯ͘͠ΕͯΔͷͰϝϯςφϯε͕ෆඞཁ ▸ ΄΅΄΅ͷωΠςΟϒػೳʹରԠͯ͠Δ
▸ ίϯϑΟάͳͲϏϧυ͢ΔࡍʹjsonϑΝΠϧΛࢦఆ͢Δ͚ͩ ▸ OTAΞοϓσʔτରԠͳͷͰਃෆཁͰߋ৽Մೳ ▸ ূ໌ॻؔ࿈ͷཧΛߦͬͯ͘ΕΔ ▸ React NativeຊମͷΞοϓσʔτΛͯ͘͠ΕΔ
EXPOΛ͏ϝϦοτ/σϝϦοτ(2) ʙσϝϦοτʙ ▸ npmύοέʔδ͕JSͷΈͰॻ͔Ε͍ͯΔͷͰͳ͍ͱ͑ͳ͍ ▸ ExpoͰऔΓࠐΜͰ͍ΔSDKͰͳ͍ͱ͑ͳ͍ ▸ adjustReproͳͲ ▸ firebaseWeb
SDKͳͷͰϑϧػೳ͕͑ͳ͍ ▸ ExpoͰ༻ҙ͍ͯ͠ͳ͍ػೳ͕͑ͳ͍ ▸ BluetoothͳͲ ▸ Expoͷશͯͷίϯϙʔωϯτ͕όϯυϧʹؚ·Εͯ͠·͏ ▸ ৹ࠪ࣌ͷࠂؔ࿈ͷνΣοΫ ▸ ϑΝΠϧͷංେԽ ▸ ͍͟σλον͢ΔͱͳΔͱ͔ͳΓࠊ͕ॏ͘ͳͬͯ͠·͏ ▸ React NativeຊମͷΞοϓσʔτ͕͘ͳͬͯ͠·͏
EXPOΛ͏ϝϦοτ/σϝϦοτ(3) ʙEXPOͷ͍ॴʙ ▸ ExpoͰ༻ҙ͞Ε͍ͯΔͷͷΈͰ݁Ͱ͖Δ ▸ ࠂͳͲϏδωεతͳཁ݅ͷҙࢥܾఆ͕Ͱ͖Δ͔Ͳ͏͔ ▸ εϐʔυΛ༏ઌͯ͠ϓϩτλΠϐϯάఔͷؾ࣋ͪΛ࣋ͭ ▸ ͨͬͨΒνʔϜਓ૿ͯ͠ωΠςΟϒΛ࡞ΔΑ͏ʹ͢Δ
ҰਓͰ։ൃ͢Δ͙Β͍ͷؾ࣋ͪͩͱΑ͍͔
REACT NATIVE EXPOͰߦ͏ΞϓϦͷ؆୯࠷ӡ༻ ։ൃӡ༻Λૉૣ͘؆୯ʹߦ͏ͨΊʹ
REACT NATIVE EXPOͰߦ͏ΞϓϦͷ؆୯࠷ӡ༻ ࣮ػ֬ೝͷखؒΛ͔͚ͳ͍Α͏ʹ͍ͨ͠ OTAΞοϓσʔτΛޮΑ͍͍ͨ͘
REACT NATIVE EXPOͰߦ͏ΞϓϦͷ؆୯࠷ӡ༻ circleciͷಋೖ
CIRCLECIͷಋೖ(1) git push git merge dev prod develop master expo
publish expo publish ֤branchʹϚʔδ͞ΕͨΒ OTAΞοϓσʔτ͞ΕΔ
CIRCLECIͷಋೖ(2) https://gist.github.com/watanabeyu/69c42b79800baa8691ac0447866a2252 ExpoͷΞΧϯτ໊/ύεϫʔυCI্ʹอଘ
CIRCLECIͷಋೖ(3) https://gist.github.com/watanabeyu/69c42b79800baa8691ac0447866a2252 release-channel͓ΑͼconfigΛࢦఆ
CIRCLECIͷಋೖ(4) https://gist.github.com/watanabeyu/69c42b79800baa8691ac0447866a2252
CIRCLECIͷಋೖ(5) ͏গ͠ศརʹͳΒͳ͍͔ʁ PRຖʹExpoΫϥΠΞϯτͰΞϓϦͷ֬ೝ͕Ͱ͖Δͱศར
REACT NATIVE EXPOͰߦ͏ΞϓϦͷ؆୯࠷ӡ༻ expo-qr-notifyͷಋೖ
EXPO-QR-NOTIFYͷಋೖ(1) git push git merge dev prod dev prod expo
publish expo publish publish࣌ʹ slackͱgithubʹ ௨ͯ͠΄͍͠ feature/xxx git merge
EXPO-QR-NOTIFYͷಋೖ(2) expo publish࣌ʹίϚϯυ࣮ߦͰ͖ΔͷΛར༻ͨ͠ύοέʔδ https://github.com/watanabeyu/expo-qr-notify/tree/master/example
EXPO-QR-NOTIFYͷಋೖ(3)
EXPO-QR-NOTIFYͷಋೖ(4)
EXPO-QR-NOTIFYͷಋೖ(5) release-channelΛcircleciͷڥมͰࢦఆ
EXPO-QR-NOTIFYͷಋೖ(6)
·ͱΊ ▸ Expo։ൃ͢Δ্ͰϝϦοτ͕ଟ͍͠σϝϦοτଟ͍ ▸ ཁ݅ʹͯ·Δͱͱͯ؆୯ ▸ ϓϩτλΠϐϯάతͳײ͙֮Β͍ͷํ͕Α͍ ▸ ։ൃ͓Αͼӡ༻Λগ͠Ͱૉૣ͘؆୯ʹ͢ΔͨΊʹ ▸
circleciΛಋೖ͢ΔͱϒϥϯνຖʹOTAΞοϓσʔτͰ͖Δ ▸ expo-qr-notifyΛಋೖ͢Δ͜ͱͰ։ൃ࣌ʹPRຖʹ֬ೝͰ͖Δ
͓ΘΓ