Clima Flutter is a portfolio weather app built with Flutter for Android and iOS. It shows current weather from OpenWeather based on the device location and lets users search for weather by city.
This repository is intended as a mobile demo project, not a published App Store or Google Play product.
iOS Weather![]() |
iOS City Search![]() |
Android Weather![]() |
Android City Search![]() |
- Current-location weather lookup
- City weather search
- Android and iOS support
- Location permission handling
- Loading timeouts and error states
- Try again action and city search fallback when loading fails
- Custom Android and iOS launcher icons
- Secure API key injection with
--dart-define
- Flutter
- Dart
- OpenWeather API
geolocatorfor location serviceshttppackage for API requests- Android emulator and iOS simulator testing
- Flutter SDK
- Android Studio or a configured Android emulator/device
- Xcode and an iOS simulator/device for iOS development on macOS
- OpenWeather API key
Install dependencies:
flutter pub getThe app reads the API key from:
String.fromEnvironment('WEATHER_API_KEY')Do not commit a real API key to source control. Pass it at runtime with --dart-define.
Run on Android emulator:
flutter run -d emulator-5554 --dart-define=WEATHER_API_KEY=YOUR_OPENWEATHER_API_KEYRun on iOS simulator:
flutter run -d <ios_simulator_id> --dart-define=WEATHER_API_KEY=YOUR_OPENWEATHER_API_KEYUse flutter devices if you need to find the available Android emulator or iOS simulator ID.
Build a debug APK:
flutter build apk --debug --dart-define=WEATHER_API_KEY=YOUR_OPENWEATHER_API_KEYBuild for the iOS simulator:
flutter build ios --debug --simulator --dart-define=WEATHER_API_KEY=YOUR_OPENWEATHER_API_KEYlib/
screens/ App screens for loading, location weather, and city search
services/ Location, networking, and weather API services
utilities/ Shared constants
docs/
screenshots/ Portfolio screenshots for Android and iOS
android/ Android project files
ios/ iOS project files
- This project supports Android and iOS only.
- Web, macOS, Windows, and Linux platform folders are intentionally not included.
- Weather data is provided by OpenWeather.
- The repository should contain only placeholder API key values such as
YOUR_OPENWEATHER_API_KEY.



