Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
React NativeからNativeアプリへ ~スタートアップ企業における 「機能開発と...
Search
株式会社ビットキー / Bitkey Inc.
PRO
September 11, 2022
Technology
2.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
React NativeからNativeアプリへ ~スタートアップ企業における 「機能開発と保守性担保」の両立への挑戦~
株式会社ビットキー / Bitkey Inc.
PRO
September 11, 2022
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
Flutter × BLE Centralを自前Pluginで実装する設計パターン - MethodChannel / EventChannelで作る双方向ブリッジの実践 / Building Custom Flutter BLE Central Plugins: Bidirectional Bridging with Method & Event Channels
bitkey
PRO
0
420
Swift&Xcodeのバージョンアップにまつわる怖かった思い出 / Scary Memories of Swift and Xcode Updates
bitkey
PRO
0
200
iOS/Androidの二刀流エンジニアがFlutter & TypeScriptへ越境後の現在地 - Flutterがメインになって見えた景色と現在の醍醐味 / Dual-Platform Mobile Engineer Shifts to Flutter & TypeScript - The View and Real Thrill of Going Flutter-First
bitkey
PRO
0
560
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
510
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
620
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
320
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
360
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
510
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
2
1.1k
Other Decks in Technology
See All in Technology
HHKBエバンジェリストになる方法
941
0
110
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
430
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.3k
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
460
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
150
CLIライブラリ開発を支える技術
htnabe
0
130
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
あるけみー式LTスライド作成術
alchemy1115
2
220
Railsのように考える: See through the Master
snoozer05
PRO
4
1.1k
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.1k
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
0
190
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Building an army of robots
kneath
307
46k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Typedesign – Prime Four
hannesfritz
42
3.2k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
WENDY [Excerpt]
tessaabrams
14
39k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.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.ɹ ·ͱΊ
͓Βͤ ҰॹʹੈͷதΛม͑Δ ϞόΠϧΞϓϦΛ࡞Γ·͠ΐ͏ʂ