Mbile Act Osaka #8
ֶੜελʔτΞοϓ͕ ϚΠΫϩϏϡʔίϯτϩʔϥ Λಋೖͨ͠nade( @kazuma_nagano ) Mobile Act OSAKA #8
View Slide
Kazuma Nagano (nade) @kazuma_nagano NAIST M2TIMEPACK Inc. CTO
ຊͷςʔϚ։ൃεϐʔυͱϦϑΝΫλΛཱ྆͢Δ ʹϚΠΫϩΞʔΩςΫνϟઃܭ ׂ͕ͱྑ͔ͬͨ
ͳͥಋೖʹ͍͔ͨͬͨʁ
։ൃϝϯόʔ΅͘ɿiOSνϣοτσΩϧ ʢ5ʣCEOɿiOS UI ΠδΕΔσβΠφɿϓϩάϥϛϯάॳֶऀ
എܠ• ͱʹ͔͘εϐʔυײ͕ཉ͍͠ʢDemoDay·Ͱʹ..)• ֶۀ͕͋ΔͷͰجຊඇಉظ࡞ۀ• εΫϥοϓ & Ϗϧυ
։ൃࢦ• ͱʹ͔͘εϐʔυײ͕ཉ͍͠ʢDemoDay·Ͱʹ..)• ֶۀ͕͋ΔͷͰجຊඇಉظ࡞ۀ• εΫϥοϓ & ϏϧυϝΠϯϩδοΫɿ΅͘UIͱ෦ػೳɿCEO + σβΠφ
σ β Π φ $ & 0 ϝΠϯϩδοΫ ͤΔͥʂʂ ϨϏϡʔ͢Δͥ։ൃͷ༷ࢠ6*ͱ؆୯ͳػೳ ࡞Δͥʂʂ
τοϓը໘ͷ༷ࢠ͕ ͦΖͦΖઃܭɽɽޙɽɽ৽ػೳͱϏϡʔͥ͢ʂ
τοϓը໘ͷ༷ࢠ͕ ͦΖͦΖઃܭɽɽޙɽɽ৽ػೳͱϏϡʔͥ͢ʂେنͳϦϑΝΫλϦϯά
શ෦ڭ͖͑Εͳ͍ɽɽ͞Βʹޙɽɽ Μʁ͜ͷઃܭͰ Ͳ͏ͬͯػೳ͢ͷʁ7JFX.PEFMͬͯԿʂʁ
શ෦ڭ͖͑Εͳ͍ɽɽ͞Βʹޙɽɽ Μʁ͜ͷઃܭͰ Ͳ͏ͬͯػೳ͢ͷʁ7JFX.PEFMͬͯԿʂʁw 6*ΛՃͮ͠Β͘ͳͬͯ͘Δw ษڧڭҭίετw ഭΓདྷΔకΊΓɽɽ
͖ʹ͍͍ͭͬͯ͘Αʂ ͏͋ͱͰશ෦ ͓Ε͕͢Θɽɽ࠷ऴతʹɽɽʁɹʁ
͜͏ͯ͠Fat View Controllerͷ ҋʹତ͍ͪͯ͘ͷͩͬͨ
ͳʹ͕ྑ͘ͳ͔͔ͬͨʁ!• ΞʔΩςΫνϟΛపఈ͢Δʹֶशίετ͕͔͔Δ• ֶश͠ͳ͕ΒίʔυΛॻ͘߹ɺεϐʔυ͕མͪΔ• Ϋϥεؒͷ݁߹͕ਂ͘ͳΔͨΊϦϑΝΫλ͕େม
ͱ͍͑ϚγͳΓํ͋Δͣ
େֶͰڭΘͬͨ͜ͱɽɽ!☁
ڊਓͷݞͷ্ʹͷΔʂ!#
• ࡢͷiOSDCͰ @tarunon͞Μ͕ൃද(ϕετεϐʔΧʔ)• ϑϨʔϜϫʔΫ + Sample͕ެ։https://github.com/mercari/Mew• UIύʔπͦΕͧΕΛViewControllerͰ࡞ͬͯ͠·͏ΞʔΩςΫνϟMicroViewControllerϝ̋ΧϦࣾͷ
࣮ͷઆ໌Λͪΐͬͱ͚ͩ ৄ͘͠Github
ViewControllerؒͷInterfaceΛϓϩτίϧͰ౷Ұ• Instantiatableɿinit• Injectableɿupdate• InteractableɿdelegateMicroViewControllerϝ̋ΧϦࣾͷ
ContainerViewΛ༻͍࣮ͯMicroViewControllerϝ̋ΧϦࣾͷ
MicroViewControllerΛ͏ͱ• ϥΠϑαΠΫϧɾը໘ભҠίʔυׂ͕͞ΕΔ• ϨΠΞτ͕࣌ؒॖ͠ɺύϑΥʔϚϯε͕ ͕͋Δ• ΫϩεΞʔΩςΫνϟͰ࣮Մೳ
ΫϩεΞʔΩςΫνϟ• ը໘ؒͷ݁߹͕ेʹૄͰ͋Ε த͕ԿͰͰ͖ͯͯΑ͍MVVMMVVMClean ArchiMVC RIBsClean ArchiMVC RIBs MVVM MVP MVC
ΫϩεΞʔΩςΫνϟ• ը໘ؒͷ݁߹͕ेʹૄͰ͋Ε த͕ԿͰͰ͖ͯͯΑ͍• Fat ViewControllerͰྑ͍ MVVMMVVMClean ArchiMVC RIBsClean ArchiMVC RIBs MVVM MVP MVC
ֶੜελʔτΞοϓ͕MicroViewControllerΛ͏ͱ• શͯͷը໘Λ͖Ε͍ͳίʔυͰ࡞Βͳͯ͘ Α͘ͳΔ• ViewController͕ଠΓͮΒ͘ͳΔ• ଠͬͨը໘͔ΒϦϑΝΫλΛਐΊ͍͚ͯΔ• ϦϑΝΫλͷӨڹൣғ͕ڱ·ΓΊͬͪΌָʹͳΔ
࣮ࡍͷը໘ߏ
࣮ࡍͷը໘ߏ• φϏήʔγϣϯόʔ• ηϧͷϥϕϧɾΠϝʔδʢը໘ભҠ͕ͳ͍ɾύʔπʣҎ֎ શ෦ViewController + Xib
MicroViewControllerͷԸܙ• ։ൃɿ×3• 1ViewControllerதͷίʔυɿ~500• ύϑΥʔϚϯε্ͯ͠Δʁ
Thank youʂ