WeatherApp is a Flutter application for checking current weather conditions, hourly forecasts, and seven-day forecasts for locations around the world.
The project is currently in beta. Feedback and bug reports are welcome.
- Weather based on the device's GPS location
- City search and interactive map selection
- Current conditions, hourly forecast, and seven-day forecast
- Email/password and Google authentication with Firebase
- Favorite locations synchronized through Cloud Firestore
- Local weather cache for faster startup and offline fallback
- Android support and initial iOS configuration
Download the latest Android APK from the GitHub Releases page.
Android might ask for permission to install apps from your browser or file manager because the APK is distributed outside Google Play.
- Flutter
- Firebase Authentication
- Cloud Firestore
- Open-Meteo for weather and geocoding data
- OpenStreetMap for map tiles
- Nominatim for reverse geocoding
Install Flutter and connect an Android device or start an emulator. Then run:
flutter pub get
flutter runCheck the project before building:
flutter analyzeThe application uses Firebase Authentication and Cloud Firestore. When using your own Firebase project:
- Register Android and iOS applications in Firebase.
- Enable Email/Password and Google authentication.
- Create a Cloud Firestore database.
- Run
flutterfire configure. - Add the Android debug and release SHA-1/SHA-256 fingerprints.
- Deploy the rules from
firestore.rules.
Firebase client configuration files contain public app identifiers. Never
commit service-account credentials, signing keys, key.properties, or .env
files containing secrets.
A local Android signing key and android/key.properties are required:
flutter build apk --releaseThe generated APK is available at:
build/app/outputs/flutter-apk/app-release.apk
lib/
services/ Firebase authentication and favorites
view/screens/ Application screens
main.dart Firebase initialization and authentication gate
WeatherApp requests location access to show weather for the user's current position. If location access is unavailable, the app uses cached weather data or Bucharest as a fallback.
