A cross-platform weather application built with Flutter that provides real-time weather updates with a clean and responsive UI. The app automatically detects the user’s location, fetches weather data using the Open-Meteo API, and displays it in a simple, intuitive format.
- 🌍 Location-based weather – Automatically detects the user’s GPS location and fetches current weather conditions
- ⚡ Real-time weather updates – Pulls live data from the Open-Meteo API
- 🚦 Error handling – Handles cases like no internet, disabled location services, or invalid API responses
- 📱 Cross-platform – Works on both Android and iOS with a responsive UI
- 🧩 Clean architecture – Separation of concerns between data, domain, and presentation layers
- 🎯 Optimised state management – Uses Cubit for efficient and reactive UI updates
- 🎨 User-friendly UI – Displays weather conditions in a clean, modern design
- Framework: Flutter (Dart)
- State Management: BLoC (Cubit)
- API Provider: Open-Meteo API
- Location:
geolocatorpackage for GPS services - Networking:
httppackage for REST API calls - Architecture: Repository Pattern + BLoC
- Error Handling: Cubit state classes for success, loading, and error
The app uses Open-Meteo API to fetch live weather data.
To use this project, you don't need an API key, visit Open-Meteo docs and obtain your URL
| Home Screen Night Time 1 | Home Screen Night Time 2 | Home Screen Day Time 1 |
|---|---|---|
![]() |
![]() |
![]() |
| No Internet Connection | Location Services Disabled |
|---|---|
![]() |
![]() |
Contributions are welcome! Feel free to open an issue or submit a pull request.
- UI Design Inspiration: Heavily inspired by Weather Mobile App UX/UI Design Free UI Kit on Figma Community, credits go to the designer.




