A simple app illustrating some of the latest and greatest Android development principles.
This app uses the TMDB api to fetch a list of movies and shows them in a RecyclerView. If you click on a movie poster, it opens a 'detail' page with an enlarged poster and the movie name. That's about it - that's all the app does. (This is not a real, usable app).
The app is REALLY about demonstrating usage of open source libraries and modern architecture patterns for Android development, such as the following :
- MVVM architecture pattern
- LiveData
- Coroutines
- Navigation Components
- Dagger 2 for Dependency Injection
- Room persistence library
- Coil Image Loading Library
- Retrofit Networking Library
- Lottie for animations
- Mockk for mocking in Unit/UI Tests
and a few others.
This app implements some frequently encountered patterns in Android development
The app caches data received via the API request in a local database (using Room) and uses that data in subsequent app launches if there is no/bad internet connectivity.
In case there is no internet connectivity when the app is launched for the first time, you might encounter the following 'empty' screen :
In case, the connectivity comes back, you can press the reload button and the data is downloaded and displayed.