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
340
0
Share
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun
March 18, 2026
More Decks by ojun
See All by ojun
アセットのコンパイルについて
ojun9
0
200
Exit 8 for SwiftUI
ojun9
1
270
Swift Evolution かるた
ojun9
2
130
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
4
990
Catch Up with Swift 5.10
ojun9
2
900
Overview: Swift OpenAPI Generator
ojun9
3
2.5k
if 式と switch 式による SwiftUI のプレビューエラー対策
ojun9
1
2.2k
楽しい夏休み!String Catalogs で新しい発見
ojun9
0
2.5k
ユニットテストを学んだ次に知りたかったApple標準APIに対するテストのやり方
ojun9
1
480
Other Decks in Programming
See All in Programming
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
270
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
190
20260315 AWSなんもわからん🥲
chiilog
2
180
「速くなった気がする」をデータで疑う
senleaf24
0
130
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
120
AI活用のコスパを最大化する方法
ochtum
0
370
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
770
へんな働き方
yusukebe
6
2.9k
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4.2k
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
160
安いハードウェアでVulkan
fadis
1
870
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
120
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
The Curse of the Amulet
leimatthew05
1
11k
Facilitating Awesome Meetings
lara
57
6.8k
Ruling the World: When Life Gets Gamed
codingconduct
0
190
Information Architects: The Missing Link in Design Systems
soysaucechin
0
860
GitHub's CSS Performance
jonrohan
1032
470k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
390
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Paper Plane
katiecoart
PRO
1
49k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Building an army of robots
kneath
306
46k
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 ʹ͓͚Δը໘ͷࠩΛೝ͠ Ϛʔδ·ͰͷϦʔυλΠϜΛݮΒ͢͜ͱ͕Ͱ͖Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ