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
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ojun
March 18, 2026
Programming
0
110
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun
March 18, 2026
Tweet
Share
More Decks by ojun
See All by ojun
アセットのコンパイルについて
ojun9
0
190
Exit 8 for SwiftUI
ojun9
1
260
Swift Evolution かるた
ojun9
2
130
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
4
980
Catch Up with Swift 5.10
ojun9
2
890
Overview: Swift OpenAPI Generator
ojun9
3
2.5k
if 式と switch 式による SwiftUI のプレビューエラー対策
ojun9
1
2.1k
楽しい夏休み!String Catalogs で新しい発見
ojun9
0
2.5k
ユニットテストを学んだ次に知りたかったApple標準APIに対するテストのやり方
ojun9
1
470
Other Decks in Programming
See All in Programming
Claude Codeログ基盤の構築
giginet
PRO
7
3.3k
Codex の「自走力」を高める
yorifuji
0
1.2k
AI 開発合宿を通して得た学び
niftycorp
PRO
0
120
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
550
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
320
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
290
CSC307 Lecture 15
javiergs
PRO
0
250
Ruby x Terminal
a_matsuda
7
600
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
180
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
220
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
200
Featured
See All Featured
The Curse of the Amulet
leimatthew05
1
10k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
We Are The Robots
honzajavorek
0
200
A better future with KSS
kneath
240
18k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
200
Accessibility Awareness
sabderemane
0
81
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
87
Paper Plane (Part 1)
katiecoart
PRO
0
5.6k
Technical Leadership for Architectural Decision Making
baasie
3
290
What does AI have to do with Human Rights?
axbom
PRO
1
2k
KATA
mclloyd
PRO
35
15k
Transcript
2026/03/18 @גࣜձࣾελϝϯ ੜ AI ࣌ͷεφοϓγϣοτςετ ͬͯͭΛݟͤͯ͋͛·͢Αʢα൛ʣ ojun ू·ΕSwift͖ʂSwiftѪձ vol.98
ࣗݾհ • Name: ojun • X: @ojun_9 • Company: DeNA
• Role: iOS ΞϓϦΤϯδχΞ
એ
Sakura.swift ΛΓ·͢ʂ try! Swift ͷલʹ Sakura.swift ΛΓ·͢ ͓ன͔ΒՖݟΛͯ͠ɺʹ͓ళΛ ିͬͯ͠͝൧Λ৯ͳ͕ΒLTΛ ΈΔ༧ఆͰ͢
Sakura.swift ΛΓ·͢ʂ LT ֤ਓ͕ਓੜʹ͍ͭͯޠͬͯ͘ΕΔ༧ఆͰ͢ ັྗతͳਓ͕ू·͍ͬͯΔͷͰɺͥͻ ͝ࢀՃ͍ͩ͘͞ʂ ͋ͱ 3 ۭ͍ͯ·͢ʂʂ
ൃදͷMotivation
ൃදͷMotivation ੜ AI ͍͢͜͝ͱʹͳͬͯ·͢ΑͶ ੜ࢈ੑ্͕͕ͬͨɾίʔυ͏ॻ͍ͯͳ͍ɾetc etc AI ͕มߋͨ͠ίʔυ͕ UI ͱͯ͠ͲͷΑ͏ʹมΘ͍ͬͯΔ͔Λ
αΫοͱΓ͍ͨ
ൃදͷMotivation ੜ AI ͍͢͜͝ͱʹͳͬͯ·͢ΑͶ ੜ࢈ੑ্͕͕ͬͨɾίʔυ͏ॻ͍ͯͳ͍ɾetc etc AI ͕มߋͨ͠ίʔυ͕ UI ͱͯ͠ͲͷΑ͏ʹมΘ͍ͬͯΔ͔Λ
αΫοͱΓ͍ͨ → εφοϓγϣοτͰղܾ͢Δ
ࠓ͢͜ͱ
ࠓ͢͜ͱ 1. Γ͍ͨ͜ͱεφοϓγϣοτʮςετʯͰͳ͍ 2. εφοϓγϣοτςετʹ͍ͭͯ 3. Swift 6.2 ͷ৽ػೳʹΛ͚ͭΔ 4.
ணΛಘ࣮ͯ͢Δ
Γ͍ͨ͜ͱεφοϓγϣοτ ʮςετʯͰͳ͍
Γ͍ͨ͜ͱεφοϓγϣοτʮςετʯͰͳ͍ AI ͕มߋͨ͠ίʔυ͕ UI ͱͯ͠ͲͷΑ͏ʹมΘ͍ͬͯΔ͔Λ αΫοͱΓ͍ͨ PR Λ Approve ͯ͠Ϛʔδ͢ΔͨΊͷϦʔυλΠϜɺͳ͍͠ɺίετΛ
ݮΒ͍ͨ͠
Γ͍ͨ͜ͱεφοϓγϣοτʮςετʯͰͳ͍ AI ͕มߋͨ͠ίʔυ͕ UI ͱͯ͠ͲͷΑ͏ʹมΘ͍ͬͯΔ͔Λ αΫοͱΓ͍ͨ PR Λ Approve ͯ͠Ϛʔδ͢ΔͨΊͷϦʔυλΠϜɺͳ͍͠ɺίετΛ
ݮΒ͍ͨ͠ ↓ ը૾Λൺֱͯ͠ test Λམͱ͢ͱ͔Βͳ͍
εφοϓγϣοτςετʹ͍ͭͯ
εφοϓγϣοτςετʹ͍ͭͯ εφοϓγϣοτςετΛಋೖ͍ͯ͠ΔਓͲΕ͘Β͍͍·͔͢ʁ🙋
εφοϓγϣοτςετʹ͍ͭͯ εφοϓγϣοτςετΛಋೖ͍ͯ͠ΔਓͲΕ͘Β͍͍·͔͢ʁ🙋 ಋೖ͠Α͏ͱͨ͠ OR ڵຯ͕͋ΔਓͲΕ͘Β͍͍·͔͢ʁ🙋
εφοϓγϣοτςετͷ͠͞ ίϯϙʔωϯτ͕Ճɾআ͞ΕΔͨͼʹςετέʔεΛ मਖ਼͢Δඞཁ͕͋Δ
εφοϓγϣοτςετͷ͠͞ ίϯϙʔωϯτ͕Ճɾআ͞ΕΔͨͼʹςετέʔεΛ मਖ਼͢Δඞཁ͕͋Δ ↓ ͜Ε͕͔ͳΓͷᐫʹͳ͍ͬͯΔ
Swift 6.2 ͷ৽ػೳ
Swift 6.2 ͷ৽ػೳ Swift 6.2 ʢswift-testingଆʣʹ Attachment ͱ͍͏ػೳ͕Ճ͞Εͨ test ʹରͯ͠
String ͕ Image fi le ͳͲΛϨίʔυͰ͖Δ
Swift 6.2 ͷ৽ػೳ Swift 6.2 ʢswift-testingଆʣʹ Attachment ͱ͍͏ػೳ͕Ճ͞Εͨ
Swift 6.2 ͷ৽ػೳ Attachements ͱ͍͏υΩϡϝϯτ͕ Apple ͔Βग़ͯͯඇৗʹ༗༻
Swift 6.2 ͷ৽ػೳ ViewΛੜͯͦ͠ͷ݁ՌΛ record ͢Δ͜ͱ͕Մೳʹͳͬͨ
Preview ͱͷѱຐ߹ମ
Preview ͱͷѱຐ߹ମ ViewΛ݁ՌΛϨίʔυͰ͖ΔΑ͏ʹͳͬͨͱ͍͑ ίϯϙʔωϯτΛՃ͢Δͨͼʹɺςετέʔε͕ແݶʹ૿͑Δ
Preview ͱͷѱຐ߹ମ ͦͷ࣌ʹʹ͍ͭͨͷ͕ɺPreview ϚΫϩ
Preview ͱͷѱຐ߹ମ
Preview ͱͷѱຐ߹ମ
Preview ͱͷѱຐ߹ମ
Preview ͱͷѱຐ߹ମ ͱ͍͏͜ͱɺΞϓϦதͷPreviewͷΛશͯूΊͯ Testଆʹͤ1ͭͷςετϝιου͚ͩͰϨίʔυ͕Ͱ͖ΔͷͰ💡
Preview ͱͷѱຐ߹ମ SwiftSyntax Λؤுͬͯॻ͍ͯ Preview ͷதΛࣗಈͰऩू ͢Δ࣮ΛՃ
Preview ͱͷѱຐ߹ମ CILͱ࣮ͯ͠ߦ͢Δ͜ͱͰ ςετ࣌ʹ Preview ͔ΒूΊͨ શͯͷ View ΛࣗಈͰੜ͢Δ Ͱ͖ͨ
Preview ͱͷѱຐ߹ମ ͋ͱ test ϝιουͷதͰ for ͰϨίʔυॲཧΛճͯ͠ ্͛Εશͯͷ View ͷ
ϨίʔυΛอଘͰ͖Δ
CI Λۦͯࠩ͠ΛPRʹషΔ
CI Λۦͯࠩ͠ΛPRʹషΔ Base Branch ͱ Target Branch ͷ྆ํͰςετΛ·Θ͢ ↓ ͦΕͧΕͰը૾͕औಘͰ͖ΔͷͰɺը૾ͷൺֱΛߦ͏
↓ ͕ࠩ͋Εɺͦͷ݁ՌΛ PR ʹίϝϯτͰషΓ͚Δ
ςετΛ·Θ͢ ୯७ʹςετΛ·Θ͢ͱɺϨίʔυ༻ͷςετҎ֎ͷςετ ճͬͯ͠·͍ޮ͕ѱ͍
ςετΛ·Θ͢ ୯७ʹςετΛ·Θ͢ͱɺϨίʔυ༻ͷςετҎ֎ͷςετ ճͬͯ͠·͍ޮ͕ѱ͍ ͦ͜ͰҎԼͷίϚϯυΛར༻ͯ͠ɺಛఆͷςετϝιου͚ͩΛ࣮ߦ͢Δ
ςετΛ·Θ͢ ͪͳΈʹϨίʔυ࠷ऴతʹੜ͞ΕΔ xcresult ͷԞఈʹຒଂ͞ΕΔ
ςετΛ·Θ͢ ͪͳΈʹϨίʔυ࠷ऴతʹੜ͞ΕΔ xcresult ͷԞఈʹຒଂ͞ΕΔ ͳͷͰҎԼͷΑ͏ʹͯ͠Ϩίʔυͨ͠ใΛ۷Γग़͢ඞཁ͕͋Δ
ςετΛ·Θ͢ ͜ΕʹΑͬͯ baseBranch ͱ targetBranch ͦΕͧΕͰϨίʔυͨ͠ View ͷը૾͕खʹೖΔ
ςετΛ·Θ͢ .xcresult ͷΞΠίϯՄѪ͍ ͜ͷϑΝΠϧ Xcode Ͱ։͚Δ͕ ݟΕΔใ͕গͳ͍ͷ͕ Ͱ͖ΕࣗͰܗͯ͋͛͠Δͷ͕ ྑͦ͞͏
ը૾Λൺֱ͢Δ ͋ͱը૾Λൺֱ͢ΕOK
ը૾Λൺֱ͢Δ ͋ͱը૾Λൺֱ͢ΕOK ͪΖΜ Swift Ͱ࣮
ը૾Λൺֱ͢Δ ൺֱͨ͠ը૾৽͘͠ϒϥϯνΛ࡞ͬͯͦ͜ʹରͯ͠Ξοϓ͢Δ ↓ ͦ͏͠ͳ͍ͱɺPR ্ͷίϝϯτͰϏδϡΞϧͰݟΕͳ͘ͳΔ
ը૾Λൺֱ͢Δ ࣮ߦ͢Δ͜ͱͰࠩΛPRʹ ରͯ͠షͬͯ͘ΕΔ
ը૾Λൺֱ͢Δ ࣮ߦ͢Δ͜ͱͰࠩΛPRʹ ରͯ͠షͬͯ͘ΕΔ ↓ ֬ೝ͕Ͱ͖ΔͷͰϚʔδ·Ͱͷ ϦʔυλΠϜ͕͘ͳΔ
·ͱΊ Swift 6.2 ͔Βར༻Ͱ͖Δ attachment ͷΈ & PreviewMacro & SwiftSnytax
Λ߹ମͤ͞Δ͜ͱͰશͯͷ View ͷը૾ΛऔΔ͜ͱ͕Ͱ͖Δ ͦΕΛ CI ͱΈ߹ΘͤΔ͜ͱʹΑΓɺPR ʹ͓͚Δը໘ͷࠩΛೝ͠ Ϛʔδ·ͰͷϦʔυλΠϜΛݮΒ͢͜ͱ͕Ͱ͖Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ