Skip to content

Template iOS app using Clean Architecture, MVVM and Views written in code. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI

Notifications You must be signed in to change notification settings

kudoleh/iOS-Clean-Architecture-MVVM-Views-In-Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Template iOS App using Clean Architecture and MVVM with Views written in Code

iOS Project implemented with Clean Layered Architecture and MVVM. (Can be used as Template project by replacing item name “Repository”). More information in medium post: Medium Post about Clean Architecture + MVVM

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

  • Unit Tests for Use Cases(Domain Layer), ViewModels(Presentation Layer), NetworkService(Infrastructure Layer)
  • Dark Mode
  • SwiftUI example, demostration that presentation layer does not change, only UI (at least Xcode 11 required)

Networking

If you would like to use Networking from this example project as repo I made it availabe here

Requirements

  • Xcode Version 11.2.1+ Min iOS version 13 Swift 5.0+

How to use app

Tap on repository cell to expand cell and see its details.

Demo.mp4

About

Template iOS app using Clean Architecture, MVVM and Views written in code. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages