SkyForcaster is a modern weather forecasting app that provides real-time weather updates and a 5-day forecast. The app allows users to search for cities, view detailed weather data, and save favorite locations for easy access. Built with Android Jetpack Compose and Kotlin, it emphasizes simplicity, efficiency, and user-friendly navigation.
Before development, I carefully crafted user stories to guide the app’s functionality, focusing on a smooth user experience. Below is a visual representation of the architecture and screen flow:

(Above: Visual architecture diagram and screen flow including user navigation between home, search, and details pages.)
https://app.eraser.io/workspace/uVbwx7ycfVLUX3ygdicJ?origin=share
Comprehensive unit tests were implemented to ensure app stability and reliable functionality.

- Real-time Weather Data: Displays live weather updates for any city.
- 5-Day Forecast: A detailed forecast for the next five days, updated every 3 hours.
- Favorites Management: Save and manage favorite cities for quick access.
- Search Feature: Instantly search for cities and view their detailed weather conditions.
- Detailed Weather View: Get in-depth weather details like temperature, wind speed, and humidity.
- Seamless Navigation: Navigate between different app screens using the Android Navigation Component.
- Android Studio Bumblebee or later
- Kotlin
- Gradle: (Handled by Android Studio)
- OpenWeatherMap API Key
- Clone the repository:
git clone https://github.com/yourusername/skyforcaster.git
- Open the project in Android Studio:
- Select "Open an existing project" and choose the cloned project folder.
- Configure API Key:
- In
Constant.kt
, replace the placeholder with your API key:
apiKey=your_api_key_here
- In
- Build & Run:
- Sync Gradle and press
Shift + F10
to run the app on an emulator or physical device.
- Sync Gradle and press



- WeatherViewModel: Handles state management and API calls for weather data.
- Jetpack Compose: Used for the entire UI, enabling a declarative approach.
- Navigation Component: Ensures smooth transitions between app screens.
The app integrates with the OpenWeatherMap API for real-time data. Make sure to include your API key as instructed above.
I welcome contributions! Feel free to submit a pull request or report an issue. Let’s build a better weather app together!
SkyForcaster is your reliable companion for weather updates, designed for ease of use and accurate forecasting. 🌤️