Slide 1

Slide 1 text

AppArchitecture sample @yoshikuni_kato 1

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Past Architecture Problems • 2 tasks in Coordinator • View Transition • Dependency Injection • hard to test • cannot replace with stub objects 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Architecture 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Workflow - when make view • make VC & VM • make function at ViewFactory • (update services when necessary) 7

Slide 8

Slide 8 text

Workflow - when make service • make service • update components 8

Slide 9

Slide 9 text

Workflow - When make transition • update coordinator 9

Slide 10

Slide 10 text

Result • Coordinator: only view transition • Factory & Components: Dependency Injection 10