- Retrofit – Retrofit as a REST Client library
- Gson – Gson converter as a Retrofit response mapping library
- Hilt – Dependency injection
- RecyclerView – Used to list the Albums.
- Constraint layout – Simple, flat hierarchies in a layout.
- Coroutines – For Asynchronous or non-blocking programming
- Data binding – To bind the data with the UI and to improve the performance, prevent memory leaks and null pointer exceptions.
Android Architecture Components (Android Jetpack)
- ViewModel – Allows data to survive configuration changes such as screen rotations.
- LiveData – Lifecycle-aware data holder class to respects the lifecycle Fragments.
- AndroidX – Complete project implemented using AndroidX libraries.
- Room database for data persistence.
- The application is based on MVVM design pattern.
- Handle configuration changes
- Api error handling
- Progress bar to show loading while fetching the data from the API
- Improving the data source fetch using Paging
- Furthermore cosmetics and refactoring is an endless thought.
- Navigation component