This project contains the codebase for an MVVM iOS application in Swift. It relies on Bond library to support databinding, and IoC with Dip. Also it implements a view-first navigation among other important features such as continuous integration with BuddyBuild.
The structure of the project is as follow:
-
Interfaces 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
- [1. Initial Setup] (makingsensetraining/mobile-pocs#9)
- [2. Continuous integration] (makingsensetraining/mobile-pocs#11)
- [3. Bond as binding library] (makingsensetraining/mobile-pocs#12)
- [4. CoreData as local storage] (makingsensetraining/mobile-pocs#14)
- [5. Rest Client]
- [5.1 Alamofire integration] (makingsensetraining/mobile-pocs#15)
- [5.2 Refactor] (makingsensetraining/mobile-pocs#20)
- [6. Dip as IoC container] (makingsensetraining/mobile-pocs#16)
- [7. NewsAPI integration] (makingsensetraining/mobile-pocs#17)
- [8. Models & Services creation] (makingsensetraining/mobile-pocs#18)
- [9. News feed screen] (makingsensetraining/mobile-pocs#19)