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で自社サービスのiOS/Androidアプリをリプレイスした話」 か...
Search
Hiromasa Ohno
July 15, 2020
Programming
1
290
「React Nativeで自社サービスのiOS/Androidアプリをリプレイスした話」 から2年経った今何を思うのか/techplay-mobile-cross-platform-lt-2020-07-15
Hiromasa Ohno
July 15, 2020
Tweet
Share
More Decks by Hiromasa Ohno
See All by Hiromasa Ohno
テレワークデイズ浜松2019発表 ソニックガーデン大野 / Telework Days Hamamatsu 2019
pi_chan
0
140
React Nativeでアプリのアップデートが楽になる話
pi_chan
0
460
Other Decks in Programming
See All in Programming
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
110
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
660
CloudNativePGがCNCF Sandboxプロジェクトになったぞ! 〜CloudNativePGの仕組みの紹介〜
nnaka2992
0
220
技術を根付かせる / How to make technology take root
kubode
1
240
チームリードになって変わったこと
isaka1022
0
190
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
29
11k
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
360
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
5
3.8k
Pulsar2 を雰囲気で使ってみよう
anoken
0
230
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
240
Conform を推す - Advocating for Conform
mizoguchicoji
3
680
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
260
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
400
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Music & Morning Musume
bryan
46
6.3k
How to train your dragon (web standard)
notwaldorf
90
5.8k
RailsConf 2023
tenderlove
29
1k
YesSQL, Process and Tooling at Scale
rocio
171
14k
Agile that works and the tools we love
rasmusluckow
328
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
31
2.1k
Transcript
ʮReact NativeͰࣗࣾαʔϏεͷiOS/ AndroidΞϓϦΛϦϓϨΠεͨ͠ʯ ͔Β2ܦͬͨࠓԿΛࢥ͏ͷ͔ ˏTECH PLAY 2020/07/15 גࣜձࣾιχοΫΨʔσϯ େߒ
ࣗݾհ ✦ େߒʢͻΖ·͞ʣ ✦ 2015͔ΒιχοΫΨʔσϯ ✦ ϓϩάϥϚʔ / ސCTO ✦
Rails / iOSωΠςΟϒ ✦ ੩Ԭݝদࢢࡏॅ
ιχοΫΨʔσϯʹ͍ͭͯ ✦ डୗ։ൃத৺ɾࣗࣾαʔϏε ✦ ϓϩάϥϚʔΛத৺ʹࣾһ50໊΄Ͳ ✦ ೲͷͳ͍डୗ։ൃ ❖ όʔνϟϧCTO ❖
ۀϋοΫ ✦ ϦϞʔτϫʔΫ
Remotty
✦ 20173݄ɿ։ൃ։࢝ ✦ 20179݄ɿϦϦʔεʢچόʔδϣϯΛࠩ͠ସ͑ʣ ✦ 20184݄ɿϒϩάʹ·ͱΊͨ ✦ ↑↑2લ RemottyͷΞϓϦΛReact NativeͰ
None
✦ ྆OSͷωΠςΟϒ൛͕͋ͬͨ ✦ ϒϥβ൛ϝΠϯͷͨΊΞϓϦ༏ઌΊ ✦ ઐۀͰͳ͍ ✦ React NativeͰαΫͬͱͬͯΈΑ͏ ओ1ɿReact
Nativeબͷഎܠ ʢ˞2ʙ3લͷͰ͢ʣ
✦ ։ൃମݧɺྑ͍ʂ☺ ❖ UIΛએݴతʹॻ͚ͯΊͬͪΌྑ͍☺ ❖ Code PushͰͷϦϦʔεͱͬͯศར☺ ❖ JSON APIͷ݁ՌΛͦͷ··ѻָ͑ͯͪΜ☺
ओ2ɿReact Native͓͓ΉͶྑ͔ͬͨ ʢ˞2ʙ3લͷͰ͢ʣ
͋Ε͔Β2ޙͷࠓࢥ͏͜ͱ ʢ։ൃ͡Ί͔ͯΒ3ޙ…ʣ
✦ ։ൃମݧɺྑ͍ʂ☺ ❖ UIΛએݴతʹॻ͚ͯΊͬͪΌྑ͍☺ ❖ Code PushͰͷϦϦʔεͱͬͯศར☺ ❖ JSON APIͷ݁ՌΛͦͷ··ѻָ͑ͯͪΜ☺
։ൃΓָͪΜ ࣌ͱมΘΒͳ͍ؾ࣋ͪ
ϞόΠϧΞϓϦͷ໋॓
OS͕ਐԽ͢ΔͱΞϓϦ͕૬ରతʹѱ͘ͳΔ ✦ ͨͱ͑͜ΜͳରԠ͠·ͨ͠ ✦ iOS ❖ iPhone Xͷग़ݱʢSafeAreaͷߟྀ ✦ Android
❖ Google PlayͰͷ64bitରԠ
✦ OSʹै͢ΔʹReact NativeͷΞοϓσʔτ͕ඞਢ ✦ React NativeͷόʔδϣϯΛ্͛Δͱɺࢮ͵ ✦ ྫʣ ❖ 0.59ʹ͋͛ͨΒAndroidͷTextView͕όά͍ͬͯΔ
❖ →0.60ʹ͋͛ͨΒϏϧυͷΈ͕มΘΔ ❖ →ͬͱͨ͠Β࣮AndroidͷListView͕όάͬ…ʢҎԼུʣ ❖ 0.61ʹͨ͠ΒΑ͏͘ಈ͍ͨ Ξοϓσʔτܥ͕େมɾRNຊମฤ
✦ αΫοͱ࡞ΔͨΊɺ͑ͦ͏ͳϥΠϒϥϦ༻ ❖ OAuthɹ ❖ ը૾ϐοΧʔ/ϦαΠζ ❖ MentionઌબUI ✦ ͜Εͳ͔ͳ͔
❖ RNͷ࠷৽όʔδϣϯະରԠʢͦͦϝϯςࢭ·ͬͯΔ ‣ ผϥΠϒϥϦʹஔ͖͑ ‣ ϓϧϦΫ || fork Ξοϓσʔτܥ͕େมɾϥΠϒϥϦฤ
ֶͼ
RNͷ͚ͩϝϯςۀ͕૿͑Δ /BUJWF4%, ϥΠϒϥϦ ΞϓϦ 3FBDU/BUJWF ϥΠϒϥϦ ΞϓϦ /BUJWF4%, ωΠςΟϒΞϓϦ React
Native ΞϓϦ ✦ NativeͷਐԽʹ͏ϝϯς ✦ React NativeͷਐԽʹ͏ϝϯςΒ ※ Expo3લ͙Β͍ʹͪΒͬͱ৮ͬͯҎདྷͬͯ·ͤΜͷͰɺஅͰ͖·ͤΜ ✦ NativeͷਐԽʹ͏ϝϯς
✦ ϝϯςφϯε͢͠͞Λҡ࣋ ❖ ઐۀͰͳ͍ͳΒͳ͓͞Β ✦ ͜·ΊʹΞοϓσʔτ͠Α͏ ❖ ϓϥοτϑΥʔϜͷਐԽʹ߹Θͤͳ͍ ✦ ϥΠϒϥϦͷґଘΛݮΒͦ͏
❖ ಛʹୈࡾऀͷUIϥΠϒϥϦ… ϝϯςφϯεੑ > ։ൃମݧ
ࠓΔͳΒͲ͏͢Δʁ
※ ΞϓϦͷಛੑʹΑΔͷͰࢲ/Remottyͷ߹ͱ͍͏͜ͱͰ… ✦ ϝΠϯը໘ʹWebViewΛ༻͢Δ ✦ Push௨ͳͲҰ෦ͷػೳωΠςΟϒͰ࣮͢Δ ✦ AndroidͰ͋ΕPWAͰՄೳ ✦ Web։ൃͳͷͰɺ։ൃɾϦϦʔεָ͕ʢ1ຊԽʣ
✦ ωΠςΟϒ࣮ۃখͷͨΊɺϝϯςίετ͍ ωΠςΟϒ࣮ͷWebViewΞϓϦʹ͢Δ ↓
ͲΜͳ߹ʹ React NativeΛબͿ͔
✦ React Nativeͷಛ ❖ ։ൃମݧྑ͍ ❖ ೃછΈ͕͋ΔͰ͋Ζ͏JSͰͷ։ൃ ❖ ωΠςΟϒΞϓϦͷϓϥοτϑΥʔϜͷΈɾڥͷཧղ RNબͷϝϦοτґવͱͯ͋͠Δ
✦ ϑϧλΠϜͰऔΓΊΔ߹ ✦ νʔϜͷਓ͕ेͳ߹ ✦ ϥΠϒϥϦͷϝϯςΛ͍ͱΘͳ͍߹ ✦ ʢϑϨʔϜϫʔΫΛࣗͨͪͰͤΔ߹ʣ ܧଓͯ͠ϝϯςφϯεͰ͖Δମ੍
ʮReact NativeͰࣗࣾαʔϏεͷiOS/ AndroidΞϓϦΛϦϓϨΠεͨ͠ʯ ͔Β2ܦͬͨࠓԿΛࢥ͏ͷ͔ ˏTech Play 2020/07/15 גࣜձࣾιχοΫΨʔσϯ େߒ
͋Γ͕ͱ͏͍͟͝·ͨ͠ ࣭͋Εͥͻ͓ئ͍͠·͢
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ Twitter: @pi_cha_n Facebook: hiromasa.ohno େ ߒ ʘൃചத!!ʗ גࣜձࣾιχοΫΨʔσϯ