Sample iOS project implementated clean layered architecture with MVVM
- Domain Layer = Entities + Use Cases + Repositories Interfaces
- Data Repositories Layer = Repositories Implementations + API (Network)
- Presentation Layer (MVVM) = ViewModels + Views
- Clean MVVM Architecture (reference: https://tech.olx.com/clean-architecture-and-mvvm-on-ios-c9d167d9f5b3)
- TDD tests backing all layers (Domain, Data and Presentation)
- Data binding using custom Observable class
- Dependency Injection
- Data Transfer Object (DTO)
- Pagination
- Error handling