Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principples altogether.
Protocol oriented development has been followed.
Project is containing multiple Coordinators to handle specific navigation flow ,
- DashboardCoordinator (handiling flow to Dashboard)
- CharactersListCoordinator (handling flow to Characters list -> DetaiVC)
- EpisodesListCoordinator (handling flow to Episodes list -> DetaiVC)
- QuotesListCoordinator (handling flow to Quotes list)
All coordinators holding an Interactor for specific required protocols to call needed Web-API
Implemented CI/CD Pipeline for both branches (main & master). (note: archieve script has not been written due to not having enrolled myself into developer program)
in .gitlab-ci.yml file archive script is not written but can have a look on separate file- archive.sh
Project contains Cocoapods dependency manager to handle dependencies like,
For TDD approach written test cases for ViewModels (couldnn’t affoard much time to it), so code coverage will not be that good. ?
Most of the screen in app, supports Dark and Light theme
- More tests cases to improve code coverage
- Removing storyboards