A modern Android weather app built with Kotlin, Jetpack Compose, and Clean Architecture. The app provides real-time weather data and forecasts using the Visual Crossing Weather API.
- Current Weather: Displays real-time weather for user's current location
- Weather Forecast: Shows detailed forecast for upcoming days
- Location Tracking: Automatically updates location every:
- 15 minutes OR
- 100 meters distance change
- Swipe to Refresh: Pull-down gesture to update weather data
- Configuration Change Handling: Properly handles screen rotation and other config changes
- Multi-flavor Support:
- Free Version: 5-day forecast
- Paid Version: 14-day forecast
- Icons: uses the official icons set from api documentation
- Language: Kotlin
- UI: Jetpack Compose
- Architecture: Clean Architecture + MVVM
- API Client:
HttpURLConnection - JSON Parsing:
JSONObject - Location: Android Location Manager
- Threading:
- Executor for background operations
- Handler for main-thread communication
The app uses Visual Crossing Weather API with the following endpoints:
- weather:
/timeline/[latitude],[longitude]?unitGroup=metric&include=current
| Current Weather | Weather Forecast |
|---|---|
![]() |
![]() |
![]() |
![]() |
- Android Studio (latest version)
- Visual Crossing Weather API key
- Clone the repository:
git clone https://github.com/youssefelfeky1/Weather-App.git



