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.

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

  • 🌙 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
    • 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 standard flavor or non-free sources to the F-Droid default repo: please use the standard flavor 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.

Translation progress report

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.
    • 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

📜 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:

Owner metadata


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 Email 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:


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

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/breezy-weather/breezy-weather

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

app/build.gradle maven
  • 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
.github/workflows/labels.yml actions
  • peter-evans/create-or-update-comment v3 composite
.github/workflows/lock.yml actions
  • dessant/lock-threads v4 composite
.github/workflows/pull-request.yml actions
  • 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
.github/workflows/push.yml actions
  • 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
.github/workflows/stale.yml actions
  • actions/stale v8 composite
build.gradle maven

Score: 15.117778537106254