App Architecture Sample

Ac3c0c2b458cdf0fe6a6e98a46e34322?s=47 Yoshikuni Kato
August 27, 2017
57

App Architecture Sample

Ac3c0c2b458cdf0fe6a6e98a46e34322?s=128

Yoshikuni Kato

August 27, 2017
Tweet

Transcript

  1. AppArchitecture sample @yoshikuni_kato 1

  2. Past Architecture • MVVM-C • ը໘ભҠͷ؅ཧͱMVVM 1 • Coordinatorύλʔϯͷ࣮ફ 2

    2 https://speakerdeck.com/yoching/coordinatorpatanfalseshi-jian 1 https://speakerdeck.com/yoching/hua-mian-qian-yi-falseguan-li-tomvvm 2
  3. Past Architecture Problems • 2 tasks in Coordinator • View

    Transition • Dependency Injection • hard to test • cannot replace with stub objects 3
  4. Inspirations • Minimizing Decision Fatigue to Improve Team Productivity 3

    • @try! swift 2017 • AppArchitecture(Application/UI/Components) • ґଘੑͷ஫ೖʢDependency Injectionʣ4 • Deep Linking at Kickstarter 5 • @SwiftTalk • "Routing" logics 5 https://talk.objc.io/episodes/S01E49-deep-linking-at-kickstarter 4 https://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E6%B3%A8%E5%85%A5 3 https://www.slideshare.net/DerekLee/minimizing-decision-fatigue-to-improve-team-productivity 4
  5. Architecture 5

  6. Sample Code • yoching/iOSAppArchitectureSample 6 6 https://github.com/yoching/iOSAppArchitectureSample 6

  7. Workflow - when make view • make VC & VM

    • make function at ViewFactory • (update services when necessary) 7
  8. Workflow - when make service • make service • update

    components 8
  9. Workflow - When make transition • update coordinator 9

  10. Result • Coordinator: only view transition • Factory & Components:

    Dependency Injection 10