This is not single size fit for all solution, intention is to show how elegantly you can architect a project where:
- Error handling is a beauty not beast
- Offline mode supported
- Database can be abstracted
- You can do 100 of data model by keeping everything abstracted
- Protocol and Generics are God
- DataService - Abstracted system for application with Network layer and Database
- RealDataService- Adopted DataSetvice and Database level work
- GoogleNewsAPI - Hnadle all Google News API call by adopting API Service
- Application Model - Serializable adopted model for application layer
- Database Model - Only for Database, application won't use it
- [] TableView Stretchy Header - Implement table view custom header as component
- [] CollectionView Stretchy Header - Collection view custom header as component
- [] Feature Flag - Implement Feature Flag system