WhatWeath is a small weather Android app focused on Jetpack Compose using OpenWeatherMap API. The app uses Clean Architecture, SOLID principles and MVVM with repository pattern. Single Activity, no Fragments.
The app shows a main screen with a bottom navigation bar and drawer. Bottom bar has 3 screens. First for current and next 24 hours weather, second for next days weather, and third to search for a location. The drawer shows a list of all the entries saved, showing a small peak of the current weather, and from which user can select the location to view in detail. From the top app bar is possible to change the units of measurement (standard, metric and imperial).
Current and Search screens are similar and show a bottomsheet with current and next hours weather. Week screen is a list of the current and next 7 days weather. These items are expandable to show the details.
The Current weather is scheduled to update every hour at least. And 24 hours and 7 days on demand, when the user navigates to Current or Week screens.
Add your OpenWeatherMapp API Key in gradle.properties.
API_KEY="your_api_key"
- Kotlin based, Flows and Coroutines for asynchronous work.
-
Android Jetpack:
-Compose for building the UI.
-Hilt for dependency injection.
-ViewModel for UI state holder and lifecycle aware.
-Room for local persistence.
-WorkManager for background asynchronous scheduled tasks.
-Datastore for settings persistence.
-Navigation for handling navigation within the app.
-
Retrofit for consuming REST API.
-
Moshi for JSON parsing.
-
NetworkResponseAdapter for handling API responses.