An app that displays recipes from a network resource. When user selects a recipe, its ingredients and video-guided steps are shown.
- Use Android Architecture Components to implement the MVVM architecture pattern.
- Handle network requests with Retrofit and OkHttp.
- Persist app data with Room.
- Display videos with ExoPlayer.
- Properly initialize and release video assets.
- Create a home screen widget.
- Use Fragments to create a responsive design that works on phones and tablets.
- Make use of Espresso to test aspects of the UI.
- Handle dependency injection with Dagger.
- Room for data persistence.
- Retrofit 2 and OkHttp for networking.
- Gson for parsing JSON.
- Glide for image loading.
- ExoPlayer for streaming videos.
- Timber for logging.
- Dagger 2 for dependency injection.
- Mockito, a mocking framework for Java.
- MockWebServer, a scriptable web server for testing HTTP clients.
- Espresso, a testing framework for Android UI tests.
On landscape mode recipe video takes up the full screen: