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
1
2k
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.3k
10年以上の歴史を持つプロダクトのRosettaフリー / zozotown-rosetta-free
tosh7
0
2.2k
Apple silicon導入のウラガワ/ Introducing Apple silicon and its behind the scenes
tosh7
0
1.5k
若手のうちから活躍したいんじゃ/ How to work well as a freshman
tosh7
0
93
三年間で100人以上の中高大学生にiOSアプリ開発を教えていて感じたこと
tosh7
1
3.8k
Other Decks in Programming
See All in Programming
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
as(型アサーション)を書く前にできること
marokanatani
10
2.7k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
イベント駆動で成長して委員会
happymana
1
340
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
Realtime API 入門
riofujimon
0
150
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
900
Arm移行タイムアタック
qnighy
0
330
OSSで起業してもうすぐ10年 / Open Source Conference 2024 Shimane
furukawayasuto
0
110
Jakarta EE meets AI
ivargrimstad
0
220
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
100
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Bash Introduction
62gerente
608
210k
How GitHub (no longer) Works
holman
310
140k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Cult of Friendly URLs
andyhume
78
6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Designing Experiences People Love
moore
138
23k
Visualization
eitanlees
145
15k
Building Your Own Lightsaber
phodgson
103
6.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