An Android app consuming the Open Weather Map API, built on the MVVM pattern with clean architecture principles and Architecture Components.
Based on the user's location, the app displays the current day's forecast as well as that of the upcoming 5 days. The app's theme changes based on the current weather type(cloudy, rainy, sunny).
- Libraries
- Kotlin - a cross-platform, statically typed, general-purpose programming language with type inference.
- Coroutines - perform background operations.
- Dagger-Hilt - a standard way to incorporate Dagger dependency injection into an Android application
- Retrofit - A type-safe HTTP client for Android.
- Jetpack
- Easy Permisisons - a wrapper library to simplify basic system permissions logic.
- Architecture
- MVVM - Model View ViewModel
- Tests
- Unit Tests (JUnit) - a simple framework to write repeatable tests.
- UI Tests (Espresso) - concise and reliable Android UI testing framework.
- CI/CD
- Github Actions
The Unit Tests here test ViewModel
More tests can be added
- Theme colors generated using the Material Color Tool
- The Forecast endpoint serves data for every 3 hours and not single day(premium feature) as suggested in the provided design