This project contains the codebase for an MVVM iOS application in Swift. It relies on RxSwift library to support data-bindings, and IoC with Dip. Also it implements a view-first navigation.
The structure of the project is as follow:
-
UI Layer
- iOS UI (Storyboards, Views/ViewControllers, and other UI components)
-
Application Layer
- ViewModels, CompositionRoot for Dip framework, and non platform-specific components
-
Domain Layer
- Services and models
-
Infraestructure Layer
- Network, Persistence, Extensions and Utils classes
-
Pods project
- Autogenerated project via CocoaPods for external libraries integration