Weather is a fully functional app working around android components, architecture and tools for Android development. The app tracks the user's location and returns the relevant weather of the location. Also user can create favorite list and display them on home screen.
This project uses app modularization architecture and built entirely with Kotlin and Jetpack Compose. The weather feature module uses MVVM as software design patter for presentation layer.
- Application entirely written in Kotlin
- Asynchronous processing using Coroutines + Flow
- Uses Hilt for dependency injection
- Uses Room
- Retrofit for network request
Uses Github Actions
Convetion plugins and version katalog are used for sharing build logic between submodules
Uses JUnit4, Espresso, Compose Ui Test among other libraries for unit & instrumented tests.
You need to supply API / client keys for the service the app uses.
Once you obtain the key, you can set them in your ~/local.properties
:
# Get this from OpenWeather
API_KEY=<insert>