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
530
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話 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
640
即時通知を導入する際に考えるべきこと
aomathwift
0
5.6k
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話
aomathwift
1
11k
Other Decks in Technology
See All in Technology
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
910
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
11
5.5k
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.5k
ALB「証明書上限問題」からの脱却
nishiokashinji
0
210
GitHub Copilot CLI 現状確認会議
torumakabe
6
1.4k
みんなでAI上手ピーポーになろう! / Let’s All Get AI-Savvy!
kaminashi
0
150
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
【Oracle Cloud ウェビナー】ランサムウェアが突く「侵入の隙」とバックアップの「死角」 ~ 過去の教訓に学ぶ — 侵入前提の防御とデータ保護 ~
oracle4engineer
PRO
0
130
国井さんにPurview の話を聞く会
sophiakunii
1
410
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
550
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
22k
20260114_データ横丁 新年LT大会:2026年の抱負
taromatsui_cccmkhd
0
300
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
790
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
150
We Have a Design System, Now What?
morganepeng
54
8k
The SEO identity crisis: Don't let AI make you average
varn
0
51
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
100
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
880
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.5k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Done Done
chrislema
186
16k
Utilizing Notion as your number one productivity tool
mfonobong
2
200
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠