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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
aoi
October 01, 2021
Technology
0
540
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話 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.7k
ロック画面Widgetをサクッと実装してみた話
aomathwift
3
450
OS 固有の新機能をサービスに取り入れ活用していくための Tips
aomathwift
0
66
DocC Documentation Archiveをアプリ開発で活用してみよう / DocC Documentation Archive for iOS Application
aomathwift
0
650
即時通知を導入する際に考えるべきこと
aomathwift
0
5.7k
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話
aomathwift
1
11k
Other Decks in Technology
See All in Technology
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
180
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
180
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
530
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.2k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
190
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.4k
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
370
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Cosmos World Foundation Model Platform for Physical AI
takmin
0
770
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
It's Worth the Effort
3n
188
29k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
250
How to Talk to Developers About Accessibility
jct
2
130
For a Future-Friendly Web
brad_frost
182
10k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
How to make the Groovebox
asonas
2
1.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Abbi's Birthday
coloredviolet
1
4.7k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
320
Ruling the World: When Life Gets Gamed
codingconduct
0
140
Build your cross-platform service in a week with App Engine
jlugia
234
18k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠