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からNativeアプリへ ~スタートアップ企業における 「機能開発と保守性担保」の両立への挑戦~
Search
株式会社ビットキー / Bitkey Inc.
PRO
September 11, 2022
Technology
0
1.5k
React NativeからNativeアプリへ ~スタートアップ企業における 「機能開発と保守性担保」の両立への挑戦~
株式会社ビットキー / Bitkey Inc.
PRO
September 11, 2022
Tweet
Share
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
スタートアップにおける Platform Engineering の 片鱗 / A glimpse of platform engineering in startups
bitkey
PRO
2
110
Node.js のサーバーをなるべく自動生成に頼って Go にリプレイスした話 / A story about replacing a Node.js server with Go, relying on automatic generation as much as possible.
bitkey
PRO
2
92
スマートロック開発におけるSLI/SLOを用いた解錠体験の改善 / Improving the unlocking experience using SLI/SLO in smart lock development
bitkey
PRO
3
190
Bitkeyのモバイルアプリを進化させるための歩き方 / Walking the evolution of Bitkey's mobile apps
bitkey
PRO
1
290
Pointer と向き合う / Facing the Pointer
bitkey
PRO
1
46
Best of こんなTypeScriptは嫌だ! / I don't like this TypeScript
bitkey
PRO
1
69
こんなTypeScriptはいやだ! / I hate this kind of TypeScript!
bitkey
PRO
0
100
DevOpsDays Tokyo 2024 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略 / DevOpsDays Tokyo 2024 - Between Digital and Analog - Automated Testing Strategies to Support Smart Building Development.
bitkey
PRO
0
120
マルチプラットフォームを見据えるiOSのTCA設計|Designing iOS Apps with TCA for Multi-Platform Strategies
bitkey
PRO
2
120
Other Decks in Technology
See All in Technology
スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024
yoshikiiida
13
3.6k
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
150
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.7k
[2024最新版]AWS Control Towerを使ったセキュアなマルチアカウント環境の作り方
hiashisan
0
270
コンテナ・K8s研修 - 前半 コンテナ基礎・ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
「我々はどこに向かっているのか」を問い続けるための仕組みづくり / Establishing a System for Continuous Inquiry about where we are
daitasu
0
170
さらに高品質・高速化を目指すAI時代のテスト設計支援と、めざす先 / AI Test Lab vol.1
shift_evolve
0
190
RAGのサービスをリリースして1年3ヶ月が経ちました
segavvy
4
910
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
0
710
AOAI Dev Day - Opening Session
yoshidashingo
2
440
【基調講演】変える、今ここから ― IoTとAIで紡ぐ未来
soracom
PRO
0
320
テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待
shift_evolve
0
180
Featured
See All Featured
The Language of Interfaces
destraynor
151
23k
For a Future-Friendly Web
brad_frost
173
9.2k
WebSockets: Embracing the real-time Web
robhawkes
59
7.2k
How to train your dragon (web standard)
notwaldorf
79
5.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
17
1.5k
Building an army of robots
kneath
301
42k
How to name files
jennybc
67
96k
Testing 201, or: Great Expectations
jmmastey
33
6.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
248
12k
Six Lessons from altMBA
skipperchong
24
3.2k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
Typedesign – Prime Four
hannesfritz
37
2.2k
Transcript
3FBDU/BUJWF͔Β/BUJWFΞϓϦ dελʔτΞοϓاۀʹ͓͚Δ ʮػೳ։ൃͱอकੑ୲อʯͷཱ྆ͷઓd 4IPHP4BJUP
0VUMJOF 1. workhubʹ͍ͭͯ 2. ελʔτΞοϓʹ͓͚Δ ιϑτΣΞ։ൃʹٻΊΒΕΔͷ 3. ؇͔ͳNativeԽ 4. NativeԽʹΑΓ
ಘΒΕͨͷ / ͔ͬͨ͠
ࡈ౻ޛ 4IPHP4BJUP גࣜձࣾϫʔΫεΞϓϦέʔγϣϯζʹೖࣾ &$ύοέʔδͷ$.4ྖҬͷ։ൃͳͲΛ୲ ϏοτΩʔʹೖࣾ ϞόΠϧΞϓϦʮCJUMPDLʯͷ্ཱͪ͛ɾ࣮Λ୲ CJULFZQMBUGPSNνʔϜҟಈ إೝূٕज़Λར༻ͨ͠ΞϓϦέʔγϣϯ։ൃͳͲʹ
ܞΘΔ ϞόΠϧΞϓϦʮXPSLIVCʯͷ νʔϜϚωʔδϟʔͱͯ͠։ൃʹܞΘΔ
workhubʹ͍ͭͯ
1. workhubʹ͍ͭͯ
ελʔτΞοϓʹ͓͚Δ ιϑτΣΞ։ൃʹٻΊΒΕΔͷ
2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ 0→1Λ͢ΔͨΊͷεϐʔυײΛ࣋ͬͨػೳ։ൃ 1→10ʹ͢Δʹ͋ͨͬͯาΈΛࢭΊͳ͍ͨΊͷอकੑͷ୲อ
ʮอकੑʯʹ͍ͭͯ ෆ۩߹ΛຒΊࠐΈʹ͘͘͢ΔͨΊͷͷ ෆ۩߹ൃੜ࣌ͷӨڹൣғΛ͔Γ͘͢͢ΔͨΊͷͷ ɹকདྷʹΘͨͬͯ҆શͳػೳ։ൃΛ͘͢͢͠Δ ܧଓతʹ߈ΊΔɾվળ͢ΔͨΊʹඞཁͳͷ ˠ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
bitlockApp workhubApp 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
͜ͷΞϓϦͷอकੑΛܧଓతʹҡ࣋͢ΔʹͲ͏ͨ͠ΒΑ͍͔ʁ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
/BUJWFԽΛߟҊͨͭ͠ͷཧ༝ ɾiOSUpdateͷैੑͷ՝ײ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
/BUJWFԽΛߟҊͨͭ͠ͷཧ༝ ɾiOSUpdateͷैੑͷ՝ײ ɾۃྗϥΠϒϥϦʹґଘ͠ͳ͍ٕज़ར༻ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
/BUJWFԽΛߟҊͨͭ͠ͷཧ༝ ɾiOSUpdateͷैੑͷ՝ײ ɾۃྗϥΠϒϥϦʹґଘ͠ͳ͍ٕज़ར༻ ɾBuild࣌ؒͷ͞ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
/BUJWFԽΛߟҊͨͭ͠ͷཧ༝ ɾiOSUpdateͷैੑͷ՝ײ ɾۃྗϥΠϒϥϦʹґଘ͠ͳ͍ٕज़ར༻ ɾBuild࣌ؒͷ͞ ɾAndroidΞϓϦͷLaunchʹ࣌ؒత༛༧͕͋ͬͨ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
XPSLIVC"QQͷ/BUJWFԽʹ͍ͭͯ બࢶ2ͭ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
XPSLIVC"QQͷ/BUJWFԽʹ͍ͭͯ બࢶ2ͭ ɾϑϧNativeͰ1͔ΒผΞϓϦͱͯ͠࡞Γ͢ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
XPSLIVC"QQͷ/BUJWFԽʹ͍ͭͯ બࢶ2ͭ ɾϑϧNativeͰ1͔ΒผΞϓϦͱͯ͠࡞Γ͢ ɾطଘReact NativeΞϓϦΛঃʑʹNativeԽ͢Δ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
࣌ͷνʔϜڥʹ͍ͭͯ ɾ։ൃରworkhubAppͷΈ ɾ։ൃϝϯόʔ3໊ XPSLIVC"QQͷ/BUJWFԽʹ͍ͭͯ 2.ɹελʔτΞοϓʹ͓͚ΔιϑτΣΞ։ൃʹٻΊΒΕΔͷ
؇͔ͳNativeԽ
/BUJWFԽͷํ๏ U ػ ೳ ։ ൃ ͷ ݴ ޠ
ׂ ߹ React Native Swift 3.ɹ ؇͔ͳNativeԽ
/BUJWFԽͷํ๏ U ػ ೳ ։ ൃ ͷ ݴ ޠ
ׂ ߹ React Native Swift शಘظ 3.ɹ ؇͔ͳNativeԽ
/BUJWFԽͷํ๏ U ػ ೳ ։ ൃ ͷ ݴ ޠ
ׂ ߹ React Native Swift शಘظ शख़ظ 3.ɹ ؇͔ͳNativeԽ
/BUJWFԽͷํ๏ 1. ϏδωεϩδοΫΛSwiftʹدͤΔ 1. ػೳͷগͳ͍ը໘ը໘͝ͱSwiftUIʹϦϓϨΠε 1. ػೳ͕ෳࡶͳը໘ίϯϙʔωϯτ୯ҐͰ SwiftUIʹϦϓϨΠε 3.ɹ
؇͔ͳNativeԽ
+BWB4DSJQU 3FBDU/BUJWF #SJEHF #VTJOFTT -PHJD 3.ɹ ؇͔ͳNativeԽ
+BWB4DSJQU axios 3.ɹ ؇͔ͳNativeԽ
+BWB4DSJQU 3FBDU/BUJWF #SJEHF #VTJOFTT -PHJD axios Alamofire 3.ɹ ؇͔ͳNativeԽ
+BWB4DSJQU 3FBDU /BUJWF #SJEHF 3$57JFX .BOBHFS 4XJGU6*7JFX 3.ɹ ؇͔ͳNativeԽ
workhubApp workhubApp 3.ɹ ؇͔ͳNativeԽ
NativeԽʹΑΓ ಘΒΕͨͷ / ͔ͬͨ͠
؇͔ͳ/BUJWFԽΛ͢Δ͜ͱͰಘΒΕͨͷ ɾBLENFCɾإೝࣝͳͲͷػೳ܈ΛReact NativeͷϥΠϒϥϦʹ ҰཔΒ࣮ͣ ɾϥΠϒϥϦͷSwiftPackageManagerҠߦ: 4ׂ΄Ͳ → ͜ΕʹΑΓBuild࣌ؒΛ20΄Ͳ·ͰʹॖΊΔ͜ͱʹޭ 4.ɹ
NativeԽʹΑΓಘΒΕͨͷ
/BUJWFԽΛਐΊ্͍ͯ͘Ͱোͱͳͬͨͷ ɾϥΠϒϥϦҠߦʹ͍ͯճΔσάϨͷةݥੑ ɾSwiftUIಛ༗ͷUI࡞ͷ͠͞ෆ۩߹ͷରॲ ɾSwiftUIͷΈͰ࡞Γਏ͍UI 4.ɹ NativeԽʹ͓͍͔ͯͬͨ͠
࣌ܥྻͰͷৼΓฦΓ SwiftUI औΓࠐΈ։࢝ 4.ɹ NativeԽʹΑΓಘΒΕͨͷ Bridgeύλʔϯ ࢼߦظ NativeԽઓུ ࿅Γ࢝Ί
৽ن։ൃΛ SwiftUIʹҠߦ طଘViewͷSwiftUI ஔ Concurrency ରԠ
ϓϩμΫτͱνʔϜʹ߹ͬͨख๏Λ࿅Δ͜ͱͰ ػೳ։ൃͱอकੑ୲อͷཱ྆ୡՄೳ 4.ɹ ·ͱΊ
͓Βͤ ҰॹʹੈͷதΛม͑Δ ϞόΠϧΞϓϦΛ࡞Γ·͠ΐ͏ʂ