{"repo":"kudoleh/iOS-Clean-Architecture-MVVM","free":true,"listed":false,"github":"https://github.com/kudoleh/iOS-Clean-Architecture-MVVM","clone":"git clone https://github.com/kudoleh/iOS-Clean-Architecture-MVVM.git","description":"Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI","language":"Swift","stars":4400,"topics":["clean-architecture","ios-swift","swiftui","mvvm-ios","mvvm-architecture","viewmodel","mvvm","xcode","architecture","viewmodels"],"license":null,"category":"mobile-apps","readme_excerpt":"Template iOS App using Clean Architecture and MVVM iOS Project implemented with Clean Layered 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 Layers Domain Layer = Entities + Use Cases + Repositories Interfaces Data Repositories Layer = Repositories Implementations + API (Network) + Persistence DB Presentation Layer (MVVM) = ViewModels + Views Dependency Direction 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 Clean Architecture https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html Advanced iOS App Architecture https://www.raywenderlich.com/8477-introducing-advanced-ios-app-architecture MVVM Data Binding using Observable without 3rd party libraries Dependency Injection Flow Coordinator Data Transfer Object (DTO) Response Data Caching ViewController Lifecycle Behavior SwiftUI and UIKit view implementations by reusing same ViewModel (at least Xcode 11 required) Error handling examples: in ViewModel, in Networking CI Pipeline (Travis CI + Fastlane) Includes Pagination Unit Tests for Use Cases(Domain Layer), ViewModels(Presentation Layer), NetworkService(Infrastructure Layer) Dark Mode Size Classes and UIStackView in Detail view SwiftUI example, demostration that presentation layer does not change, only UI (at least Xcode 1","default_branch":null,"files":null,"tree":[],"storefront":"/r/kudoleh","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/kudoleh/iOS-Clean-Architecture-MVVM/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}