This is a Weather App based on and extended from philipplackner's version.
- Provides hourly weather information for 7 days from Open Meteo
- Uses Google Maps API to let users pick any location in the world from which to retrieve weather information
- Uses OneMap reverse geocoding to retrieve more readable/familiar building names. This feature falls back to Google Maps reverse geocoding especially in cases when the location specified is outside Singapore.
- Kotlin
- Jetpack Compose
- Compose destinations
- MVI with Clean Architecture
- Hilt for dependency injection
- FusedLocationProvider
- GoogleMaps API
- OneMap API
- Retrofit2
- Leak Canary
I used OneMap reverse geocoding API to get better names for buildings/roads in Singapore. This API requires an access token that is supposed to expire in 3 days (It worked for at least 2 additional days for me before I changed it). It sometimes throws an HTTP 400 error, and I suspect that it is because the latitude and longitude values provided are not handled by OneMap since it is only focused on Singapore.
- Add refresh ability to update the weather data in WeatherScreen
- Add additional datasources for weather data for aggregation and/or redundancy
- Save map zoom state
- Save previous location on leaving the app