Scottish power

Libraries used

  • Retrofit – Retrofit as a REST Client library
  • Gson – Gson converter as a Retrofit response mapping library
  • Hilt – Dependency injection

Android components

  • 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.

Further enhancements

  • 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


View Github