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
Compositional Layoutは銀の弾丸になるのか~実際に導入してみて得た知見、全て...
Search
Satoshi Komatsu
October 07, 2021
Programming
0
2.4k
Compositional Layoutは銀の弾丸になるのか~実際に導入してみて得た知見、全て公開しちゃいます~
After iOSDC 2021のLTで公開した内容になります。
Satoshi Komatsu
October 07, 2021
Tweet
Share
More Decks by Satoshi Komatsu
See All by Satoshi Komatsu
WWDC Labsは怖くない。 Labsの準備とコツ、完全公開します / iOSDC-WWDC-Labs
tosh7
1
1.6k
10年以上の歴史を持つプロダクトのRosettaフリー / zozotown-rosetta-free
tosh7
0
3.4k
Apple silicon導入のウラガワ/ Introducing Apple silicon and its behind the scenes
tosh7
0
2k
若手のうちから活躍したいんじゃ/ How to work well as a freshman
tosh7
0
120
三年間で100人以上の中高大学生にiOSアプリ開発を教えていて感じたこと
tosh7
1
4.4k
Other Decks in Programming
See All in Programming
Module Harmony
petamoriken
2
400
Designing Repeatable Edits: The Architecture of . in Vim
satorunooshie
0
390
Promise.tryで実現する新しいエラーハンドリング New error handling with Promise try
bicstone
3
460
関数の挙動書き換える
takatofukui
4
660
Verilator + Rust + gRPC と Efinix の RISC-V でAIアクセラレータをAIで作ってる話 RTLを語る会(18) 2025/11/08
ryuz88
0
360
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
280
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
170
Honoを技術選定したAI要件定義プラットフォームAcsimでの意思決定
codenote
0
240
PyCon mini 東海 2025「個人ではじめるマルチAIエージェント入門 〜LangChain × LangGraphでアイデアを形にするステップ〜」
komofr
3
1k
チーム開発の “地ならし"
konifar
7
4.9k
イベントストーミングのはじめかた / Getting Started with Event Storming
nrslib
1
580
問題の見方を変える「システム思考」超入門
panda_program
0
270
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
320
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Thoughts on Productivity
jonyablonski
73
4.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
It's Worth the Effort
3n
187
28k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to train your dragon (web standard)
notwaldorf
97
6.4k
GitHub's CSS Performance
jonrohan
1032
470k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Six Lessons from altMBA
skipperchong
29
4.1k
Transcript
Compositional Layout ۜͷؙͱͳΔͷ͔ʂʁ ~࣮ࡍʹಋೖͯ͠Έͯಘͨݟɺશͯެ։ͪ͠Ό͍·͢~ גࣜձࣾZOZ O ZOZOTOWN։ൃຊ෦ ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ খদ
ޛ Copyright © ZOZO, Inc.
© ZOZO, Inc. ͱ͠(@tosh_3) 2020ZOZOςΫϊϩδʔζ(ݱZOZO)ʹ৽ଔೖࣾɻ ࠷ۙͷڵຯCSͱSwiftUIɻ 2 גࣜձࣾZOZ O ZOZOTOWN։ൃຊ෦
ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ
© ZOZO, Inc. https://zozo.jp/ 3 • ϑΝογϣϯ௨ൢαΠτ • 1,400Ҏ্ͷγϣοϓɺ8,400Ҏ্ͷϒϥϯυͷऔΓѻ͍ •
ৗ࣌83ສҎ্ͷΞΠςϜͱຖฏۉ2,900Ҏ্ͷ৽ண Λܝࡌʢ2021 6݄࣌ʣ • ϒϥϯυݹணͷϑΝογϣϯκʔϯʮZOZOUSEDʯ ίεϝઐϞʔϧʮZOZOCOSMEʯɺۺͷઐϞʔϧ ʮZOZOSHOESʯɺϥάδϡΞϦʔˍσβΠφʔζκʔϯ ʮZOZOVILLAʯΛల։ • ଈૹαʔϏε • ΪϑτϥοϐϯάαʔϏε • πέ͍ ͳͲ
© ZOZO, Inc. 4 $PNQPTJUJPOBM-BZPVUʹ͍ͭͯ © ZOZO, Inc.
© ZOZO, Inc. 5 $PNQPTJUJPOBM-BZPVUʹ͍ͭͯ
© ZOZO, Inc. 6 $PNQPTJUJPOBM-BZPVUʹ͍ͭͯ "QQ4UPSF ෳࡶͳϨΠΞτΛҰͭͷ$PMMFDUJPO7JFXͰ ཧ͢Δ͜ͱʹޭ ࢀরɿhttps://developer.apple.com/videos/play/wwdc2019/215/?time=147
© ZOZO, Inc. 7 $PNQPTJUJPOBM-BZPVUʹ͍ͭͯ J04%$+BQBOͰ $PNQPTJUJPOBM-BZPVUʹ͍ͭͯ৮Ε͍ͯͨηογϣϯ
© ZOZO, Inc. 8 ;0;0508/ͷ$PNQPTJUJPOBM-BZPVUରԠ © ZOZO, Inc.
© ZOZO, Inc. 9 େنϦχϡʔΞϧʹ͏ɺେ෯ͳσβΠϯมߋ ˠطଘͷઃܭʹରͯ͠ϝεΛೖΕΔ͜ͱ͕Ͱ͖ͨ ;0;0508/ͷ$PNQPTJUJPOBM-BZPVUରԠ
© ZOZO, Inc. 10 ;0;0508/ͷ$PNQPTJUJPOBM-BZPVUରԠ ;0;0508/ ԣʹεΫϩʔϧͰ͖ΔηΫγϣϯΛ͡Ίͱ͠ɺ͞·͟· ͳλΠϓͷηΫγϣϯ͕ଘࡏ͢Δɻ ηΫγϣϯͷͱͦͷதϓϩϞʔγϣϯʹΑͬͯஞҰ
มԽ͢Δɻ
© ZOZO, Inc. 11 Ͱͳͥ$PNQPTJUJPOBM-BZPVUʁ ;0;0508/ͷ$PNQPTJUJPOBM-BZPVUରԠ $PNQPTJUJPOBM-BZPVU $PMMFDUJPO7JFXJO$PMMFDUJPO7JFX
© ZOZO, Inc. 12 ;0;0508/ͷ$PNQPTJUJPOBM-BZPVUରԠ $PMMFDUJPO7JFXJO$PMMFDUJPO7JFX $PNQPTJUJPOBM-BZPVU •શମΛҰͭͷCollectionViewͱͯ͠ѻ͏͜ͱ ͕Ͱ͖Δ
•એݴతʹॻ͘͜ͱ͕Ͱ͖Δ •CollectionViewͷதʹԣ͖ͷεΫϩʔϧ͕ ͋ΔViewΛ༰қʹઃఆ͢Δ͜ͱ͕Ͱ͖Δ •CellͷPagingࠨΑͤͳͲΛ؆୯ʹߦ͏͜ ͱ͕Ͱ͖Δ •ෳࡶͳϨΠΞτͰ؆୯ʹॻ͘͜ͱ͕ Ͱ͖Δ •ZOZOTOWNͷதͰ࣮࣮͕͋Δ •ॊೈͳϨΠΞτʹରԠ͢Δ͜ͱ͕Ͱ͖Δ •iOS12ҎલͷOSͰ༻͢Δ͜ͱ͕Ͱ͖Δ •ΑΓॊೈͳCellͷ੍ޚΛߦ͏͜ͱ͕Ͱ͖Δ
© ZOZO, Inc. 13 ;0;0508/ͷ$PNQPTJUJPOBM-BZPVUରԠ • ৽σβΠϯApp Storeͷ༷ʹԣεΫϩʔϧ Λଟ༻
• ྆ύλʔϯΛൺֱͨ݁͠Ռɺ ίʔυྔݮগ ηΫγϣϯͷՃͳͲͷॊೈੑ্͕ͬͨ •શମΛҰͭͷCollectionViewͱͯ͠ѻ͏͜ͱ ͕Ͱ͖Δ •એݴతʹॻ͘͜ͱ͕Ͱ͖Δ •CollectionViewͷதʹԣ͖ͷεΫϩʔϧ͕ ͋ΔViewΛ༰қʹઃఆ͢Δ͜ͱ͕Ͱ͖Δ •CellͷPagingࠨΑͤͳͲΛ؆୯ʹߦ͏͜ ͱ͕Ͱ͖Δ •ෳࡶͳϨΠΞτͰ؆୯ʹॻ͘͜ͱ͕ Ͱ͖Δ $PNQPTJUJPOBM-BZPVU
© ZOZO, Inc. 14 ;0;0508/ͷ$PNQPTJUJPOBM-BZPVUରԠ *#1$PMMFDUJPO7JFX $PNQPTJUJPOBM-BZPVU ؛͞ΜʹΑΔαϙʔτ
© ZOZO, Inc. 15 $PNQPTJUJPOBM-BZPVUΛ༻ͨ͠ઃܭ © ZOZO, Inc.
© ZOZO, Inc. 16 $PNQPTJUJPOBM-BZPVUΛ༻ͨ͠ઃܭ $PNQPTJUJPOBM-BZPVU $PNQPTJUJPOBM-BZPVU ✖︎
%JGGBCMF%BUB4PVSDF
© ZOZO, Inc. 17 $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT © ZOZO, Inc.
© ZOZO, Inc. 18 $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT $PNQPTJUJPOBM-BZPVUͷΈ ԣεΫϩʔϧͲͷΑ͏ʹ࣮ͯ͠͞Ε͍ͯΔͷͰ ͠ΐ͏͔ʁ
© ZOZO, Inc. 19 0SUIPHPOBM4DSPMM7JFX w ॎʹεΫϩʔϧͰ͖Δ$PMMFDUJPO7JFXʹରͯ͠ ԣʹεΫϩʔϧͰ͖Δ4DSPMM7JFX
w ͜ͷPSUIPHPOBM4DSPMM7JFXQSJWBUFͳΫϥεͳ ͷͰɺΞΫηεͰ͖ͳ͍ $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT
© ZOZO, Inc. 20 Ұ෦σβΠϯͰ࣮͕͍͠ w 1BHF$POUSPMͰԿຕ͔Λදࣔ͢Δ $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT
© ZOZO, Inc. 21 Ұ෦σβΠϯͰ࣮͕͍͠ w 1BHF$POUSPMͰԿຕ͔Λදࣔ͢Δ TDSPMM7JFX%JE4DSPMM͕ݺΕͳ͍ͨΊɺ ݱࡏͷ4DSPMM7JFXͷҐஔΛऔಘ͢Δ͜ͱ͕͍͠ɻ
ˠ/4$PMMFDUJPO-BZPVU4FDUJPO ͷWJTJCMF*UFNT*OWBMJEBUJPO)BOEMFSͰରԠʁ $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT
© ZOZO, Inc. 22 ˠ/4$PMMFDUJPO-BZPVU4FDUJPO ͷWJTJCMF*UFNT*OWBMJEBUJPO)BOEMFSͰରԠʁ w WJTJCMF*UFNT*OWBMJEBUJPO)BOEMFSͱɺ TDSPMM7JFX%JE4DSPMMʹࣅ͍ͯΔ͕ɺ͜ΕΛ༻͢Δ͜ͱͰɺ
ઃܭʹෳࡶੑ͕૿ͯ͠͠·͏ɻ $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT
© ZOZO, Inc. 23 ͲͷΑ͏ʹ࣮ͨ͠ͷ͔ʁ w $PNQPTJUJPOBM-BZPVUΛ༻͠ͳ͕Β 'MPX-BZPVUͷύλʔϯͱͷϋΠϒϦοτ ͜͜ͷ4FDUJPOͷ$FMMͷதʹ$PMMFDUJPO7JFXΛஔ
PSUIPHPOBM4DSPMM7JFX༻͍ͯ͠ͳ͍ 'MPX-BZPVUͰQBHJOH࣮ $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT
© ZOZO, Inc. 24 ͦͷଞ͍͠σβΠϯྫ w ແݶεΫϩʔϧ w 1BHF-PBEJOH
Ζ͏ͱࢥ͑Ͱ͖ͳ͘ͳ͍͔͠Εͳ͍͕ɺ ͳ͔ͳ͔ߴίετʹͳͬͯ͠·͏ɻɻɻ $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT
© ZOZO, Inc. 25 0SUIPHPOBM4DSPMMJOH#FIBWJPSͷόά 4FDUJPOͷPSUIPHPOBM4DSPMMJOH#FIBWJPSΛ DPOUJOVPVT(SPVQ-FBEJOH#PVOEBSZʹηοτͨ͠߹࠷ޙͷDFMM ͷεΫϩʔϧ͕͏·͘ಈ࡞͠ͳ͍ɻ
J04d·Ͱͷؒʹଘࡏɻ 04ϨϕϧͰͷڍಈͷόάɻ ͋·Γྑ͍ϫʔΫΞϥϯυͳ͠ɻ $PNQPTJUJPOBM-BZPVUʹؔ͢Δ5JQT
© ZOZO, Inc. 26 ·ͱΊ © ZOZO, Inc.
© ZOZO, Inc. 27 ·ͱΊ $PNQPTJUJPOBM-BZPVUۜͷؙͳͷ͔ʁ
© ZOZO, Inc. 28 ·ͱΊ $PNQPTJUJPOBM-BZPVUۜͷؙͳͷ͔ʁ w ύλʔϯҎ্ͷσβΠϯʹରͯ͠ɺରԠෆՄೳͳͷͳ͔ͬͨɻ w
ࠓ·ͰखಈͰௐ͍ͯͨ͠ͷΛௐͯ͘͠ΕΔ"1*͕ἧ͍ͬͯΔͨΊ࣮қ͕Լ͕ͬͨɻ
© ZOZO, Inc. 29 ·ͱΊ $PNQPTJUJPOBM-BZPVUۜͷؙͳͷ͔ʁ w ύλʔϯҎ্ͷσβΠϯʹରͯ͠ɺରԠෆՄೳͳͷͳ͔ͬͨɻ w
ࠓ·ͰखಈͰௐ͍ͯͨ͠ͷΛௐͯ͘͠ΕΔ"1*͕ἧ͍ͬͯΔͨΊ࣮қ͕Լ͕ͬͨɻ ˠύʔπͷΈ߹Θͤʹ͢Δ͜ͱͰϨΠΞτͷ࣮͕༰қʹͰ͖ΔͷͰɺผͷͱ͜Ζʹ࣌ؒ Λׂ͚ΔΑ͏ʹͳͬͨɻ $PMMFDUJPO7JFX͕ඞཁͳ7JFXʹ͓͍ͯɺۜͷؙͱݴ͑Δɻ
© ZOZO, Inc. 30 ·ͱΊ $PNQPTJUJPOBM-BZPVUۜͷؙͳͷ͔ʁ ҰํͰɺ ༻͍ͨ͠"1*͕༻ҙ͞Ε͍ͯͳ͍ͳͲɺϨΠΞτʹΑ͖ͬͯෆ͖͔֬ʹ͋Δɻ ͔͠͠ɺઌ΄Ͳ͋͛ͨϋΠϒϦοτܕͱͯ͑͠ɺͦ͏ݴͬͨղফ͞ΕΔɻ
© ZOZO, Inc. 31 ·ͱΊ $PNQPTJUJPOBM-BZPVUۜͷؙͳͷ͔ʁ Basic features Basic
features Exciting, custom features! Exciting, custom features!
© ZOZO, Inc. 32 ·ͱΊ ZOZOTOWNΞϓϦHomeը໘࠶ઃܭͷي~10Ҏ্ྺ࢙Λ࣋ͭΞϓϦͲͷΑ͏ʹͯ͠ੜ·ΕมΘͬͨͷ͔~ https://techblog.zozo.com/entry/zozotown-ios-home-rearchitecture
© ZOZO, Inc. 33 ੵۃ࠾༻த https://corp.zozo.com/recruit/mid-career/ J04ΤϯδχΞ w ;0;0508/ w
8&"3 w ܭଌϓϥοτϑΥʔϜ ;0;0(-"44 ;0;0."5 w '""/4 w Φʔϓϯϙδγϣϯ
None