I implemented this app by using MVVM pattern, Retrofit2, Dagger Hilt, LiveData, ViewModel, Coroutines, Data Binding...
MVVM facilitates a separation of development of the graphical user interface.
Technologies used:
- Retrofit a REST Client for Android which makes it relatively easy to retrieve and upload JSON (or other structured data) via a REST based webservice.
- Dagger Hilt for dependency injection.
- ViewModel to store and manage UI-related data in a lifecycle conscious way.
- LiveData to handle data in a lifecycle-aware fashion.
- Coroutines help in managing background threads and reduces the need for callbacks.
- Data Binding to declaratively bind UI components in layouts to data sources.
Folders:
- Data defines the data of the application. This is where we fetch the data, either from a remote database using API calls, or from local database.
- DI provides denpendency injection for app
- UI basically communicates with ViewModel, gets the data and presents it. The view basically observes for changes in the data in the ViewModel and updates the UI to display it to the user.
- Utils defines some extentions, constants....
Installation:
- Clone the repository
- This project requires a minimum API level of 21.
Checklist: 1, 2, 3, 4, 6a, 8