This app lets customers search for weather data for a U.S. city by name.
- Architecture Pattern: MVVM
- Dependency Injection: Hilt
- Network Library: Retrofit
- Image Library: Glide
- Concurrency: Kotlin Coroutine, Kotlin Flow
- Unit Test: JUnit, Mockk
- When a customer enters a city's name and presses the Search button, 5-day weather information will be displayed with a 3-hour step.
- When a customer clicks on the icon to weather data for the current location, a UI will be displayed to require location permissions.
- If a customer enters a city that cannot be found by the backend service, an error message will be displayed.
- The last searched city and weather data will be displayed when the app launches.
- Given more time, we can implement autocomplete when a customer enters the city name for a better user experience.
- Given more time, we can support search by zipcode.
- Given more time, we can let users choose between metrics and imperial units.
- Remove the API key from the source code to improve security. For example, we can use Github secrets (reference).