#ArchSuperSwift
Architectural Superpowers
Jorge D. Ortiz-Fuentes @jdortiz
#ArchSuperSwift
A Canonical Examples Production
#ArchSuperSwift
Agenda
#ArchSuperSwift
Agenda
Superpowers
#ArchSuperSwift
Agenda
Superpowers
Scenarios
#ArchSuperSwift
Agenda
Superpowers
Scenarios
Recap
#ArchSuperSwift
Architecture for YouLess repetition
More reusability
Easier maintenance
Less dependent
More testable
Faster to change
#ArchSuperSwift
Architecture for YouLess repetition
More reusability
Easier maintenance
Less dependent
More testable
Faster to change
=
Super Reusability
Single Responsibility Principle
ViewControllerPresenter
View ModelModel
Single Responsibility Principle
ViewControllerPresenter
View ModelModel
Presentation logic
Single Responsibility Principle
ViewControllerPresenter
View ModelModel
Presentation logic
Data Source
Data Source
Data Source
Single Responsibility Principle
ViewControllerPresenter
View ModelModel
Presentation logic
Business Logic
Data Source
Data Source
Data Source
Super Independence
Dependency Inversion Principle
High Level Low Level
Dependency Inversion Principle
High Level
Dependency Inversion Principle
High Level Abstraction
Dependency Inversion Principle
High Level Abstraction
Dependency Inversion Principle
High Level Abstraction
Low Level
Super Testability
#ArchSuperSwift
Testability
Make dependencies explicit
Make dependency injection easier
Benefit from other principles
#ArchSuperSwift
Recap
Architecture has real, practical benefits
Learn the principles
Learn about design patterns
Apply them gradually
Get your superpowers
too!
@jdortiz #ArchSuperSwift