UICollectionViewDataSourceはViewControllerと別にして実装しないほうが良いと最近思う

7d1521d950d9bc5697868830cb04ff2f?s=47 yimajo
April 13, 2017

 UICollectionViewDataSourceはViewControllerと別にして実装しないほうが良いと最近思う

potatotips #39 でLTした内容です
https://potatotips.connpass.com/event/51176/

贖罪対象: UIViewControllerからUICollectionViewのDataSourceを分離し肥大化を防ぐ具体例
http://qiita.com/yimajo/items/f256477dce16900943f2

7d1521d950d9bc5697868830cb04ff2f?s=128

yimajo

April 13, 2017
Tweet

Transcript

  1. 6*$PMMFDUJPO7JFX%BUB4PVSDF ͸7JFX$POUSPMMFSͱผʹ࣮ͯ͠ ૷͠ͳ͍΄͏͕ྑ͍ͱ࠷ۙࢥ͏ QPUBUPUJQT !ZJNBKP

  2. ࣗݾ঺հ

  3. None
  4. ݙຊ͓଴͍ͪͯ͠·͢

  5. ࣗݾ঺հऴΘΓ

  6. ؓ࿩ٳ୊

  7. ࣗ෼ͷաڈͷऔΓ૊ΈΛΞϯνύλʔϯ ͱͯ͠޿ΊΔ͜ͱͰ ᩿ࡑͱ͍͖͍ͤͯͨͩͨ͞ IUUQRJJUBDPNZJNBKPJUFNTGEDFG 6*7JFX$POUSPMMFS͔Β6*$PMMFDUJPO7JFXͷ%BUB4PVSDFΛ෼཭͠ංେԽΛ๷͙۩ମྫ

  8. 7JFX$POUSPMMFS 6*$PMMFDUJPO7JFX%BUB4PVSDF σʔλ 6*$PMMFDUJPO7JFX%FMFHBUF อ࣋ อ࣋ EFMFHBUF࡞ͬͯ௨஌ EFMFHBUF࡞ͬͯ௨஌ อ࣋ อ࣋

    ࠷ॳʹਤઆ ʮ͜Ε͕Ξϯνύλʔϯͩʜʯ
  9. ҙຯΘ͔Μͳ͍ͬͯਓ ͍Βͬ͠Ό͍·͔͢ʁ

  10. ৄ͘͠આ໌

  11. w ೥͘Β͍લɺ6*7JFX$POUSPMMFSͷංେԽʹർ Εͨࢲ͸6*$PMMFDUJPO7JFX%BUB4PVSDFͱ 6*$PMMFDUJPO7JFX%FMFHBUFΛ7JFX$POUSPMMFSͱ ผʹ࣮ͯ͠૷ͯͨ͠

  12. w ଞͷਓ΋ͦ͏͍͏΍ΓํΛͯ͠ΔͷΛݟͨ͜ͱ ͕͋Δ w 7$ͷංେԽରࡦͱͯ͠΍ͬͯ͠·͍͕ͪ

  13. w ࠓʹͳͬͯΈΔͱத్൒୺ͰಡΈͮΒ͍ɻΞϯ νύλʔϯͰ͸ͳ͍͔ͱࢥͬͯΔ

  14. ཧ༝

  15. w ܦݧ্ɺΞϓϦͷ࢓༷มߋʹΑͬͯ੾Γସ͑ͨ ͍ͷ͸σʔλͷछྨͱ͔ w ΋͘͠͸ݟͨ໨ͷͲͪΒ͔

  16. w 6*$PMMFDUJPO7JFX%BUB4PVSDF͸ 6*$PMMFDUJPO7JFXʹɺσʔλ͚ͩఏڙ͢ΔͷͰ ͸ͳ͘7JFX΋ಉ࣌ʹఏڙ͢Δ%FMFHBUF w ʢ.7$Ͱ΍ΔͳΒʣ͜Ε͸7$͕࣮૷͢Δͷ͕ Ұ൪εϚʔτͰ͸ͳ͍͔ͱࢥͬͯΔ

  17. w 7$͔Β6*,JUܥͷ%FMFHBUFΛผΫϥεʹ෼཭͠ ͗ͯ͢΋Ϋϥεؒͷ௨஌Ͱ݁ہίʔυྔ͸૿͑ Δ

  18. ͡Ό͋۩ମతʹ Ͳ͏͢Δ͔

  19. 6*$PMMFDUJPO7JFX΍6*5BCMF7JFX ಉ͡Α͏ͳݟͨ໨ͷը໘Ͱɺ ࢓༷มߋͳͲ͕͋Γɺ ҧ͏σʔλʹ͍ͨ͠৔߹ͳͲΛ૝ఆ

  20. JOEFY1BUIͰΑ͘ΞΫηε͢ Δσʔλ͸ w 1)"TTFUʢΞϧόϜͷσʔλʣ w /4.BOBHFE0CKFDUʢ$PSF%BUBͰӬଓԽʣ w 3FBMN0CKFDUʢ3FBMNͰӬଓԽʣ w ӬଓԽͤͣ௨৴ͨ݁͠ՌΛࣗ࡞ͷ0CKFDUʹ٧Ί

    ͨ΋ͷ౳
  21. ྫ͑͹ 1)'FUDI3FTVMU͔Βͦͷ··JOEFY1BUI Ͱऔಘ͢Ε͹Α͔͕ͬͨ࢓༷มߋ΍ը໘ ͷҧ͍ʹΑͬͯҰ౓1)"TTFUͷ഑ྻʹ͠ ͳ͍ͱ͍͚ͳ͍৔߹ͳͲ

  22. σʔλͷछྨ͕ҧ͏ͳΒ σʔλʹରͯ͠JOEFY1BUIͰΞΫηε͢ΔΑ͏ͳ EFMFHBUF࡞ͬͯ ͦΕͱ7JFX$POUSPMMFSͱΛ ෼཭͢Δ΄͏͕͍͍

  23. ਤઆ

  24. 7JFX$POUSPMMFS 6*$PMMFDUJPO7JFX%BUB4PVSDF σʔλ 6*$PMMFDUJPO7JFX%FMFHBUF อ࣋ อ࣋ EFMFHBUF࡞ͬͯ௨஌ EFMFHBUF࡞ͬͯ௨஌ อ࣋ อ࣋

    ΋͍͔͍ͬɺΞϯνύλʔϯͷਤ
  25. 6*$PMMFDUJPO7JFX%BUB4PVSDF σʔλ 6*$PMMFDUJPO7JFX%FMFHBUF อ࣋ %BUB4PVSDF อ࣋ 7JFX$POUSPMMFS EFMFHBUF࡞ͬͯ௨஌ 6*$PMMFDUJPO7JFX%BUB4PVSDFͱ6*$PMMFDUJPO7JFX%FMFHBUF͸ 7JFX$POUSPMMFSͰ࣮૷ͨ͠Β͍͍͡ΌΜͱׂΓ੾Δύλʔϯ

  26. Ͳ͏͢Δͷ͔ w QSPUPDPM%BUB4PVSDFDMBTTΛ༻ҙ w σʔλͷ਺Λฦͨ͠ΓɺJOEFY1BUI࢖ͬͯΞΫ ηε͞ΕͨΒͦͷσʔλΛฦͨ͠Γ͢Δɻ w 7JFXʹ͍ͭͯ͸ߟ͑ͳ͍

  27. ·ͱΊ w 6*$PMMFDUJPO7JFX%BUB4PVSDFΛ੾Γସ͍͑ͨ Θ͚͡Όͳ͍ͷͰ7$͔Β෼཭͢ΔσϝϦοτ͕ ଟ͍ w ܦݧ্ɺ੾Γସ͍͑ͨͷ͸σʔλ w ʢϓϩτίϧܾ͑͞ΊͯʣσʔλΛஔ͖׵͑ Մೳʹ͢Δํ͕γϯϓϧͳͷͰྑͦ͞͏

  28. ௥ه w Ұͭͷ7JFX$POUSPMMFSʹෳ਺ͷ6*5BCMF7JFX΍ 6*$PMMFDUJPO7JFX͕͋Δ৔߹ʹ͸ɺEFMFHBUFΛ ࣮ߦ͢ΔΫϥεΛ෼͚͟Δ͑ͳ͔ͬͨΓɺͦ΋ ͦ΋෼͚Δ΂͖ͱ͸ࢥ͍·͢