// the find
darkmoonight/Rain
🌦️ Weather application
Rain is a Flutter weather app for Android (and nominally iOS) that pulls data from Open-Meteo and OpenStreetMap — both free, no API key required. It covers current conditions, 12-day forecasts, air quality, interactive maps, home screen widgets, and scheduled notifications across 38 languages. The target audience is privacy-conscious Android users who want a polished Material You app without handing credentials to a weather API.
Open-Meteo is genuinely free and doesn't rate-limit you into a paid tier the moment your app gets traction — that's the right call for an open-source project. The FLOSS build flavor (separating GMS from the core app) is a real architectural decision, not a checkbox: the Kotlin widget code in `android/app/src/main/java/` is non-trivial and the flavor split is maintained cleanly. The 496-test suite is unusually high discipline for a Flutter app; most stop at zero. The Riverpod + Go Router + Isar stack is current and idiomatic for Flutter in 2024.
Isar is a risk: the original author effectively abandoned it mid-2024 and the community fork is uncertain; if Isar stalls on a Flutter or Dart SDK bump, the entire local cache layer breaks. iOS is present in the repo but not on the App Store and not mentioned in the main README features — it's effectively Android-only software living in a cross-platform repo, which creates confusion about what's actually supported. The background refresh and notification plumbing is fragmented across at least six service files (`background_platform_service`, `notification_reschedule_guard`, `widget_background_service`, etc.), which suggests it's been patched repeatedly rather than designed — background reliability on Android is already a minefield and that file count is a warning sign. No tablet or large-screen layout despite `responsive_utils.dart` existing; on a foldable or tablet the UI will look like a stretched phone.