Skip to content

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

Notifications You must be signed in to change notification settings

jmindeveloper/iOS-Clean-Architecture-MVVM

Repository files navigation

Template iOS App using Clean Architecture and MVVM

iOS Project implemented with Clean Architecture and MVVM. (Can be used as Template project by replacing item name “Movie”). 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

Presentation Layer -> Domain Layer <- Data Repositories Layer

Architecture concepts used here

Includes

  • Unit Tests for Use Cases(Domain Layer), ViewModels(Presentation Layer), NetworkService(Infrastructure Layer)
  • UI test with XCUITests
  • Size Classes in Detail view
  • SwiftUI example, demostration that presentation layer does not change, only UI (at least Xcode 11 required)

Requirements

  • Xcode Version 11.2.1+ Swift 5.0+

How to use app:

To search a movie, write a name of a movie inside searchbar and hit search button. There are two network calls: request movies and request poster images. Every successful search query is stored persistently.

About

Template iOS app using Clean Architecture and MVVM. 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

  • Swift 99.9%
  • Ruby 0.1%