An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# Android Weather Sample App


Kotlin Static Badge
Flows Static Badge
Coroutines Static Badge
Jetpack Static Badge
Compose Static Badge
Datastore Static Badge
ViewModel Static Badge
Android Static Badge
Android API Static Badge
Hilt Static Badge
Material Design 2 Static Badge
Lottie Compose Static Badge
Moshi Static Badge
Retrofit Static Badge

---

#### 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/)

Bright Sky Api
Bright Sky Api
Deutscher Wetterdienst