Skip to content

Clean Architecture + MVVM + Async + Coordinator Pattern

Notifications You must be signed in to change notification settings

andreaagudo3/Doggies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Doggies - Clean Architecture and MVVM

This simple project probably doesn't need this overengineering, it is just an example of clean architecture and MVVM pattern written in swift. No template was used on this project.

Alt text

Layers

  • Domain Layer = Entities + Use Cases + Repositories Interfaces
  • Data Repositories Layer = Repositories Implementations + API (Network) + Persistence DB
  • Presentation Layer (MVVM) = ViewModels + Views

Dependency Direction

Alt text

Note: Domain Layer should not include anything from other layers(e.g Presentation — UIKit or SwiftUI or Data Layer — Mapping Codable)

Architecture concepts used here

Includes

  • Dark Mode
  • SwiftUI example, demostration that presentation layer does not change, only UI.
  • [SPM] Swift Package Manager is a tool for managing the project dependencies.

Dependencies

To DO:

Improvements

Must

  • Add tests
  • Create DTO objects and map them toDomain().

Recommendations

  • Run the app on iOS 14 or above to see the breeds list with Swift UI. Run it under iOS 14 and see a better design with UIKit.
  • Feel free to change the code so to see the different breeds list designs.

About

Clean Architecture + MVVM + Async + Coordinator Pattern

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published