Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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.5k
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
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1k
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
300
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
3
730
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
600
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
25
13k
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
210
AWS CDKの推しポイントN選
akihisaikeda
1
240
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.4k
AI時代もSEOを頑張っている話
shirahama_x
0
230
20 years of Symfony, what's next?
fabpot
2
310
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
340
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
230
Featured
See All Featured
Docker and Python
trallard
46
3.7k
Facilitating Awesome Meetings
lara
57
6.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
BBQ
matthewcrist
89
9.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
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