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
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
110
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
880
ASTを使って影響範囲を特定する
nealle
0
110
AI時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
1
1.1k
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
150
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
230
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
230
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
610
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
150
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
130
GoにおけるFFIのこれまでとこれから
goccy
4
1.3k
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
240
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
Typedesign – Prime Four
hannesfritz
42
3.2k
Unsuck your backbone
ammeep
672
58k
Site-Speed That Sticks
csswizardry
13
1.5k
WCS-LA-2024
lcolladotor
0
820
Practical Orchestrator
shlominoach
191
12k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
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