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

コスパの良いiOS開発を求めて

yutu
August 09, 2017

 コスパの良いiOS開発を求めて

こんなチームならRedux + Passive MVP + Clean Arch(Essence) が今のところ筋が良いのでは?って試行錯誤して実践している話

yutu

August 09, 2017
Tweet

More Decks by yutu

Other Decks in Programming

Transcript

  1. Agenda • ͳͥ๻ΒͷνʔϜͰ͸Redux + Passive MVP + Clean Arch(Essence) ͔

    • Redux + Passive MVP + Clean Arch(Essence) ͕๻Βͷνʔ ϜʹԿΛ΋ͨΒ͍ͯ͠Δ͔ • Redux + Passive MVP + Clean Arch(Essence) Λࢧ͑Δٕज़ • ·ͱΊ
  2. Producer ݩRailsΤϯδχΞ ύογϣϯ͍͢͝ Engineer A αʔόʔڧ͍ Webϑϩϯτڧ͍ Πϯϑϥڧ͍ DDDಡॻձͱ͔΍Δਓ Engineer

    B ৽ଔ αʔόʔڧ͍ Webϑϩϯτڧ͍ σβΠϯڧ͍ Designer ݩΞϓϦΤϯδχΞ ͔ͩΒΊͬͪΌ΍Γ΍͍͢ ͓΋Ζ͍اը
  3. Producer ݩRailsΤϯδχΞ ύογϣϯ͍͢͝ Engineer A αʔόʔڧ͍ Webϑϩϯτڧ͍ Πϯϑϥڧ͍ DDDಡॻձͱ͔΍Δਓ Engineer

    B ৽ଔ αʔόʔڧ͍ Webϑϩϯτڧ͍ σβΠϯڧ͍ Designer ݩΞϓϦΤϯδχΞ ͔ͩΒΊͬͪΌ΍Γ΍͍͢ ͓΋Ζ͍اը ΞϓϦΤϯδχΞ ͕͍ͳ͍ʂ
  4. Producer ݩRailsΤϯδχΞ ύογϣϯ͍͢͝ Engineer A αʔόʔڧ͍ Webϑϩϯτڧ͍ Πϯϑϥڧ͍ DDDಡॻձͱ͔΍Δਓ Engineer

    B ৽ଔ αʔόʔڧ͍ Webϑϩϯτڧ͍ σβΠϯڧ͍ Designer ݩΞϓϦΤϯδχΞ ͔ͩΒΊͬͪΌ΍Γ΍͍͢ ͓΋Ζ͍اը
  5. Producer ݩRailsΤϯδχΞ ύογϣϯ͍͢͝ Engineer A αʔόʔڧ͍ Webϑϩϯτڧ͍ Πϯϑϥڧ͍ DDDಡॻձͱ͔΍Δਓ Engineer

    B ৽ଔ αʔόʔڧ͍ Webϑϩϯτڧ͍ σβΠϯڧ͍ Designer ݩΞϓϦΤϯδχΞ ͔ͩΒΊͬͪΌ΍Γ΍͍͢ ͓΋Ζ͍اը Զ iOS ڧ͍ αʔόʔͪΐͬͱڧ͍ Ϟς͍ͨ
  6. ͜ͷνʔϜͷڧΈ • ࠷΋਎ۙͰ͋Δࣗ෼ͷෆΛղܾ͍ͨ͠ਓͨͪͷू·Γ • શһΤϯδχΞ or ΤϯδχΞΛܦݧ͍ͯ͠Δ • Webʹ໌Δ͍ •

    DDDΛ࣮ફ͍ͨ͠ͱࢥͬͯΔ • ଞͷϓϥοτϑΥʔϜʹखΛग़͍ͨ͠ҙཉຬʑʢEngineer A ΋ Engineer B΋iOS΍Γ͍ͨͱࢥͬͯΔʣ
  7. ๻͕͜ͷνʔϜͰ΍Γ͍ͨ͜ͱ • ΞΠσΟΞΛߴ଎͔ͭߴ඼࣭ʹ࣮ݱɺͦͯ͠ϦϦʔε͍ͨ͠ • iOSΞϓϦ։ൃͷઙ͍νʔϜϝϯόʔʹͱͬͯग़དྷΔݶΓෑ ډͷ௿͍΋ͷʹ͍ͨ͠ • iOS ͷ Redux

    ࣮૷ʹڵຯ͕͋ͬͨʢͳΜ͔৽͍͜͠ͱ΍Γ ͍ͨʣ • ihara ʹΞϯαʔιϯάΛॻ͖͔ͨͬͨ (https://tech.recruit- mp.co.jp/mobile/post-12398/)
  8. ͜ͷνʔϜͷڧΈ • ࠷΋਎ۙͰ͋Δࣗ෼ͷෆΛղܾ͍ͨ͠ਓͨͪͷू·Γ • શһΤϯδχΞ or ΤϯδχΞΛܦݧ͍ͯ͠Δ • Webʹ໌Δ͍ •

    DDDΛ࣮ફ͍ͨ͠ͱࢥͬͯΔ • ଞͷϓϥοτϑΥʔϜʹखΛग़͍ͨ͠ҙཉຬʑʢEngineer A ΋ Engineer B΋iOS΍Γ͍ͨͱࢥͬͯΔʣ
  9. ͜ͷνʔϜͷڧΈ • ࠷΋਎ۙͰ͋Δࣗ෼ͷෆΛղܾ͍ͨ͠ਓͨͪͷू·Γ • શһΤϯδχΞ or ΤϯδχΞΛܦݧ͍ͯ͠Δ • Webʹ໌Δ͍ •

    DDDΛ࣮ફ͍ͨ͠ͱࢥͬͯΔ • ଞͷϓϥοτϑΥʔϜʹखΛग़͍ͨ͠ҙཉຬʑʢEngineer A ΋ Engineer B΋iOS΍Γ͍ͨͱࢥͬͯΔʣ
  10. Why Passive MVP? • ϞόΠϧΞϓϦʹ͓͚Δ View ͸ͻͱ͜ͱͰ·ͱΊΒΕͳ ͍͙Β͍ෳࡶͰ೉͍͠ • UIKit

    ಠࣗͷ͜ͱʢIBͱ͔ಛʹʣ • Ξχϝʔγϣϯͱ͔ • DIͲ͏͢ΜͶΜͱ͔ • View Controller ͬͯͳΜ΍ͶΜͱ͔
  11. Why Passive MVP? • ͨͩͰ͑͞೉͍͠Ϗϡʔͷ࣮૷ʹ Redux ͩͱ͔ݻ༗ͷٕ ज़Λॻ͖ͨ͘ͳ͔ͬͨʢData Binding ͩͱͯ͠΋ͦ͏ʣ

    • Ͱ΋ iOS ॳ৺ऀʹͱͬͯɺ΍Γ΍͍͢ͷ͸΍ͬͺΓ Ϗϡʔ • Ϗϡʔʹ೉͍͜͠ͱΛॻ͔ͳ͍͜ͱͰ Engineer Aɺ Engineer BɺDesigner΋खΛ෇͚ΒΕΔΑ͏ʹ͔ͨͬ͠ ͨ
  12. Producer ݩRailsΤϯδχΞ ύογϣϯ͍͢͝ Engineer A αʔόʔڧ͍ Webϑϩϯτڧ͍ Πϯϑϥڧ͍ DDDಡॻձͱ͔΍Δਓ Engineer

    B ৽ଔ αʔόʔڧ͍ Webϑϩϯτڧ͍ σβΠϯڧ͍ Designer ݩΞϓϦΤϯδχΞ ͓΋Ζ͍اը Զ iOS ڧ͍ αʔόʔͪΐͬͱڧ͍
  13. Producer ݩRailsΤϯδχΞ ύογϣϯ͍͢͝ Engineer A αʔόʔڧ͍ Webϑϩϯτڧ͍ Πϯϑϥڧ͍ DDDಡॻձͱ͔΍Δਓ Engineer

    B ৽ଔ αʔόʔڧ͍ Webϑϩϯτڧ͍ σβΠϯڧ͍ Designer ݩΞϓϦΤϯδχΞ ͓΋Ζ͍اը Զ iOS ڧ͍ αʔόʔͪΐͬͱڧ͍ ͓લͩʔʂʂ
  14. Producer ݩRailsΤϯδχΞ Engineer A αʔόʔڧ͍ Webϑϩϯτڧ͍ Πϯϑϥڧ͍ DDDಡॻձͱ͔΍Δਓ Engineer B

    ৽ଔ αʔόʔڧ͍ Webϑϩϯτڧ͍ σβΠϯڧ͍ Designer ݩΞϓϦΤϯδχΞ ͓΋Ζ͍اը Զ iOS ڧ͍ αʔόʔͪΐͬͱڧ͍