Application to get the weather from different random locations using MVVM architecture with the latest technologies and best practices.
- One view to show the weather from a random location.
- One button to refresh the weather with a new random location.
Do you like Modern Android Development scores? Welcome, here it is mine:
- App:
- DI: Dagger dependencies injections.
- Framework: OpenWeather Retrofit implementation and mappers.
- UI: Keeps the Activities, Fragments and ViewModel logic to manage the app behavior.
- Utils: Some extra logic shared between the different App packages.
- Data:
- DataSources: Interfaces to define the behavior of our services.
- Repository: Used to maintain the DataSource logic. We could have a repository that handle data from the current OpenWeather service or from local by using Room.
- Service: Used to store the implementation of the services
- Domain:
- Model: Our business logic related to the domain.
- Repository: Interfaces to define the high level behavior of our repositories.
- Service: Interfaces to define the logic of some part of our domain
- Testcore: Some shared classes to unify repetitive code to test Coroutines or build test objects.