App uses Food2Fork API as a backend service, following API requests are used:
API Request | Method | Sample url |
---|---|---|
Top trending recipes | GET | http://food2fork.com/api/searchkey={key}&sort=t&count=10 |
Search recipes | GET | http://food2fork.com/api/search?key={key}&sort=r&q={searchKeyword} |
Get recipe detail | GET | http://food2fork.com/api/get?key={key}&rId={recipeId} |
App uses a similar concept of MVVM + Coordinators pattern:
- Each
ViewController
has aDataProvider
which provides ready-to-use data for theViewController
. ViewController
acts as a dummy UI layer and delegates its actions toCoordinator
Coordinator
instantiates view controllers, injects dependencies, handles push / present navigations.
Some basic unit tests are implemented to cover:
- Recipe url tests
- Recipe API resource tests
- Recipe API service tests
Some basic UI tests are implemented to cover:
- Show instructions web page
- Show orginal web page
- Search recipes with results
- Search recipes without results