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
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話 After Talk
Search
aoi
October 01, 2021
Technology
0
490
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話 After Talk
https://cookpad.connpass.com/event/222056/
aoi
October 01, 2021
Tweet
Share
More Decks by aoi
See All by aoi
モバイルアプリの行動ログの運用つらさ解消法 / mobile-log-troubleshooting
aomathwift
3
2.5k
ロック画面Widgetをサクッと実装してみた話
aomathwift
3
410
OS 固有の新機能をサービスに取り入れ活用していくための Tips
aomathwift
0
52
DocC Documentation Archiveをアプリ開発で活用してみよう / DocC Documentation Archive for iOS Application
aomathwift
0
580
即時通知を導入する際に考えるべきこと
aomathwift
0
4.5k
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話
aomathwift
1
9.8k
Other Decks in Technology
See All in Technology
20250325_Logic Apps / Power Automate の SharePoint コネクタの裏側を知る 〜Graph APIで直接操作してみよう〜
yutakaosada
0
110
Beyond {shiny}: The Future of Mobile Apps with R
colinfay
0
170
ゆるくVPC Latticeについてまとめてみたら、意外と奥深い件
masakiokuda
2
190
Road to SRE NEXT@仙台 IVRyの組織の形とSLO運用の現状
abnoumaru
1
450
7,000名規模の 人材サービス企業における プロダクト戦略・戦術と課題 / Product strategy, tactics and challenges for a 7,000-employee staffing company
techtekt
0
200
サーバシステムを無理なくコンテナ移行する際に伝えたい4つのポイント/Container_Happy_Migration_Method
ozawa
1
120
アプリケーション固有の「ロジックの脆弱性」を防ぐ開発者のためのセキュリティ観点
flatt_security
39
15k
Proxmox VE超入門 〜 無料で作れるご自宅仮想化プラットフォームブックマークする
devops_vtj
0
240
.mdc駆動ナレッジマネジメント/.mdc-driven knowledge management
yodakeisuke
6
1.3k
GitHub MCP Serverを使って Pull Requestを作る、レビューする
hiyokose
2
560
ペアーズにおけるData Catalog導入の取り組み
hisamouna
0
250
デザインシステムのレガシーコンポーネントを刷新した話/Design System Legacy Renewal
kaonavi
0
130
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
33
6.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Typedesign – Prime Four
hannesfritz
41
2.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
7
630
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
25k
GraphQLとの向き合い方2022年版
quramy
45
14k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
A better future with KSS
kneath
239
17k
How to train your dragon (web standard)
notwaldorf
91
5.9k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Transcript
After Party iOSDC JAPAN 2021 ػೳ͝ͱʹಈ࡞͢ΔϛχΞϓϦͰಈ࡞֬ೝΛരʹͨ͠ɹొஃޙஊ 2021/10/01 Cookpad.Inc @aoi
ࣗݾհ • aoi @aomathwift • Cookpad Inc. iOS App Developer
• CookpadMart
ηογϣϯΛݟ͍͍ͯͨͩͨօ͞Μ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
Agenda • ηογϣϯͷ֓ཁ • Discord, TwitterͰͷ Q&A ৼΓฦΓ
ηογϣϯͷ֓ཁ
ΫοΫύουΞϓϦ • ։ൃن͕େ͖͍ • Ϗϧυ࣌ؒͷ͕͞՝ → ϑϧϏϧυΛΊ͍ͨ
CookpadCore Cookpad ɾɾɾ Cookpad Tsukuru Feature A Feature B Feature
C 🔥 ػೳ୯ମͰϏϧυՄೳͳϚϧνϞδϡʔϧߏΛಋೖ
Feature Module • υϝΠϯΛڞ༗Ͱ͖Δ୯ҐͰྨ͢Δ • Ϟδϡʔϧ୯ମͰ 1 ͭͷػೳʹඞཁͳ࣮͕݁͢Δ → Ϟδϡʔϧ୯ମͰϏϧυ͕Մೳ
https://fortee.jp/iosdc-japan-2021/proposal/1b05a1c0-91ef-401a-b3f3-36f0e57a6a25
CookpadCore Feature A Feature A Sandbox FeatureModule Aͱ CoreͷΈΛϏϧυ FeatureModule
A ͷ ػೳͷΈΛͭΞϓϦ έʔγϣϯλʔήοτ
None
Sandbox ΞϓϦͷ࣮ͷಛ • ଞͷ Feature Module ʹґଘ͠ͳ͍ • ωοτϫʔΫϦΫΤετͳͲͷ෭࡞༻Environment ͱ͍͏
DI ίϯςφΛ༻͍ͯμϛʔͷ࣮Λೖ
Transition Environment Network CookpadEnvironment StubbableEnvironment Logger Cookpad Sandbox Test
Sandbox ΞϓϦͷϝϦοτ • Ϗϧυ͕͍ • ֬ೝ͍ͨ͠ը໘ʹ͙ͨ͢ͲΓண͚Δ • ༷ʑͳঢ়ଶΛ࠶ݱͰ͖Δ
Discord / Twitter Ͱͷ Q&A ৼΓฦΓ
ϛχΞϓϦ QA ͳͲʹ͏ʁ • جຊΤϯδχΞ͕ಈ࡞֬ೝʹ͏తͷΈ • QAଓςετΛ݉ͶΔͷͰΞϓϦΛ͏͔ͯ͝͠Β͏ • σβΠφʔ͕ศརʙͬͯݴͬͯͬͯͨ͜ͱ͠͠
ϛχΞϓϦ QA ͳͲʹ͏ʁ • μϛʔϦΫΤετΛΘͳ͚ΕQA࣮ػςετͰͷར༻ ͋Γ͔ʁ • ࢀߟʹ͍ͨ͠ ϥϯλΠϜσόοάͷεεϝ
ϛχΞϓϦඋ୭͕ͬͯΔʁ • Έ࡞Γج൫νʔϜͷϝϯόʔ͕ͬͯΔ ‣ ࣗಈੜεΫϦϓτͷ༻ҙ ‣ μϛʔ࣮ͷඋɹetc… • SandboxScene ͷ࣮ར༻֤ػೳͷ։ൃνʔϜ͕Δ
࣮ࡍͲΕ͘Β͍ޮԽ͞Ε͔͔ͨΔʁ • ϑϧϏϧυʹ͔͔Δ࣌ؒܭଌ͠ଓ͚͖͕ͯͨɺSandbox λʔήοτͰ ͷσʔλܭଌͯ͠ͳ͔ͬͨ😢 • ࠓޙҎԼͷΛܭଌ͍͠1ճ͋ͨΓͷϏϧυ͕࣌ؒݮগ͍ͯ͠Δ͜ͱ Λఆྔతʹݟ͍ͨ ‣ શͯͷϏϧυʹ͓͚ΔϏϧυ࣌ؒ
‣ શϏϧυ࣮ߦճͷ͏ͪ Sandbox Ͱ࣮ߦͨ͠ճͷׂ߹
SwiftUI ͱͷڞଘͲ͏ͯ͠Δʁ • Sandbox ͷΈࣗମ UIKit Ͱͷ࣮Λલఏʹ࡞ΒΕ͍ͯΔ • View ͕
SwiftUI Ͱ࣮͞Ε͍ͯΔ Scene UIHostingController Ͱϥοϓͯ͠ಉ͍͡ํΛ͍ͯ͠Δ
XcodePreviews ར༻ͯ͠Δʁ • Cookpad ΞϓϦશମͰ ࠷ۙ·Ͱ Xcode Previews ͕͑ͳ͔ͬͨ ☠
• Sandbox Target Ͱ Preview Λ࣮ߦ͢Δͱ͑Δ • UIKit Ͱ࣮͞ΕͨίϯϙʔωϯτΛϓϨϏϡʔ͢ΔͨΊͷΈΛ༻ ҙ • SwiftUI ͷը໘͕૿͑ΕҠߦݕ౼
https://engineering.mercari.com/blog/entry/2019-12-13-155700/
XcodePreviews ར༻ͯ͠Δʁ • ϙοϓΞοϓը໘ͳͲΛ֬ೝ͢ΔͨΊͷϛχΞϓϦΛ SwiftUI Ͱ༻ҙʢUICatalogʣ
None
Sandbox ͍ࣺͯલఏʁ • ίϛοτͯ͠ϝϯςΛ͍ͯ͘͠લఏ • ࠷ݶͷίʔυͷ҆ఆੑΛ୲อ͢ΔͨΊʹPRͷʹϏϧυ͕௨ Δ͜ͱΛνΣοΫ͍ͯ͠Δ
None
ϛχΞϓϦΛࣾʹͲ͏ͬͯਪਐ͍ͯ͠ ͘ʁ • ػೳ։ൃऀʢར༻ऀʣ͚ʹϛχΞϓϦͷϝϦοτΛଧͪग़͢ • ·͙ͣͬͯ͘͢Εͦ͏ͳਓʹചΓࠐΜͰΈΔ • https://fortee.jp/iosdc-japan-2021/proposal/1b05a1c0-91ef- 401a-b3f3-36f0e57a6a25 Ͱղઆ͞Εͯ·͢
None
ΞΧϯτػೳͲ͏ఏڙͯ͠Δʁ • ը໘͝ͱʹݻఆΛฦ͢ • ͦͷଞͷঢ়ଶجຊతʹ࠷ॳ͔ΒݻఆΛࢦఆ͠ɺ֬ೝ͍ͨ͠ ঢ়ଶ͝ͱʹը໘Λ༻ҙ͢Δ
ΞΧϯτػೳͲ͏ఏڙͯ͠Δʁ • ঢ়ଶ͕ଟ͍߹ઃఆը໘ͰΛϥϯλΠϜͰมߋͰ͖ΔΑ͏ ʹ͢Δͷ͕Φεεϝ
None
Sandbox࠲ஊձؾʹͳΔ • ΈΛඋ͢Δج൫νʔϜ͕ Sandbox ʹؔ͢Δ։ൃνʔϜ ଆͷҙݟΛऔΓೖΕվળ͢ΔͨΊʹ࣮ࢪ • ࣄલʹࡶʹεϓϨουγʔτʹҙݟΛॻ͍ͯΒͬͯɺͦΕΛ ΈΜͳͰݟͳ͕ΒΘ͍Θ͍ஊٛ͢Δ
ࢀߟࢿྉ • https://speakerdeck.com/aomathwift/ji-neng-gotonidong-zuo- suruminiapuridepurebiyusaikuruwobao-su-nisitahua • େنͳΞϓϦͷϚϧνϞδϡʔϧߏͷ࣮ફ https:// speakerdeck.com/giginet/da-gui-mo- naapurifalsemarutimoziyurugou-cheng-falseshi-jian •
ϥϯλΠϜσόοάͷεεϝ https://speakerdeck.com/noppefoxwolf/ iosdc21
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠