SurvayApp
App is sample to list of survay using REST api call.
Design Pattern
VIPER (View -> Interactor -> Presenter -> Entity -> Router)
Tool used to create modules
generamba: -> To generate VIPER architecture (https://github.com/strongself/Generamba)
Run project steps
To check this app, please move to project folder where podfile located, then install pods using 'pod install'
Create New Module
- Go to project directory
- run 'generamba gen MODULE_NAME viper'
Above will create new Module with all required setup as per template defined in project.
- Now run Scripts/link_module.sh MODULE_NAME
Above will make initialization entry for Module, And will sort project with folder naming
Third party libraries used
- Snapkit: Used for autolayout constraints
- SDWebImage: Used for async image displayed
- Swinject: Used for DI purpose
- Quick / Nimble: Used for unit testing
- MBProgressHud: Used for api loader
Note
Unit test written for network layer and JSON parsing using mock JSON in app.
To Improve
- UI test case
- Token expiry logic, not implemented since don't know no proper error code in api which define that token is expired.
- Username / Password hardocded, Can have some UI to input