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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ojun
March 18, 2026
Programming
350
0
Share
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun
March 18, 2026
More Decks by ojun
See All by ojun
配列と所有権
ojun9
0
50
アセットのコンパイルについて
ojun9
0
220
Exit 8 for SwiftUI
ojun9
1
280
Swift Evolution かるた
ojun9
2
140
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
4
1k
Catch Up with Swift 5.10
ojun9
2
900
Overview: Swift OpenAPI Generator
ojun9
3
2.6k
if 式と switch 式による SwiftUI のプレビューエラー対策
ojun9
1
2.2k
楽しい夏休み!String Catalogs で新しい発見
ojun9
0
2.5k
Other Decks in Programming
See All in Programming
Programming with a DJ Controller — not vibe coding
m_seki
3
110
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
830
의존성 주입과 모듈화
fornewid
0
150
CDK Deployのための ”反響定位”
watany
4
790
NakouPAY説明用
annouim0
0
240
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
250
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
120
ハーネスエンジニアリングとは?
kinopeee
11
5.6k
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
230
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
110
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
380
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
150
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
Bash Introduction
62gerente
615
210k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
510
Color Theory Basics | Prateek | Gurzu
gurzu
0
290
Google's AI Overviews - The New Search
badams
0
980
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
150
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
Between Models and Reality
mayunak
3
270
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 ʹ͓͚Δը໘ͷࠩΛೝ͠ Ϛʔδ·ͰͷϦʔυλΠϜΛݮΒ͢͜ͱ͕Ͱ͖Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ