The technology used:
MVVM Pattern.
Flow & StateFlow to give view the data and notify it when a change occurs.
Dagger-hilt to handle dependency injection.
Co-routines to deal with threads.
Retrofit2 & OkHttp3 to handle apis requests.
Room DataBase to cache the data and display it in case there is no internet
Glide to load images from internet.