vadret / android

🌦 Vädret
https://vadret.github.io/android/
Other
17 stars 3 forks source link
android clean-architecture coroutines coroutines-flow hackertoberfest jetpack-android kotlin retrofit

github-ci github-releases ktlint License CodeFactor

Vädret

Vädret

A simple weather app that uses the Swedish weather service SMHI to fetch weather data, and Krisinformation for emergency information from Swedish authorities. MVI written entirely in Kotlin. Icons used in this project can be found here. The data is licensed under Creative commons Erkännande 4.0 SE.

Weather Warning Radar

Download app

<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" alt="Download from Google Play" height="80"> <img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="80"> <img src="https://raw.githubusercontent.com/vadret/android/master/assets/get-github.png" alt="Get it on Github" height="80">

Note: While both distribution channels track the same branch, each release are signed with different keys. Thus you cannot install the F-droid version and upgrade via Play store unless you first uninstall the F-droid version.

Changelog

Changelog available here in keep-a-changelog format.

Architecture

This project builds on concepts from Clean Architecture. The presentation layer is heavily inspired by Jake Wharton's talk on Managing State with RxJava. The project also uses a modified Either type originally written by Fernando Cejas with some additional extensions added.

SMHI Open Data API Docs

Code Style

This project uses ktlint for linting.

Linting

./gradlew ktlint
./gradlew ktlintFormat

Contributor Guidelines

If you would like to contribute code to the project fork the project and find an issue/feature you would like to work on. Ideally check with a maintainer so you dont work on something that might be in the workings already.

Your pull request will be failed by the build server if it does not have passing unittests and lintchecks. A build can also be failed if you decrease the testing coverage.

When submitting a pull request make sure you squash the commit(s) for that PR -- Do this so we can keep a clean git history.

Localization

This project uses crowdin as localization management platform. You can checkout this project here to start translating. After your translation(s) has been approved, feel free to submit a pull request with your name added to TRANSLATORS file.

License

Copyright 2018 Niclas Kron

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.