// the find
kudoleh/iOS-Clean-Architecture-MVVM
Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI
A template iOS app demonstrating Clean Architecture with MVVM, built around a movie search feature backed by TMDB. The layering is textbook: Domain owns entities and use cases with zero UIKit imports, Data handles networking and Core Data persistence, Presentation wires ViewModels to Views. Aimed at iOS developers who want a reference implementation they can clone and rename.
The DIContainer pattern is done properly — each scene gets its own container that wires dependencies manually without a third-party DI framework, keeping the dependency graph explicit and debuggable. The same ViewModel powering both a UIKit table view and a SwiftUI list is a genuine demonstration that the pattern works, not just a claim. DTOs are cleanly separated from domain entities with explicit mapping, so the API response shape never leaks into business logic. Unit test coverage hits the right layers: use cases, ViewModels, and the networking stack each have dedicated test targets with real protocol mocking.
The custom Observable<T> binding mechanism is hand-rolled and limited — no backpressure, no error channel, no completion, and by 2024 this is just Combine or async/await with extra steps. The repo is Storyboard-first (one SwiftUI view aside), which is a meaningful friction point for anyone starting a new project today. Travis CI config is present but almost certainly broken — Travis dropped free OSS tiers years ago and the Fastlane setup would need real credentials to actually run. The movie domain is so simple it never stresses the architecture: there's one feature, two network calls, and no concurrent use cases, so the template doesn't show you how the seams hold under real complexity.