Instant Weather- 1 min
An Android weather application implemented using the MVVM pattern, Retrofit2, LiveData, ViewModel, Coroutines, Room, Navigation Components, Data Binding and some other libraries from the Android Jetpack.
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.s
- 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.
- 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.
- 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.
- Algolia Search API - Android to quickly and seamlessly implement search within the application.
- Material Design
- Coroutines used to manage the local storage i.e.
writing to and reading from the database. Coroutines help in managing background threads and reduces the need 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.
- Paging Library helps you load and display small chunks of data at a time.
- Android KTX which helps to write more concise, idiomatic Kotlin code.
- Preferences to create interactive settings screens.