Weather - Google Play
Android mobile application that inform user about the current weather condition in a selected location using GPS or choose a place from google-maps, user can add favorite places which can be accessed any time to check weather condition, default notifications for weather alerts which can be disabled, user can add custom alarms in a specific time range to be informed if there is any alerts within this time period, user can change current location provider, application language or temeprature and windspeed units any time.
- Real-Time weather condition with full details
- Favorite places to save places which user regularly check
- Automatic notifications about weather alerts
- Custom alarms in a specific time range to be informed if there is any alerts within this time period
- Change location provider (GPS, Google-Maps Location)
- Light / Dark theme support
- 6 Colorful palettes to choose from
- Change application language (English, Arabic)
- Change temperature unit (Celsius, Kelvin, Fahrenheit)
- Change wind speed unit (m/s, mph)
- Jetpack Compose - Declarative UI Framework
- Material Design - Design System
- Splash Screen - Newly introduced splash screen API
- Coroutines Flows - Reactive Programming
- Ktor - HTTP Client
- Kotlin Serlization - Kotlin Multiplatform Serialization
- Room - Local Database
- Hilt - Dependency Injection
- Work Manager - Schedule background tasks
- Coil - Image Loading
- DataStore - Asynchronous data storage
- Lottie - Animation
- Google Maps - Embedded Google Maps
- JUnit - Unit Testing
- Truth - Fluent Assertions
- Clean Architecture - Application architecture pattern
- :app module - Presentation layer that contains UI related code and dependency injection
- :data module - Data layer that contains DAOs, DTOs, Mapper, Http services, Data sources and Repository Implementation
- :domain module - Business layer that contains Repository interfaces and Models (Entities)
- MVI - Model-View-Intent design pattern