Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
#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
Superpowers
#ArchSuperSwift
Architecture for You
Less repetition
More reusability
Easier maintenance
Less dependent
More testable
Fast...
#ArchSuperSwift
Architecture for You
Less repetition
More reusability
Easier maintenance
Less dependent
More testable
Fast...
Pride
Super
Reusability
Single Responsibility
Principle
View
Controller

Presenter

View Model
Model
Single Responsibility
Principle
View
Controller

Presenter

View Model
Model
Presentation
logic
Single Responsibility
Principle
View
Controller

Presenter

View Model
Model
Presentation
logic
Data
Source
Data
Source
Da...
Single Responsibility
Principle
View
Controller

Presenter

View Model
Model
Presentation
logic
Business
Logic
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
Scenarios
1
Reuse Logic
2
Replace
Backend
3
Test
Takeaways
#ArchSuperSwift
Recap
Architecture has real, practical benefits
Learn the principles
Learn about design patterns
Apply the...
Get your
superpowers
too!
Thank
You!
@jdortiz
#ArchSuperSwift
Architectural superpowers
Architectural superpowers
Architectural superpowers
Architectural superpowers
Architectural superpowers
Upcoming SlideShare
Loading in …5
×

Architectural superpowers

208 views

Published on

We usually hear about intangible or difficult to measure benefits of implementing a good architecture. I would like to prove to you that the benefits are far more mundane. In this talk I will showcase practical, real world examples of how a good architecture for your application makes your life easier. Using my interpretation of the Clean Architecture for iOS in Swift, I will show how it helps to do things such as reusing an existing use case in another view controller, or using a different backend, in case we are forced to do so. I will also cover briefly how this architecture helps with testability.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Architectural superpowers

  1. 1. #ArchSuperSwift Architectural Superpowers Jorge D. Ortiz-Fuentes @jdortiz
  2. 2. #ArchSuperSwift A Canonical Examples Production
  3. 3. #ArchSuperSwift Agenda
  4. 4. #ArchSuperSwift Agenda Superpowers
  5. 5. #ArchSuperSwift Agenda Superpowers Scenarios
  6. 6. #ArchSuperSwift Agenda Superpowers Scenarios Recap
  7. 7. Superpowers
  8. 8. #ArchSuperSwift Architecture for You Less repetition More reusability Easier maintenance Less dependent More testable Faster to change
  9. 9. #ArchSuperSwift Architecture for You Less repetition More reusability Easier maintenance Less dependent More testable Faster to change =
  10. 10. Pride
  11. 11. Super Reusability
  12. 12. Single Responsibility Principle View Controller
 Presenter
 View Model Model
  13. 13. Single Responsibility Principle View Controller
 Presenter
 View Model Model Presentation logic
  14. 14. Single Responsibility Principle View Controller
 Presenter
 View Model Model Presentation logic Data Source Data Source Data Source
  15. 15. Single Responsibility Principle View Controller
 Presenter
 View Model Model Presentation logic Business Logic Data Source Data Source Data Source
  16. 16. Super Independence
  17. 17. Dependency Inversion Principle High Level Low Level
  18. 18. Dependency Inversion Principle High Level
  19. 19. Dependency Inversion Principle High Level Abstraction
  20. 20. Dependency Inversion Principle High Level Abstraction
  21. 21. Dependency Inversion Principle High Level Abstraction Low Level
  22. 22. Super Testability
  23. 23. #ArchSuperSwift Testability Make dependencies explicit Make dependency injection easier Benefit from other principles
  24. 24. Scenarios
  25. 25. 1
  26. 26. Reuse Logic
  27. 27. 2
  28. 28. Replace Backend
  29. 29. 3
  30. 30. Test
  31. 31. Takeaways
  32. 32. #ArchSuperSwift Recap Architecture has real, practical benefits Learn the principles Learn about design patterns Apply them gradually
  33. 33. Get your superpowers too!
  34. 34. Thank You!
  35. 35. @jdortiz #ArchSuperSwift

×