An advanced Flutter weather app that delivers real-time weather data, hourly & daily forecasts, and essential weather metrics — designed for reliability and performance.
- Real-Time Weather — Live weather conditions for your current location or any searched city
- Hourly Forecast — Hour-by-hour weather breakdown for the day ahead
- Daily Forecast — Multi-day outlook so you can plan ahead
- Auto Location Detection — Automatically detects your GPS location on launch
- Lottie Animations — Smooth, dynamic weather animations for sunny, rainy, cloudy and more
- BLoC State Management — Clean, reactive UI powered by flutter_bloc
- Formatted Date & Time — Human-readable timestamps using intl
| Layer | Technology |
|---|---|
| Language | Dart |
| Framework | Flutter |
| State Management | flutter_bloc + equatable |
| HTTP Requests | http |
| Location | geolocator + geocoding |
| Animations | lottie |
| Date Formatting | intl |
dependencies:
flutter_bloc: ^9.1.1 # State management
http: ^1.6.0 # API calls
geolocator: ^14.0.2 # GPS location
geocoding: ^4.0.0 # Coordinates to city name
lottie: ^3.3.2 # Weather animations
equatable: ^2.0.7 # State comparison for BLoC
intl: ^0.19.0 # Date & time formatting
cupertino_icons: ^1.0.8 # iOS-style icons- Flutter SDK
^3.10.4 - Dart SDK
^3.10.4 - A weather API key (e.g. OpenWeatherMap)
# 1. Clone the repository
git clone https://github.com/010Ankushsharma/VibeWithWeather.git
# 2. Navigate into the project
cd VibeWithWeather
# 3. Install dependencies
flutter pub get
# 4. Run the app
flutter run- Get a free API key from OpenWeatherMap
- Add your key to the appropriate config file in
lib/
const String apiKey = 'YOUR_API_KEY_HERE';VibeWithWeather/
├── lib/ # Main Dart source code
│ ├── bloc/ # BLoC state management (events, states, bloc)
│ ├── models/ # Data models (weather, forecast)
│ ├── screens/ # UI screens
│ ├── widgets/ # Reusable UI components
│ └── main.dart # App entry point
├── assets/ # Lottie animations & images
├── pubspec.yaml # Dependencies & project config
└── README.md
The following permissions are required:
Android (AndroidManifest.xml)
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>iOS (Info.plist)
<key>NSLocationWhenInUseUsageDescription</key>
<string>VibeWithWeather needs your location to show local weather.</string>App Launch
↓
Detect GPS Location (geolocator)
↓
Convert to City Name (geocoding)
↓
Fetch Weather Data (http → Weather API)
↓
BLoC emits state (flutter_bloc)
↓
UI renders with Lottie animations
Coming soon
Contributions, issues and feature requests are welcome!
- Fork the repo
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
Ankush Sharma
- GitHub: @010Ankushsharma
Built with ❤️ using Flutter