Sample Weather Forecast Android Application
A demo application showing weather forecast of your current location. The project has been written in Kotlin language. For network requests, it uses Retrofit with RxJava and Moshi and Room for local caching. Dagger2 has been used for Dependency injection.
The project is built using the Clean architectural pattern. Clean architecture allows for the separation of concern which also makes testing easier.
To configure the project get the api key from Openweathermap. Add this to your local.properties file in the project
API_KEY=ADD_YOUR_API_KEY_HERE
Libraries used in the whole application are:
- Viewmodel - Manage UI related data in a lifecycle conscious way
- Room - Provides abstraction layer over SQLite
- RxJava - RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
- Dagger2 - Used for Dependency injection
- Retrofit - Turns your HTTP API into a Java interface.
- Mockito - Enables mock creation, verification and stubbing for testing
- MockWebServer - A scriptable web server for testing HTTP clients
- Glide - Media management and image loading framework for Android