weather
weather copied to clipboard
Weather android application that show current weather condition in his current location or favorite places which can be accessed any time
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.
Features
- 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)
Libraries and Frameworks
- 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
Architecture and Design Patterns
-
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