{"id":44988630,"url":"https://github.com/public-value-tech/pub-android-weather-sample","last_synced_at":"2026-02-18T20:51:46.752Z","repository":{"id":227295047,"uuid":"770244658","full_name":"public-value-tech/pub-android-weather-sample","owner":"public-value-tech","description":"An modern android weather sample app with Jetpack Compose which uses the Bright Sky API to get data of the German Meteorological Service - DWD.","archived":false,"fork":false,"pushed_at":"2024-04-03T11:05:59.000Z","size":1987,"stargazers_count":3,"open_issues_count":10,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-03T12:26:58.904Z","etag":null,"topics":["android","app","brightsky","compose","datastore","dwd-weather","hilt","kotlin","lottie","moshi","retrofit","weather","weather-app"],"latest_commit_sha":null,"homepage":"https://github.com/public-value-tech/pub-android-weather-sample","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/public-value-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-11T07:59:46.000Z","updated_at":"2024-04-03T12:26:59.982Z","dependencies_parsed_at":"2024-04-03T12:38:19.723Z","dependency_job_id":null,"html_url":"https://github.com/public-value-tech/pub-android-weather-sample","commit_stats":null,"previous_names":["public-value-tech/pub-android-weather-sample"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/public-value-tech/pub-android-weather-sample","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-value-tech%2Fpub-android-weather-sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-value-tech%2Fpub-android-weather-sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-value-tech%2Fpub-android-weather-sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-value-tech%2Fpub-android-weather-sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/public-value-tech","download_url":"https://codeload.github.com/public-value-tech/pub-android-weather-sample/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/public-value-tech%2Fpub-android-weather-sample/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29595168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T18:54:29.675Z","status":"ssl_error","status_checked_at":"2026-02-18T18:50:50.517Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","app","brightsky","compose","datastore","dwd-weather","hilt","kotlin","lottie","moshi","retrofit","weather","weather-app"],"created_at":"2026-02-18T20:51:46.044Z","updated_at":"2026-02-18T20:51:46.745Z","avatar_url":"https://github.com/public-value-tech.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Android Weather Sample App\n\n\u003cdiv\u003e\n\u003cimg alt=\"Kotlin Static Badge\" src=\"https://img.shields.io/badge/Kotlin-7f52ff?style=for-the-badge\u0026logo=Kotlin\u0026logoColor=ffffff\"\u003e\n\u003cimg alt=\"Flows Static Badge\" src=\"https://img.shields.io/badge/Flows-7f52ff?style=for-the-badge\"\u003e\n\u003cimg alt=\"Coroutines Static Badge\" src=\"https://img.shields.io/badge/Coroutines-7f52ff?style=for-the-badge\"\u003e\n\u003cimg alt=\"Jetpack Static Badge\" src=\"https://img.shields.io/badge/Jetpack-3983f9?style=for-the-badge\u0026logo=JetpackCompose\u0026logoColor=ffffff\"\u003e\n\u003cimg alt=\"Compose Static Badge\" src=\"https://img.shields.io/badge/Compose-3983f9?style=for-the-badge\"\u003e\n\u003cimg alt=\"Datastore Static Badge\" src=\"https://img.shields.io/badge/Datastore-3983f9?style=for-the-badge\"\u003e\n\u003cimg alt=\"ViewModel Static Badge\" src=\"https://img.shields.io/badge/ViewModel-3983f9?style=for-the-badge\"\u003e\n\u003cimg alt=\"Android Static Badge\" src=\"https://img.shields.io/badge/Android-34a853?style=for-the-badge\u0026logo=Android\u0026logoColor=ffffff\"\u003e\n\u003cimg alt=\"Android API Static Badge\" src=\"https://img.shields.io/badge/API%2024%2B-34a853?style=for-the-badge\"\u003e\n\u003cimg alt=\"Hilt Static Badge\" src=\"https://img.shields.io/badge/Hilt-34a853?style=for-the-badge\"\u003e\n\u003cimg alt=\"Material Design 2 Static Badge\" src=\"https://img.shields.io/badge/Material%20Design%202-747474?style=for-the-badge\u0026logo=MaterialDesign\u0026logoColor=ffffff\"\u003e\n\u003cimg alt=\"Lottie Compose Static Badge\" src=\"https://img.shields.io/badge/Lottie Compose-04d1c1?style=for-the-badge\u0026logo=airbnb\u0026logoColor=ffffff\"\u003e\n\u003cimg alt=\"Moshi Static Badge\" src=\"https://img.shields.io/badge/Moshi-333333?style=for-the-badge\u0026logo=Square\u0026logoColor=ffffff\"\u003e\n\u003cimg alt=\"Retrofit Static Badge\" src=\"https://img.shields.io/badge/Retrofit-47b983?style=for-the-badge\u0026logo=square\u0026logoColor=ffffff\"\u003e\n\u003c/div\u003e\n\n---\n\n#### An android weather sample app with [Jetpack Compose](https://developer.android.com/jetpack/compose?gclid=CjwKCAiApuCrBhAuEiwA8VJ6Jv6a4ODF3hlsKL1xSl8aBWfprO7tOZ-vFEOYSQh0lT7d1XHemHpnExoCnfIQAvD_BwE\u0026gclsrc=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).\n\n\u003e [!NOTE]\n\u003e Only locations inside germany are supported for now.\n\n## Screenshots\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"https://github.com/public-value-tech/pub-android-weather-sample/assets/36038891/4a691a6a-588c-4e40-8c54-529899fb9764\" width=\"32%\"/\u003e\n\u003cimg src=\"https://github.com/public-value-tech/pub-android-weather-sample/assets/36038891/c2c12839-8465-4497-b589-a806ec562a7a\" width=\"32%\"/\u003e\n\u003cimg src=\"https://github.com/public-value-tech/pub-android-weather-sample/assets/36038891/c5d985d1-9341-40a0-bdf2-f79fc1bb9588\" width=\"32%\"/\u003e\n\u003c/p\u003e\n\n## Features\n\nCurrent 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\n\n## Build with\n\n- [Hilt](https://developer.android.com/training/dependency-injection/hilt-android)\n- [Kotlin Flows](https://kotlinlang.org/docs/reference/coroutines/flow.html)\n- [Material Design](https://m2.material.io/)\n- [Multiple language support (en, de)](https://developer.android.com/training/basics/supporting-devices/languages)\n- [Jetpack Compose](https://developer.android.com/jetpack/compose?)\n- [Datastore](https://developer.android.com/topic/libraries/architecture/datastore)\n- [Retrofit \u0026 OkHttp](https://github.com/square/retrofit)\n- [Moshi](https://github.com/square/moshi)\n- [Lottie](https://github.com/airbnb/lottie-android)\n- [brightsky-API](https://brightsky.dev/)\n\n## Principles, Pattern \u0026 Architecture\n\n- [Layer architecture](https://developer.android.com/topic/architecture#common-principles)\n- [Repository Pattern](https://developer.android.com/codelabs/basic-android-kotlin-training-repository-pattern#0)\n- [MVVM / Clean Architecture](https://medium.com/@ami0275/mvvm-clean-architecture-pattern-in-android-with-use-cases-eff7edc2ef76)\n\n## Setup\n\nTo build the app\na [google-services.json](https://support.google.com/firebase/answer/7015592?hl=en#android\u0026zippy=%2Cin-this-article) file needs to\nbe added to the app folder. Therefore it is necessary to create\na [firebase](https://support.google.com/appsheet/answer/10104995?hl=en) account.\n\n## Contribute\n\nRules and guidelines for contributing in this project.\n\n### How to:\n\n- [Fork the project to your own GitHub profile](https://help.github.com/articles/fork-a-repo/)\n- Download the forked project using git clone:\n\n    ```sh\n    git clone git@github.com:\u003cYOUR_USERNAME\u003e/\u003cYOUR_FORKED_REPONAME\u003e.git\n    ```\n- Create a new branch with a descriptive name:\n\n    ```sh\n    git checkout -b feat/\u003cSHORT-FEATURE-NAME\u003e\n    ```\n    \n    Recommended pattern for branch-names \u0026 commit-messages:\n    - Feature-branch: ```feat/\u003cSHORT-FEATURE-NAME\u003e``` e.g.: ```feat/added-new-language```\n    - Bugfix-branch: ```fix/\u003cSHORT-FIX-NAME\u003e``` e.g.: ```fix/fixed-icon-mapping```\n    - Commit on feature branch: e.g.: ```Added new language for france```\n    - Commit on bugfix branch: e.g.: ```Fixed icon mapping for heavy rain```\n    \n- Write some code, fix something, and add a test to prove that it works.\n- Commit your code and push it to GitHub\n- [Open a new pull request](https://help.github.com/articles/creating-a-pull-request/) and describe the changes you have made.\n- We'll accept your changes after a completed review.\n\n\u003e [!IMPORTANT]\n\u003e Do not exceed the number of 500 lines for a pull-request to keep them small and the review easier.\n\n### Code of Conduct:\n\nThis project and everyone participating in it is governed by its [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are\nexpected to uphold this code.\n\nThank you!\n\n## Why we made this?\nAs 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.\n\n## Acknowledgements\n\n- [Bright Sky Team](https://github.com/jdemaeyer/brightsky)\n- [Deutscher Wetterdienst - DWD](https://www.dwd.de/)\n- [Great meteocons by basmilius](https://github.com/basmilius/weather-icons)\n- [Tabler Icons](https://github.com/tabler/tabler-icons)\n- [Flag Icons](https://github.com/lipis/flag-icons/tree/main)\n- [Landscape photography by Florian Thoma](https://www.instagram.com/flori.thoma/)\n\n\u003ca href=\"https://pub.tech/\"\u003e\u003cimg src=\"https://pub.tech/_next/static/media/pub_logo_aqua.3362b8ee.png\" alt=\"Bright Sky Api\" height=\"60\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jdemaeyer/brightsky\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/jdemaeyer/brightsky/280f2901013c1b7f16d2f30549ad14aa51067703/docs/favicon.svg\" alt=\"Bright Sky Api\" height=\"100\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.dwd.de/\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/jdemaeyer/brightsky/280f2901013c1b7f16d2f30549ad14aa51067703/docs/img/dwd.svg\" alt=\"Deutscher Wetterdienst\" height=\"100\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpublic-value-tech%2Fpub-android-weather-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpublic-value-tech%2Fpub-android-weather-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpublic-value-tech%2Fpub-android-weather-sample/lists"}