A simple android weather app demonstrating Jetpack Compose. Data is provided by OpenWeatherMap API
- Unidirectional data flow (UDF), where state flows down composables and events flow up from composables.
- A single-activity architecture, using the Navigation-Compose dependency to manage navigation between composables.
- Pattern Model-View-ViewModel (MVVM) facilitating separation of development of the graphical user interface.
- Modular app architecture allows being developed features in isolation, independently from other features.
- app - the main entry point of the application.
- domain - encapsulates business logic and improves testability of the data module.
- data - contains entities, repository, APIs and data manipulation util code.
- Minimum SDK 24
- Target SDK 34
- Compile SDK 34
- Kotlin
- Android Architecture Components (ViewModel, Navigation Component, ConstraintLayout)
- DataStore preferences local storage
- Coil image loading library for Android Jetpack Compose support
- Koin for dependency injection.
- Jetpack Compose libraries.
- Accompanist utils for Jetpack Compose.
- Ktor for fetching data from the OpenWeatherMap API.
- Timber for logging events.