Weatherify fetches data from the OpenWeatherMap API to provide real time weather information. Weatherfiy is implemented using the MVVM single activity architecture, Retrofit2, Dagger-Hilt, LiveData, Coroutines, Room, Navigation Components, View Binding and some other libraries from the Android Jetpack.
-
Visit openweathermap.org to get your API Key
-
Open app/src/main/java/com/weather/weatherify/utils/Constants.kt
-
And add following line:
const val API_KEY_VALUE = "your api key here"
- openweather api provides weather data for any location.
- MVVM Model-View-ViewModel (MVVM) is a structural design pattern that separates objects into model, view and view model.
- Dagger-hilt a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
- Retrofit a REST Client for Android which makes it relatively easy to retrieve and upload JSON (or other structured data) via a REST based webservice.
- Glide a fast and efficient open source media management and image loading framework for Android.
- LiveData to handle data in a lifecycle-aware fashion.
- Navigation Component to handle all navigations and also passing of data between destinations.
- Material Design an adaptable system of guidelines, components, and tools that support the best practices of user interface design.
- Coroutines used to manage the local storage i.e.
writing to and reading from the database
. Coroutines help in managing background threads and reduces the need for callbacks. - View Binding is feature that allows you to more easily write code that interacts with views.
- Room persistence library which provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- Detailed Weather Info By Location
- Detailed weather Forecast
- Search weather By City
- Dark Theme available
All contributions are welcome. If you are interested in seeing a particular feature implemented in this app, please open a new issue so after which you can make a PR!