potatotips #39 でLTした内容です https://potatotips.connpass.com/event/51176/
贖罪対象: UIViewControllerからUICollectionViewのDataSourceを分離し肥大化を防ぐ具体例 http://qiita.com/yimajo/items/f256477dce16900943f2
6*$PMMFDUJPO7JFX%BUB4PVSDF7JFX$POUSPMMFSͱผʹ࣮ͯ͠͠ͳ͍΄͏͕ྑ͍ͱ࠷ۙࢥ͏QPUBUPUJQT!ZJNBKP
View Slide
ࣗݾհ
ݙຊ͓͍ͪͯ͠·͢
ࣗݾհऴΘΓ
ؓٳ
ࣗͷաڈͷऔΓΈΛΞϯνύλʔϯͱͯ͠ΊΔ͜ͱͰ᩿ࡑͱ͍͖͍ͤͯͨͩͨ͞IUUQRJJUBDPNZJNBKPJUFNTGEDFG6*7JFX$POUSPMMFS͔Β6*$PMMFDUJPO7JFXͷ%BUB4PVSDFΛ͠ංେԽΛ͙۩ମྫ
7JFX$POUSPMMFS6*$PMMFDUJPO7JFX%BUB4PVSDFσʔλ6*$PMMFDUJPO7JFX%FMFHBUFอ࣋อ࣋EFMFHBUF࡞ͬͯ௨EFMFHBUF࡞ͬͯ௨อ࣋อ࣋࠷ॳʹਤઆʮ͜Ε͕Ξϯνύλʔϯͩʜʯ
ҙຯΘ͔Μͳ͍ͬͯਓ͍Βͬ͠Ό͍·͔͢ʁ
ৄ͘͠આ໌
w ͘Β͍લɺ6*7JFX$POUSPMMFSͷංେԽʹർΕͨࢲ6*$PMMFDUJPO7JFX%BUB4PVSDFͱ6*$PMMFDUJPO7JFX%FMFHBUFΛ7JFX$POUSPMMFSͱผʹ࣮ͯͯͨ͠͠
w ଞͷਓͦ͏͍͏ΓํΛͯ͠ΔͷΛݟͨ͜ͱ͕͋Δw 7$ͷංେԽରࡦͱͯͬͯ͠͠·͍͕ͪ
w ࠓʹͳͬͯΈΔͱத్ͰಡΈͮΒ͍ɻΞϯνύλʔϯͰͳ͍͔ͱࢥͬͯΔ
ཧ༝
w ܦݧ্ɺΞϓϦͷ༷มߋʹΑͬͯΓସ͍͑ͨͷσʔλͷछྨͱ͔w ͘͠ݟͨͷͲͪΒ͔
w 6*$PMMFDUJPO7JFX%BUB4PVSDF6*$PMMFDUJPO7JFXʹɺσʔλ͚ͩఏڙ͢ΔͷͰͳ͘7JFXಉ࣌ʹఏڙ͢Δ%FMFHBUFw ʢ.7$ͰΔͳΒʣ͜Ε7$͕࣮͢Δͷ͕Ұ൪εϚʔτͰͳ͍͔ͱࢥͬͯΔ
w 7$͔Β6*,JUܥͷ%FMFHBUFΛผΫϥεʹ͗ͯ͢͠Ϋϥεؒͷ௨Ͱ݁ہίʔυྔ૿͑Δ
͡Ό͋۩ମతʹͲ͏͢Δ͔
6*$PMMFDUJPO7JFX6*5BCMF7JFXಉ͡Α͏ͳݟͨͷը໘Ͱɺ༷มߋͳͲ͕͋Γɺҧ͏σʔλʹ͍ͨ͠߹ͳͲΛఆ
JOEFY1BUIͰΑ͘ΞΫηε͢Δσʔλw 1)"TTFUʢΞϧόϜͷσʔλʣw /4.BOBHFE0CKFDUʢ$PSF%BUBͰӬଓԽʣw 3FBMN0CKFDUʢ3FBMNͰӬଓԽʣw ӬଓԽͤͣ௨৴ͨ݁͠ՌΛࣗ࡞ͷ0CKFDUʹ٧Ίͨͷ
ྫ͑1)'FUDI3FTVMU͔Βͦͷ··JOEFY1BUIͰऔಘ͢ΕΑ͔͕༷ͬͨมߋը໘ͷҧ͍ʹΑͬͯҰ1)"TTFUͷྻʹ͠ͳ͍ͱ͍͚ͳ͍߹ͳͲ
σʔλͷछྨ͕ҧ͏ͳΒσʔλʹରͯ͠JOEFY1BUIͰΞΫηε͢ΔΑ͏ͳEFMFHBUF࡞ͬͯͦΕͱ7JFX$POUSPMMFSͱΛ͢Δ΄͏͕͍͍
ਤઆ
7JFX$POUSPMMFS6*$PMMFDUJPO7JFX%BUB4PVSDFσʔλ6*$PMMFDUJPO7JFX%FMFHBUFอ࣋อ࣋EFMFHBUF࡞ͬͯ௨EFMFHBUF࡞ͬͯ௨อ࣋อ͍͔͍࣋ͬɺΞϯνύλʔϯͷਤ
6*$PMMFDUJPO7JFX%BUB4PVSDFσʔλ6*$PMMFDUJPO7JFX%FMFHBUF อ࣋%BUB4PVSDFอ࣋7JFX$POUSPMMFSEFMFHBUF࡞ͬͯ௨6*$PMMFDUJPO7JFX%BUB4PVSDFͱ6*$PMMFDUJPO7JFX%FMFHBUF7JFX$POUSPMMFSͰ࣮ͨ͠Β͍͍͡ΌΜͱׂΓΔύλʔϯ
Ͳ͏͢Δͷ͔w QSPUPDPM%BUB4PVSDFDMBTTΛ༻ҙw σʔλͷΛฦͨ͠ΓɺJOEFY1BUIͬͯΞΫηε͞ΕͨΒͦͷσʔλΛฦͨ͠Γ͢Δɻw 7JFXʹ͍ͭͯߟ͑ͳ͍
·ͱΊw 6*$PMMFDUJPO7JFX%BUB4PVSDFΛΓସ͍͑ͨΘ͚͡Όͳ͍ͷͰ7$͔Β͢ΔσϝϦοτ͕ଟ͍w ܦݧ্ɺΓସ͍͑ͨͷσʔλw ʢϓϩτίϧܾ͑͞ΊͯʣσʔλΛஔ͖͑Մೳʹ͢Δํ͕γϯϓϧͳͷͰྑͦ͞͏
هw Ұͭͷ7JFX$POUSPMMFSʹෳͷ6*5BCMF7JFX6*$PMMFDUJPO7JFX͕͋Δ߹ʹɺEFMFHBUFΛ࣮ߦ͢ΔΫϥεΛ͚͟Δ͑ͳ͔ͬͨΓɺ͚ͦͦΔ͖ͱࢥ͍·͢