Skip to content

MVVM + Clean : Android Weather App to fetch current and 5 days / 3 hours data from https://openweathermap.org/appid with latest tech stack in android development

Notifications You must be signed in to change notification settings

balwinderSingh1989/WeatherForecast

Repository files navigation

WeatherForecast

Weather App to fetch current and 5 days / 3 hours data from https://openweathermap.org/appid

App Walk-through

Video : https://www.youtube.com/watch?v=JRDAzqniCNE

WeatherForecast is a an android app , which uses APIs to fetch 5 day / 3 hour forecast weather data from the OpenWeatherMap App has been developed using latest tech stack available at android as on 14-April-2020.

Libraries and tools 🛠

  • Navigation
  • Shared Preferences
  • ViewModel
  • Shared Transition
  • LiveData
  • Data Binding
  • RxJava
  • RxAndroid
  • RxKotlin
  • Dagger 2
  • Retrofit
  • Material Design
  • Architecture

    The app uses MVVM [Model-View-ViewModel] with [Clean] architecture to have a unidirectional flow of data, separation of concern, testability, and a lot more. app has module [core] that take contains aof data, domain and use cases layer. App modules is seperated to have only UI/presentation layer.

    Architecture

    IMPORTANT POINTS

  • App always remebers your last known locaiton and would use the same is location services are disabled
  • AppId for openweather API is located within APPconstant.kt file. You can use your's if required.
  • APP Flavors

    flavors UAT,SIT, PROD and MOCK for demonstration.

    with mock you can run the app offline and app would display data using test data from datafactory.

    In Progess

  • Setting screen to Update APP-ID and change language and units
  • Writing Junit Test cases
  • About

    MVVM + Clean : Android Weather App to fetch current and 5 days / 3 hours data from https://openweathermap.org/appid with latest tech stack in android development

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages