https://github.com/public-value-tech/pub-android-weather-sample
An modern android weather sample app with Jetpack Compose which uses the Bright Sky API to get data of the German Meteorological Service - DWD.
https://github.com/public-value-tech/pub-android-weather-sample
android app brightsky compose datastore dwd-weather hilt kotlin lottie moshi retrofit weather weather-app
Last synced: 4 months ago
JSON representation
An modern android weather sample app with Jetpack Compose which uses the Bright Sky API to get data of the German Meteorological Service - DWD.
- Host: GitHub
- URL: https://github.com/public-value-tech/pub-android-weather-sample
- Owner: public-value-tech
- License: mit
- Created: 2024-03-11T07:59:46.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-03T11:05:59.000Z (about 2 years ago)
- Last Synced: 2024-04-03T12:26:58.904Z (about 2 years ago)
- Topics: android, app, brightsky, compose, datastore, dwd-weather, hilt, kotlin, lottie, moshi, retrofit, weather, weather-app
- Language: Kotlin
- Homepage: https://github.com/public-value-tech/pub-android-weather-sample
- Size: 1.89 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Android Weather Sample App
---
#### An android weather sample app with [Jetpack Compose](https://developer.android.com/jetpack/compose?gclid=CjwKCAiApuCrBhAuEiwA8VJ6Jv6a4ODF3hlsKL1xSl8aBWfprO7tOZ-vFEOYSQh0lT7d1XHemHpnExoCnfIQAvD_BwE&gclsrc=aw.ds) which uses the [Bright Sky API](https://brightsky.dev/) to get data of the [German Meteorological Service - DWD](https://www.dwd.de/EN/ourservices/opendata/opendata.html).
> [!NOTE]
> Only locations inside germany are supported for now.
## Screenshots
## Features
Current temperature, Max temperature, Min temperature, Current weather state, Animated weather icons, Precipitation volume, Precipitation risk, Relative Humidity, Wind speed, Wind direction, Dew point, Visibility, Solar irradiation, Sunshine duration, Pressure, Cloud cover, 10 day forecast, Hourly forecast, Auto completion for locations, Set location via device location/gps, Switch between designs, Multiple languages
## Build with
- [Hilt](https://developer.android.com/training/dependency-injection/hilt-android)
- [Kotlin Flows](https://kotlinlang.org/docs/reference/coroutines/flow.html)
- [Material Design](https://m2.material.io/)
- [Multiple language support (en, de)](https://developer.android.com/training/basics/supporting-devices/languages)
- [Jetpack Compose](https://developer.android.com/jetpack/compose?)
- [Datastore](https://developer.android.com/topic/libraries/architecture/datastore)
- [Retrofit & OkHttp](https://github.com/square/retrofit)
- [Moshi](https://github.com/square/moshi)
- [Lottie](https://github.com/airbnb/lottie-android)
- [brightsky-API](https://brightsky.dev/)
## Principles, Pattern & Architecture
- [Layer architecture](https://developer.android.com/topic/architecture#common-principles)
- [Repository Pattern](https://developer.android.com/codelabs/basic-android-kotlin-training-repository-pattern#0)
- [MVVM / Clean Architecture](https://medium.com/@ami0275/mvvm-clean-architecture-pattern-in-android-with-use-cases-eff7edc2ef76)
## Setup
To build the app
a [google-services.json](https://support.google.com/firebase/answer/7015592?hl=en#android&zippy=%2Cin-this-article) file needs to
be added to the app folder. Therefore it is necessary to create
a [firebase](https://support.google.com/appsheet/answer/10104995?hl=en) account.
## Contribute
Rules and guidelines for contributing in this project.
### How to:
- [Fork the project to your own GitHub profile](https://help.github.com/articles/fork-a-repo/)
- Download the forked project using git clone:
```sh
git clone git@github.com:/.git
```
- Create a new branch with a descriptive name:
```sh
git checkout -b feat/
```
Recommended pattern for branch-names & commit-messages:
- Feature-branch: ```feat/``` e.g.: ```feat/added-new-language```
- Bugfix-branch: ```fix/``` e.g.: ```fix/fixed-icon-mapping```
- Commit on feature branch: e.g.: ```Added new language for france```
- Commit on bugfix branch: e.g.: ```Fixed icon mapping for heavy rain```
- Write some code, fix something, and add a test to prove that it works.
- Commit your code and push it to GitHub
- [Open a new pull request](https://help.github.com/articles/creating-a-pull-request/) and describe the changes you have made.
- We'll accept your changes after a completed review.
> [!IMPORTANT]
> Do not exceed the number of 500 lines for a pull-request to keep them small and the review easier.
### Code of Conduct:
This project and everyone participating in it is governed by its [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are
expected to uphold this code.
Thank you!
## Why we made this?
As part of of the German public broadcaster, we aim to offer insights into our Android development process and openly showcase it to the public community.
## Acknowledgements
- [Bright Sky Team](https://github.com/jdemaeyer/brightsky)
- [Deutscher Wetterdienst - DWD](https://www.dwd.de/)
- [Great meteocons by basmilius](https://github.com/basmilius/weather-icons)
- [Tabler Icons](https://github.com/tabler/tabler-icons)
- [Flag Icons](https://github.com/lipis/flag-icons/tree/main)
- [Landscape photography by Florian Thoma](https://www.instagram.com/flori.thoma/)
