Breezy Weather
A feature-rich weather app with good visualizations and more than 50 sources.
https://github.com/breezy-weather/breezy-weather
Category: Atmosphere
Sub Category: Meteorological Observation and Forecast
Keywords from Contributors
jetpack-compose fdroid f-droid exif exif-metadata exiftool crop clean-architecture filter-image image-manipulation
Last synced: about 22 hours ago
JSON representation
Repository metadata
A feature-rich weather app with good visualizations and more than 50 sources.
- Host: GitHub
- URL: https://github.com/breezy-weather/breezy-weather
- Owner: breezy-weather
- License: lgpl-3.0
- Created: 2022-04-16T13:45:06.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-12-20T14:30:29.000Z (6 days ago)
- Last Synced: 2025-12-22T17:41:54.389Z (4 days ago)
- Language: Kotlin
- Homepage:
- Size: 1010 MB
- Stars: 8,856
- Watchers: 48
- Forks: 304
- Open Issues: 92
- Releases: 81
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
README.md
⬇️ Download
✨ Features
-
🌤️ Weather data
- Daily and hourly forecasts up to 16 days
- Precipitation in the next hour
- Severe weather and precipitation alerts
- Temperature / Feels like temperature / Normals
- Precipitation
- Wind
- Air quality
- Pollen & Mold
- Humidity
- UV index
- Visibility
- Pressure
- Sun
- Moon
-
📊 Visualization
- Detailed 24-hour charts
- Material 3 Expressive blocks
-
🏭 More than 50 weather sources supported (full list)
-
🧩 Large selection of widgets
-
🖼️ Live wallpaper
-
📦 Custom icon packs
- Geometric Weather icon packs
- Chronus Weather icon packs
-
🌙 Automatic dark mode
-
🔁 Opt-in data sharing with other apps (such as Gadgetbridge)
-
- Localization
- Number formatting (different numeral systems, decimal separator, thousand separator)
- Unit formatting
- Alternate calendar
- Readability
- Good content descriptions for screen readers
- Navigation with screen readers: most things should work, features depending on drag & drop not yet supported
- Custom display settings: basic support
- Localization
-
- No proprietary blobs/dependencies
- Releases generated by GitHub actions, guaranteeing it matches the source code
- Fully works with Open-Meteo (FOSS source)
- Separate flavor with only sources hosted on FOSS networks
-
- No personal data collected by the app (link to app privacy policy)
- Multiple sources are available, with links to their privacy policies for transparency
- Current location is optional and not added by default
- If using current location, an IP location service can be used instead of GPS to send less accurate coordinates to weather source
- No trackers/automatic crash reporters
🛟 Help
🤝 Contribute
Pull requests are welcome. You can have a look at issues opened to contributions. For other changes, please open an issue first to discuss what you would like to change.
Features currently being worked on by a contributor
- Announcement - Make Breezy weather data available through a ContentProvider. Currently in testing phase
Features lacking an active contributor
- #10 - “Add location” page needs a new design, in the spirit of Google Maps where you can select location points on the map, or search manually - No mockup done yet
- #937 - Widget overhaul (prerequisite for any new widget improvement) - Some mockups were done but no one is working on it anymore
Features that will not be implemented
- Paid-only sources, too limited free-tier, or free-tier that requires privacy-invasive information (credit card info, phone number, etc)
- Radar; please check out this document for alternatives
- Adding
standardflavor or non-free sources to the F-Droid default repo: please use thestandardflavor from a different store/source instead - Changes to the background updates process, including but not limited: options for refreshing less than every 30 minutes, every time you open the app, every time you tap on widget, every time you unlock your phone
- “Circular sky” interface: please set a fixed background per location instead
- Publish to Google Play Store: please check alternatives
- Allow different flavors to be installed in parallel
- Implement features that are no longer available in latest Android versions
- Backport features/fixes from latest Android versions to older Android versions
- Donations: if you have extra money to spare, consider donating to Open-Meteo to support infrastructure costs and future developments (we currently lack a libre and gratis worldwide alternative for the following features: Reverse geocoding, Alerts, Normals)
🌍 Translations
Translation is done externally on Weblate. Please read carefully project instructions if you want to help.
English (and regional variants) and French translations are maintained by repo maintainers, but they are open to proofreading/improvements. You will need to make a pull request, as we didn’t find a way to make these languages in suggestion-only mode in Weblate (let us know if you find anything).
For unit formatting, we use Unicode data as much as possible. If you believe there is an error, please open a discussion with evidences that the changes you suggest is the recommendation for your language.
✉️ Contact us
- If you’d like to report a bug or suggest a new feature, GitHub discussions or issues are best for organization.
- We’ve also created a Matrix/Element space with a number of different channels for more general discussion:
#breezy-weather-space:matrix.org.- If you are not comfortable writing a GitHub discussion/issue in English, you can ask on the channel if someone can help you in your language.
- We also have a dedicated help channel in French:
#breezy-weather-francais:matrix.org
- We also have a dedicated help channel in French:
- If you’d prefer a direct channel link instead of a space link, here’s the main Breezy Weather Matrix channel:
#breezy-weather:matrix.org
- If you are not comfortable writing a GitHub discussion/issue in English, you can ask on the channel if someone can help you in your language.
📜 License
- GNU Lesser General Public License v3.0
- This License does not grant any rights in the trademarks, service marks, or logos of any Contributor.
- Misrepresentation of the origin of that material is prohibited, and modified versions of such material must be marked in reasonable ways as different from the original version.
Before creating a fork, check if the intent action nodomain.freeyourgadget.gadgetbridge.ACTION_GENERIC_WEATHER can cover your need (for example, you want to re-use our weather data in your own customized widget). It can be enabled from Settings > Widgets & Live Wallpaper > Data sharing. You can also help testing our ContentProvider exposing the full weather data of Breezy Weather.
Otherwise, remember to:
- Respect the project’s LICENSE
- Avoid confusion with Breezy Weather app:
- Change the app name
- Change the app icon
- Avoid installation conflicts:
- Change the
applicationIdinbuild.gradle.kts
- Change the
Owner metadata
- Name: Breezy Weather
- Login: breezy-weather
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/136990641?v=4
- Repositories: 7
- Last ynced at: 2024-04-17T23:48:25.241Z
- Profile URL: https://github.com/breezy-weather
Committers metadata
Last synced: 2 days ago
Total Commits: 5,557
Total Committers: 411
Avg Commits per committer: 13.521
Development Distribution Score (DDS): 0.649
Commits in past year: 1,989
Committers in past year: 185
Avg Commits per committer in past year: 10.751
Development Distribution Score (DDS) in past year: 0.656
| Name | Commits | |
|---|---|---|
| Julien Papasian | j****n@g****m | 1949 |
| Ilya | k****5@g****m | 240 |
| WangDaYeeeeee | w****e@g****m | 228 |
| Chunshek Chan | c****k@g****m | 199 |
| renovate[bot] | 2****] | 161 |
| summoner001 | s****r@v****t | 125 |
| min7-i | 9****i | 116 |
| 大王叫我来巡山 | h****8@u****g | 86 |
| Peter Ericson | p****r@n****m | 79 |
| Fjuro | f****o@a****z | 74 |
| Rex_sa | r****a@p****e | 71 |
| NEXI | n****r@g****m | 65 |
| wangdaye | w****5@q****m | 63 |
| thaumiel9 | t****9@l****m | 59 |
| Suguru Hirahara | s****a@u****g | 59 |
| 天ツ風 | y****6@g****m | 58 |
| Edgars Andersons | E****e@g****v | 57 |
| gallegonovato | f****o@h****s | 54 |
| min7-i | m****i@u****g | 52 |
| Hosted Weblate | h****d@w****g | 44 |
| elgratea | w****e@f****m | 42 |
| Linerly | l****y@p****e | 37 |
| diskacz | d****z@c****l | 33 |
| Milo Ivir | m****l@m****e | 30 |
| Aindriú Mac Giolla Eoin | a****0@g****m | 28 |
| Λευτέρης Τ | l****2@g****m | 27 |
| Oğuz Ersen | o****z@e****e | 27 |
| Valentin Ljuba | 7****0@a****e | 25 |
| Cod3d | v****n@g****m | 24 |
| Kachelkaiser | k****r@h****e | 24 |
| and 381 more... | ||
Committer domains:
- users.noreply.hosted.weblate.org: 37
- proton.me: 14
- qq.com: 8
- duck.com: 4
- slmail.me: 4
- aleeas.com: 4
- anonaddy.me: 4
- posteo.net: 3
- protonmail.ch: 3
- tutamail.com: 3
- 163.com: 2
- simplelogin.com: 2
- seznam.cz: 2
- fastmail.com: 2
- weblate.org: 2
- tutanota.de: 2
- yandex.ru: 2
- free.fr: 2
- familie-angst.ch: 1
- hot.ee: 1
- posteo.si: 1
- roicou.gal: 1
- laborategia.eus: 1
- pissmail.com: 1
- gmx.com: 1
- onionmail.org: 1
- passinbox.com: 1
- yandex.com: 1
- live.fr: 1
- vandenhoogenhoff.com: 1
- bu.edu: 1
- fairy.simplelogin.com: 1
- 4wrd.cc: 1
- vivaldi.net: 1
- noscirep.com: 1
- alius.cz: 1
- pm.me: 1
- gaitenis.id.lv: 1
- hotmail.es: 1
- czarnowski.int.pl: 1
- milotype.de: 1
- ersen.moe: 1
- htpst.de: 1
- lucasmz.dev: 1
- paulogomez.anonaddy.com: 1
- paternottes.net: 1
- schmerl.ing: 1
- fel.cvut.cz: 1
- bt-e.com: 1
- alibaba-inc.com: 1
- tiscali.it: 1
- reimu.nl: 1
- misiarek.pl: 1
- eurokool.com: 1
- kosmoz.at: 1
- yeah.net: 1
- student.liu.se: 1
- t1c.dev: 1
- sky.com: 1
- gtec.at: 1
- mi6e4ka.dev: 1
- reimu.moe: 1
- alvaro.cat: 1
- gowling.com: 1
- dominic.sk: 1
- tencent.com: 1
- racovor.com: 1
- hldrive.com: 1
- slmails.com: 1
- zohomail.eu: 1
- sien.no: 1
- gholar.com: 1
- groeable.addy.io: 1
- typeblog.net: 1
- ggh.goe.go.kr: 1
- esciencecenter.nl: 1
- yahoo.co.jp: 1
- mail.ru: 1
- avashost.com: 1
- dnmx.org: 1
- rosendahl-kaa.name: 1
- mailinator.com: 1
- tuta.io: 1
- tutanota.com: 1
- joeruut.com: 1
- libero.it: 1
- szentimreiskolaovoda.hu: 1
- posteo.de: 1
- kaastra.net: 1
- visnes.org: 1
- keemail.me: 1
- bunburya.eu: 1
- gentoo.org: 1
- anawalls.com: 1
- disroot.org: 1
- mapa.anonaddy.com: 1
- kotthund.se: 1
- net-c.ca: 1
- bibi.biz.st: 1
- grooty.site: 1
- silomails.com: 1
- mail.lv: 1
- bitmessage.ch: 1
- outlook.it: 1
- smartpixel.it: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 671
Total pull requests: 954
Average time to close issues: about 2 months
Average time to close pull requests: 4 days
Total issue authors: 316
Total pull request authors: 49
Average comments per issue: 2.36
Average comments per pull request: 0.43
Merged pull request: 633
Bot issues: 3
Bot pull requests: 290
Past year issues: 208
Past year pull requests: 420
Past year average time to close issues: 6 days
Past year average time to close pull requests: 3 days
Past year issue authors: 126
Past year pull request authors: 22
Past year average comments per issue: 1.6
Past year average comments per pull request: 0.2
Past year merged pull request: 265
Past year bot issues: 0
Past year bot pull requests: 165
Top Issue Authors
- papjul (198)
- chunshek (35)
- min7-i (26)
- elydpg (14)
- Moostek (5)
- bush911 (5)
- IzzySoft (5)
- LuccoJ (4)
- ecawthorne (4)
- kosmoz (4)
- Veraellyunjie (4)
- cloneofghosts (4)
- HonestAbe7 (4)
- gaussandhisgun (4)
- weblate (3)
Top Pull Request Authors
- weblate (351)
- renovate[bot] (290)
- chunshek (102)
- min7-i (79)
- papjul (41)
- ecawthorne (16)
- ccyybn (8)
- joserebelo (5)
- DogacTanriverdi (4)
- CoelacanthusHex (3)
- codewithdipesh (3)
- DwainZwerg (2)
- licaon-kter (2)
- AndreasIlles (2)
- tategotoazarasi (2)
Top Issue Labels
- Bug (363)
- Needs review (229)
- Idea (182)
- Needs more info (87)
- New source (56)
- Technical (50)
- Open to contributions (46)
- Priority: medium (41)
- Priority: low (38)
- Dependency issue (34)
- Priority: high (34)
- Device-specific (29)
- Stale (25)
- Regression (22)
- Reproducible in Geometric Weather (18)
- Widgets (16)
- High effort (16)
- Undecided (10)
- Wontfix (10)
- Documentation (9)
- Workaround (9)
- Invalid (7)
- Duplicate (5)
- Accessibility (5)
- Critical (5)
- Invalid version (2)
- Needs debug logs (1)
- Question (1)
- Feasible with content provider (1)
Top Pull Request Labels
- Needs review (81)
- Needs more info (13)
- Bug (11)
- Needs rebase (5)
- Technical (5)
- Dependency issue (4)
- New source (4)
- minSdk bump (3)
- Invalid (3)
- Accessibility (2)
- Idea (1)
- High effort (1)
- Priority: medium (1)
- Undecided (1)
- Open to contributions (1)
- Reproducible in Geometric Weather (1)
- Priority: low (1)
Dependencies
- androidx.activity:activity-compose 1.4.0 implementation
- androidx.appcompat:appcompat 1.4.1 implementation
- androidx.cardview:cardview 1.0.0 implementation
- androidx.compose.animation:animation 1.1.1 implementation
- androidx.compose.foundation:foundation 1.2.0-beta02 implementation
- androidx.compose.material3:material3 1.0.0-alpha09 implementation
- androidx.compose.material:material 1.1.1 implementation
- androidx.compose.material:material-icons-extended 1.2.0-beta02 implementation
- androidx.compose.ui:ui-tooling 1.1.1 implementation
- androidx.core:core-ktx 1.7.0 implementation
- androidx.datastore:datastore-preferences 1.0.0-alpha07 implementation
- androidx.datastore:datastore-preferences-rxjava2 1.0.0-alpha07 implementation
- androidx.hilt:hilt-work 1.0.0 implementation
- androidx.lifecycle:lifecycle-common-java8 2.4.1 implementation
- androidx.lifecycle:lifecycle-extensions 2.2.0 implementation
- androidx.lifecycle:lifecycle-livedata-ktx 2.4.1 implementation
- androidx.lifecycle:lifecycle-reactivestreams-ktx 2.4.1 implementation
- androidx.lifecycle:lifecycle-runtime-ktx 2.4.1 implementation
- androidx.lifecycle:lifecycle-viewmodel-compose 2.5.0-rc01 implementation
- androidx.lifecycle:lifecycle-viewmodel-ktx 2.4.1 implementation
- androidx.multidex:multidex 2.0.1 implementation
- androidx.navigation:navigation-compose 2.4.2 implementation
- androidx.preference:preference-ktx 1.2.0 implementation
- androidx.swiperefreshlayout:swiperefreshlayout 1.1.0 implementation
- androidx.work:work-runtime 2.8.0-alpha02 implementation
- com.github.XhinLiang:LunarCalendar 3.0.0 implementation
- com.github.bumptech.glide:glide 4.11.0 implementation
- com.github.bumptech.glide:okhttp3-integration 4.11.0 implementation
- com.github.didikee:AndroidDonate 0.1.0 implementation
- com.github.nekocode.rxlifecycle:rxlifecycle 2.0 implementation
- com.github.nekocode.rxlifecycle:rxlifecycle-compact 2.0 implementation
- com.github.rahatarmanahmed:circularprogressview 2.5.0 implementation
- com.github.turing-tech:MaterialScrollBar 13.3.2 implementation
- com.google.accompanist:accompanist-appcompat-theme 0.16.0 implementation
- com.google.android.material:material 1.7.0-alpha02 implementation
- com.google.code.gson:gson 2.8.6 implementation
- com.google.dagger:hilt-android 2.41 implementation
- com.gordonwong:material-sheet-fab 1.2.1 implementation
- com.jaredrummler:colorpicker 1.1.0 implementation
- com.squareup.okhttp3:logging-interceptor 3.12.12 implementation
- com.squareup.okhttp3:okhttp * implementation
- com.squareup.retrofit2:adapter-rxjava2 2.6.2 implementation
- com.squareup.retrofit2:converter-gson 2.9.0 implementation
- com.squareup.retrofit2:retrofit 2.9.0 implementation
- com.xw.repo:bubbleseekbar 3.20-lite implementation
- io.github.yuweiguocn:GreenDaoUpgradeHelper v2.2.1 implementation
- io.reactivex.rxjava2:rxandroid 2.1.1 implementation
- io.reactivex.rxjava2:rxjava 2.2.9 implementation
- me.jfenn:AdaptiveIconView 0.0.1 implementation
- org.cyanogenmod:platform.sdk 5.0 implementation
- org.greenrobot:greendao 3.3.0 implementation
- org.jetbrains.kotlin:kotlin-stdlib $kotlin_version implementation
- androidx.test:core 1.4.0 testImplementation
- androidx.test:rules 1.4.0 testImplementation
- androidx.test:runner 1.4.0 testImplementation
- junit:junit 4.13.2 testImplementation
- org.mockito:mockito-core 3.3.3 testImplementation
- org.powermock:powermock-api-mockito2 2.0.9 testImplementation
- org.powermock:powermock-classloading-xstream 2.0.9 testImplementation
- org.powermock:powermock-module-junit4 2.0.9 testImplementation
- org.powermock:powermock-module-junit4-rule 2.0.9 testImplementation
- org.robolectric:robolectric 4.3 testImplementation
- peter-evans/create-or-update-comment v3 composite
- dessant/lock-threads v4 composite
- actions/checkout v4 composite
- actions/dependency-review-action v3 composite
- actions/setup-java v3 composite
- actions/upload-artifact v3 composite
- gradle/gradle-command-action v2 composite
- gradle/wrapper-validation-action v1 composite
- actions/checkout v4 composite
- actions/setup-java v3 composite
- gradle/gradle-command-action v2 composite
- gradle/wrapper-validation-action v1 composite
- r0adkll/sign-android-release v1 composite
- softprops/action-gh-release v1 composite
- actions/stale v8 composite
Score: 15.117778537106254