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
再現ができない?特定ができない?ZOZOTOWNアプリのトップクラッシュに立ち向かった話 /d...
Search
chichilam86
September 18, 2021
Technology
3.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
再現ができない?特定ができない?ZOZOTOWNアプリのトップクラッシュに立ち向かった話 /dealing with top crash of zozotown app
chichilam86
September 18, 2021
More Decks by chichilam86
See All by chichilam86
ZOZOTOWNアプリにスナップショットテストを導入してみました
kochirin
0
2k
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.6k
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
280
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
260
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.3k
Azure Cost Management の FOCUS コストデータを迷わず読むための“3つの軸”
tetsuyaooooo
0
150
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
4
1.6k
enechainの内製セルフサービスプラットフォーム
hiyosi
0
130
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
120
Tab5をRubyで動くパソコンにする
kishima
2
250
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
270
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
150
【Oracle AI Spotlight ウェビナー】AWSか、Azureか、Google Cloudか。その議論にオラクルを含める意義。
oracle4engineer
PRO
2
240
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
Designing for humans not robots
tammielis
254
26k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Practical Orchestrator
shlominoach
191
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
510
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
࠶ݱ͕Ͱ͖ͳ͍ʁಛఆ͕Ͱ͖ͳ͍ʁZOZOTOWN ΞϓϦͷτοϓΫϥογϡʹཱ͔ͪͬͨ גࣜձࣾZOZOςΫϊϩδʔζ ZOZOTOWNຊ෦ɹZOZOΞϓϦ෦ ྛ ߒஐ Copyright © ZOZO Technologies,
Inc. iOSDC Japan 2021 2021/09/18 16:35ʙ Track A
© ZOZO Technologies, Inc. גࣜձࣾZOZOςΫϊϩδʔζ ZOZOTOWNຊ෦ɹZOZOΞϓϦ෦ ྛ ߒஐ(@chichilam86) • தࠃग़
• 2019/4 ZOZOςΫϊϩδʔζʹೖࣾ • ZOZOTOWN iOSΞϓϦͷ։ൃΛ୲͍ͯ͠·͢ 2
© ZOZO Technologies, Inc. 3 ͡Ίʹ ࠶ݱ͕Ͱ͖ͳ͍ʁಛఆ͕Ͱ͖ͳ͍ʁZOZOTOWN ΞϓϦͷτοϓΫϥογϡʹཱ͔ͪͬͨ
© ZOZO Technologies, Inc. 4 ̍̌ͿΓͷϦχϡʔΞϧ
© ZOZO Technologies, Inc. 5 ϦχϡʔΞϧ ։ൃظ 2"ϲ݄ ؍ଌ ZOZOTOWN
7.0.0 UIͷ৽ ZOZO GLASS طଘը໘ͷ৽ػೳՃ ϦϑΝΫλϦϯά etc.
© ZOZO Technologies, Inc. 6 Ϋϥογϡݕ
© ZOZO Technologies, Inc. 7 Ϋϥογϡݕ WARNING
© ZOZO Technologies, Inc. 8 Ϋϥογϡݕ ͦͷΫϥογϡ͕τοϓΫϥογϡͱͯ͠ ʹઍ݅ൃੜ
© ZOZO Technologies, Inc. 9 Ϋϥογϡݕ Ϋϥογϡϩά UIViewͷextension
© ZOZO Technologies, Inc. 10 extension UIView { func capture()
-> UIImage? { UIGraphicsBeginImageContextWithOptions(bounds.size, false, 0) var image: UIImage? if let context = UIGraphicsGetCurrentContext() { layer.render(in: context) image = UIGraphicsGetImageFromCurrentImageContext() } UIGraphicsEndImageContext() return image } } ϏϡʔશମΛը૾ͱͯ͠ ॻ͖ग़͢ Ϋϥογϡݕ
© ZOZO Technologies, Inc. 11 Ϋϥογϡݕ
© ZOZO Technologies, Inc. ৄࡉը໘ 12 UIViewControllerAnimatedTransitioning UIView.captureͰ ը૾ʹग़ྗ UIView.captureͰ
ը૾ʹग़ྗ Ϋϥογϡݕ Ϧετը໘ Ϧετը໘ ͷίϐʔ ৄࡉը໘ ͷίϐʔ
© ZOZO Technologies, Inc. 13 ࣮ੲ͔ΒରԠʹྀ͍ۤͯͨ͠Ϋϥογϡ Ϋϥογϡݕ τοϓͰͳ͍
© ZOZO Technologies, Inc. 14 😇ϦχϡʔΞϧΛܴ͑ͨ Ϋϥογϡݕ w ࠶ݱ͕Ͱ͖ͳ͍ w
ಛఆ͕Ͱ͖ͳ͍ 2"νʔϜͰௐࠪɾݕূΛߦͳ͕ͬͨ࠶ݱ͕Ͱ͖ͳ͔ͬͨ ઃܭվળͷ༨͕͋Δ͕ɺΫϥογϡͷͷݪҼͰͳ͍ ࣮ੲ͔ΒରԠʹྀ͍ۤͯͨ͠Ϋϥογϡ τοϓͰͳ͍
© ZOZO Technologies, Inc. 15 Ϋϥογϡղੳ
© ZOZO Technologies, Inc. 16 Ϋϥογϡղੳ ͳͥࠓ͞Βൃੜ͕݅૿͑ͨͷ͔🧐
© ZOZO Technologies, Inc. ͳͥࠓ͞Βൃੜ͕݅૿͑ͨͷ͔🧐 17 Ϋϥογϡղੳ 📩ʮ͍ଓ͚ΔͱΞϓϦ͕མͪΔʯͱ͍͏ϑΟʔυόοΫ ͓٬༷ͷҙݟ Hint
© ZOZO Technologies, Inc. 18 Ϋϥογϡղੳ 📩ʮ͍ଓ͚ΔͱΞϓϦ͕མͪΔʯͱ͍͏ϑΟʔυόοΫ ͓٬༷ͷҙݟ ͑͏΄Ͳ ϝϞϦ͕ੵ͍ͯ͘͠
📈ϗʔϜը໘͕̏ͭʹͳͬͯදࣔ͢Δίϯςϯπ͕૿͑ͨ 📈֤ϦετϖʔδҎલΑΓཁૉ͕૿͑ͨ 📈ৄࡉϖʔδϦονʹͳͬͨ ϦχϡʔΞϧʹΑΔมߋ ϝϞϦͷফඅ্͕͕Δ ͳͥࠓ͞Βൃੜ͕݅૿͑ͨͷ͔🧐
© ZOZO Technologies, Inc. ΞϓϦ͕ՔಇதͷશͯͷϝϞϦه 19 Ϋϥογϡղੳ
© ZOZO Technologies, Inc. 20 Ϋϥογϡղੳ ̍ճͷભҠͰҰཡϖʔδͱৄࡉϖʔδΛ߹Θͤͯ20Mbʂͷը૾ϝϞϦ
© ZOZO Technologies, Inc. 21 …. 5JNF .FNPSZ Ϋϥογϡ ྦྷੵϝϞϦ
εΫϦʔϯγϣοτͷҰ࣌ϝϞϦ Ϋϥογϡղੳ Ϧετ ৄࡉ Ϧετ ৄࡉ Ϧετ ৄࡉ
© ZOZO Technologies, Inc. 22 ղܾʹ͚ͯ
© ZOZO Technologies, Inc. ৄࡉը໘ 23 UIViewControllerAnimatedTransitioning UIView.captureͰ ը૾ʹग़ྗ UIView.captureͰ
ը૾ʹग़ྗ Ϋϥογϡݕ Ϧετը໘ Ϧετը໘ ͷίϐʔ ৄࡉը໘ ͷίϐʔ
© ZOZO Technologies, Inc. ৄࡉը໘ 24 UIViewControllerAnimatedTransitioning Ϋϥογϡݕ Ϧετը໘ ৄࡉը໘ࣗମͷಁ໌
ௐ
© ZOZO Technologies, Inc. ղܾʹ͚ͯ 25 ΞϓϦ͕ՔಇதͷશͯͷϝϞϦه 👍20Mbͷը૾ϝϞϦ͕ͳ͘ͳΓϝϞϦফඅ͕ΏΔ͔ʹ
© ZOZO Technologies, Inc. ղܾʹ͚ͯ 26 w 6*7JFXDBQUVSFͷΫϥογϡ͕ݮগ w શମతʹͦͷमਖ਼ʹΑΔ৽نΫϥογϡͳ͍
✅Bug Fixed
© ZOZO Technologies, Inc. ·ͱΊ 27 Ϋϥογϡ։ൃதʹؾ͕͚ͭͳ͍͜ͱ͕ଟ͍ ϦϦʔεޙͷ؍ଌ͕ॏཁʹͳΔ 📝ಛఆͷ͔݅͠ൃੜ͠ͳ͍Ϋϥογϡ͕͋Δ
© ZOZO Technologies, Inc. ·ͱΊ 28 Ϋϥογϡ͕࠶ݱɾಛఆͰ͖ͳ͍߹ɺ શମΛ၆ᛌͯ͠ԾઆΛཱͯͯΈ·͠ΐ͏ 🔍ϝϞϦͷফඅɺ௨৴ঢ়گɺϓογϡ͔ΒͷىಈͳͲ 📩͓٬༷ͷҙݟ͕)JOUʂόάΛݟ͚ͭͨΒڭ͍͑ͯͩ͘͞ʂ
© ZOZO Technologies, Inc. ·ͱΊ 29 ٕज़ͷ৽Λҙࣝ͠·͠ΐ͏ 💣߈Ί࣮ͨࢥΘ͵ͱ͜Ζʹෆ۩߹͕ى͖Δ͔͠Εͳ͍ 🙋ܧଓӡ༻͍ͯ͠ΔΞϓϦͳ͓͞Βʂ աڈʹෳࡶԽ͍ͯͨ͠ػೳࠓͳΒ؆୯ʹͰ͖Δ෦͋Δʂ
💧ˢղੳݕূ͕େม͕ͩԸܙΛड͚ΒΕΔͣ
© ZOZO Technologies, Inc. 30
None