andreaagudo3 / Doggies

Clean Architecture + MVVM + Async + Coordinator Pattern

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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


Languages

Language:Swift 99.2%Language:Objective-C 0.8%