Rasd is a robust Android application designed to provide accurate, real-time weather forecasts with an intuitive user experience. It empowers users to explore detailed weather information for any location globally and plan their activities accordingly.
Built with a focus on Reactive Programming and Clean Architecture principles (MVVM), Rasd ensures a smooth user experience with offline access to cached weather data.
You can download the latest version of the Rasd APK from the link below:
| Splash Screen | Home Dashboard | Settings |
![]() |
![]() |
![]() |
| Search & Location | Favorites | Weather Alerts |
![]() |
![]() |
![]() |
- 🌍 Global Weather Data: Access real-time weather information from anywhere in the world via OpenWeatherMap API.
- 📍 Smart Location Detection: GPS-based automatic location detection or manual location selection through interactive maps.
- 📅 Extended Forecasts: View hourly forecasts for today and 5-day predictions with detailed weather metrics.
- ⭐ Favorite Locations: Save multiple locations for quick access and compare weather across different cities.
- 🔔 Weather Alerts: Set custom weather alerts with notification or alarm options to stay informed.
- ⚙️ Full Customization: Choose temperature units (Kelvin, Celsius, Fahrenheit), wind speed units, and language preference.
- 🔐 Cloud Sync: Synchronized data across devices using Firebase authentication.
- 📶 Offline Access: Full access to cached weather data and saved favorites without internet connectivity.
- 🎨 Modern UI: Material Design 3 components with smooth animations and intuitive navigation.
- MVVM (Model-View-ViewModel): Clean separation of concerns for maintainability and testability.
- Repository Pattern: Centralized data management between local and remote sources.
- Networking: Retrofit & Coroutines for reactive API handling.
- Database: Room Persistence Library for robust local caching.
- Images: Glide for optimized image loading and caching.
- Background Tasks: WorkManager for periodic data synchronization.
- Location Services: Google Play Services for GPS and Maps integration.
com.example.rasd
├── ui
│ ├── home # Dashboard & current weather display
│ ├── settings # Location & preference configuration
│ ├── alerts # Weather alerts management
│ ├── favorites # Saved locations list
│ └── MainActivity # Navigation & main activity
├── data
│ ├── local # Room database & DAOs
│ ├── remote # Retrofit API service
│ └── repository # Data abstraction layer
├── utils # Helpers & extensions
├── services # Background services & workers
- Android Studio 2022.1+
- Android SDK 13 (API 33)+
- OpenWeatherMap API Key
-
Clone the repository:
git clone https://github.com/MahmoudRafaat/Weather-Forecast-Application.git cd Weather-Forecast-Application -
Get your API Key:
- Visit OpenWeatherMap
- Create an account and generate your API key
-
Add API Key:
- Create
local.propertiesfile in project root - Add:
OPENWEATHER_API_KEY=your_api_key_here
- Create
-
Build & Run:
./gradlew build ./gradlew installDebug
- Home Screen: View current weather and today's forecast at a glance.
- Settings: Configure location preferences, units, and language.
- Favorites: Add and manage multiple favorite locations.
- Alerts: Create custom weather alerts with your preferred notification style.
- Maps: Interactive location selection with search functionality.
USED junit4 for tesing
# Unit Tests
./gradlew test
# Instrumented Tests
./gradlew connectedAndroidTestDeveloped with ❤️ by Mahmoud Rafaat





