Upgrade to Pro — share decks privately, control downloads, hide ads and more …

学生スタートアップがマイクロビューコントローラを導入した話

nade
February 15, 2019

 学生スタートアップがマイクロビューコントローラを導入した話

Mbile Act Osaka #8

nade

February 15, 2019
Tweet

More Decks by nade

Other Decks in Programming

Transcript

  1. ֶੜελʔτΞοϓ͕

    ϚΠΫϩϏϡʔίϯτϩʔϥ

    Λಋೖͨ͠࿩
    nade( @kazuma_nagano )

    Mobile Act OSAKA #8

    View full-size slide

  2. Kazuma Nagano (nade)

    @kazuma_nagano

    NAIST M2
    TIMEPACK Inc. CTO

    View full-size slide

  3. ຊ೔ͷςʔϚ
    ։ൃεϐʔυͱϦϑΝΫλΛཱ྆͢Δ

    ʹ͸ϚΠΫϩΞʔΩςΫνϟઃܭ

    ׂ͕ͱྑ͔ͬͨ

    View full-size slide

  4. ͳͥಋೖʹ͍͔ͨͬͨʁ

    View full-size slide

  5. ։ൃϝϯόʔ
    ΅͘ɿiOSνϣοτσΩϧ ʢ5೥໨ʣ
    CEOɿiOS UI ΠδΕΔ
    σβΠφɿϓϩάϥϛϯάॳֶऀ

    View full-size slide

  6. എܠ
    • ͱʹ͔͘εϐʔυײ͕ཉ͍͠ʢDemoDay·Ͱʹ..)
    • ֶۀ͕͋ΔͷͰجຊ͸ඇಉظ࡞ۀ
    • εΫϥοϓ & Ϗϧυ

    View full-size slide

  7. ։ൃࢦ਑
    • ͱʹ͔͘εϐʔυײ͕ཉ͍͠ʢDemoDay·Ͱʹ..)
    • ֶۀ͕͋ΔͷͰجຊ͸ඇಉظ࡞ۀ
    • εΫϥοϓ & Ϗϧυ
    ϝΠϯϩδοΫɿ΅͘
    UIͱ෦෼ػೳɿCEO + σβΠφ

    View full-size slide

  8. σ

    β

    Π

    φ


    $

    &

    0



    ϝΠϯϩδοΫ

    ৐ͤΔͥʂʂ

    ϨϏϡʔ΋͢Δͥ
    ։ൃͷ༷ࢠ
    6*ͱ؆୯ͳػೳ

    ࡞Δͥʂʂ

    View full-size slide

  9. τοϓը໘ͷ༷ࢠ͕ 

    ͦΖͦΖઃܭɽɽ
    ਺೔ޙɽɽ
    ৽ػೳͱϏϡʔ଍ͥ͢ʂ

    View full-size slide

  10. τοϓը໘ͷ༷ࢠ͕ 

    ͦΖͦΖઃܭɽɽ
    ਺೔ޙɽɽ
    ৽ػೳͱϏϡʔ଍ͥ͢ʂ
    େن໛ͳϦϑΝΫλϦϯά

    View full-size slide

  11. શ෦ڭ͖͑Εͳ͍ɽɽ
    ͞Βʹ਺೔ޙɽɽ Μʁ͜ͷઃܭͰ

    Ͳ͏΍ͬͯػೳ଍͢ͷʁ
    7JFX.PEFMͬͯԿʂʁ

    View full-size slide

  12. શ෦ڭ͖͑Εͳ͍ɽɽ
    ͞Βʹ਺೔ޙɽɽ Μʁ͜ͷઃܭͰ

    Ͳ͏΍ͬͯػೳ଍͢ͷʁ
    7JFX.PEFMͬͯԿʂʁ
    w 6*Λ௥Ճͮ͠Β͘ͳͬͯ͘Δ
    w ษڧڭҭίετ
    w ഭΓདྷΔకΊ੾Γɽɽ

    View full-size slide

  13. ޷͖ʹ͍͍ͭͬͯ͘Αʂ

    ΋͏͋ͱͰશ෦

    ͓Ε͕௚͢Θɽɽ
    ࠷ऴతʹɽɽ
    ʁɹʁ

    View full-size slide

  14. ͜͏ͯ͠Fat View Controllerͷ

    ҋʹତ͍ͪͯ͘ͷͩͬͨ

    View full-size slide

  15. ͳʹ͕ྑ͘ͳ͔͔ͬͨʁ!
    • ΞʔΩςΫνϟΛపఈ͢Δʹ͸ֶशίετ͕͔͔Δ
    • ֶश͠ͳ͕ΒίʔυΛॻ͘৔߹ɺεϐʔυ͕མͪΔ
    • Ϋϥεؒͷ݁߹͕ਂ͘ͳΔͨΊϦϑΝΫλ͕େม

    View full-size slide

  16. ͱ͸͍͑Ϛγͳ΍Γํ͸͋Δ͸ͣ

    View full-size slide

  17. େֶͰڭΘͬͨ͜ͱɽɽ
    !☁

    View full-size slide

  18. ڊਓͷݞͷ্ʹͷΔʂ
    !#

    View full-size slide

  19. • ࡢ೥ͷiOSDCͰ @tarunon͞Μ͕ൃද(ϕετεϐʔΧʔ)
    • ϑϨʔϜϫʔΫ + Sample͕ެ։
    https://github.com/mercari/Mew
    • UIύʔπͦΕͧΕΛViewControllerͰ࡞ͬͯ͠·͏ΞʔΩς
    Ϋνϟ
    MicroViewController
    ϝ̋ΧϦࣾͷ

    View full-size slide

  20. ࣮૷ͷઆ໌Λͪΐͬͱ͚ͩ

    ৄ͘͠͸Github΁

    View full-size slide

  21. ViewControllerؒͷInterfaceΛϓϩτίϧͰ౷Ұ
    • Instantiatableɿinit
    • Injectableɿupdate
    • Interactableɿdelegate
    MicroViewController
    ϝ̋ΧϦࣾͷ

    View full-size slide

  22. ContainerViewΛ༻͍࣮ͯ૷
    MicroViewController
    ϝ̋ΧϦࣾͷ

    View full-size slide

  23. MicroViewControllerΛ࢖͏ͱ
    • ϥΠϑαΠΫϧɾը໘ભҠίʔυ͕෼ׂ͞ΕΔ
    • ϨΠΞ΢τ͕࣌ؒ୹ॖ͠ɺύϑΥʔϚϯε͕

    ͕͋Δ
    • ΫϩεΞʔΩςΫνϟͰ࣮૷Մೳ

    View full-size slide

  24. ΫϩεΞʔΩςΫνϟ
    • ը໘ؒͷ݁߹͕े෼ʹૄͰ͋Ε͹

    த਎͕ԿͰͰ͖ͯͯ΋Α͍
    MVVM
    MVVM
    Clean

    Archi
    MVC RIBs
    Clean

    Archi
    MVC RIBs MVVM MVP MVC

    View full-size slide

  25. ΫϩεΞʔΩςΫνϟ
    • ը໘ؒͷ݁߹͕े෼ʹૄͰ͋Ε͹

    த਎͕ԿͰͰ͖ͯͯ΋Α͍
    • Fat ViewControllerͰ΋ྑ͍ MVVM
    MVVM
    Clean

    Archi
    MVC RIBs
    Clean

    Archi
    MVC RIBs MVVM MVP MVC

    View full-size slide

  26. ֶੜελʔτΞοϓ͕
    MicroViewControllerΛ࢖͏ͱ
    • શͯͷը໘Λ͖Ε͍ͳίʔυͰ࡞Βͳͯ͘΋

    Α͘ͳΔ
    • ViewController͕ଠΓͮΒ͘ͳΔ
    • ଠͬͨը໘͔ΒϦϑΝΫλΛਐΊ͍͚ͯΔ
    • ϦϑΝΫλͷӨڹൣғ͕ڱ·ΓΊͬͪΌָʹͳΔ

    View full-size slide

  27. ࣮ࡍͷը໘ߏ੒

    View full-size slide

  28. ࣮ࡍͷը໘ߏ੒
    • φϏήʔγϣϯόʔ
    • ηϧ಺ͷϥϕϧɾΠϝʔδ
    ʢը໘ભҠ͕ͳ͍ɾύʔπʣҎ֎

    શ෦ViewController + Xib

    View full-size slide

  29. MicroViewControllerͷԸܙ
    • ։ൃ଎౓ɿ×3
    • 1ViewControllerதͷίʔυɿ~500
    • ύϑΥʔϚϯε΋޲্ͯ͠Δʁ

    View full-size slide