An Android application that integrates the Android Jetpack components to help keep track of items needed when shopping.
The architecture of this application relies and complies with the following points below:
- A single-activity architecture, using the Navigation Components to manage fragment operations.
- Pattern Model-View-ViewModel(MVVM) which facilitates a separation of development of the graphical user interface.
- Android architecture components which help to keep the application robust, testable, and maintainable.
- ViewModel to store and manage UI-related data in a lifecycle conscious way.
- LiveData to handle data in a lifecycle-aware fashion.
- Navigation Component to handle all navigations and also passing of data between destinations.
- Timber - a logger with a small, extensible API which provides utility on top of Android's normal Log class.
- Kotlin Coroutines for managing background threads and reducing needs for callbacks.
- Data Binding to declaratively bind UI components in layouts to data sources.
- Room persistence library which provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- JUnit - a simple framework to write repeatable tests.
Shopping list requires a minimum API level of 19. Clone the repository and run.
All contributions are welcome! Simply make a PR.