This project is a sample project. That provide forecast weather feature for user. Apply Clean Architecture. Single source of truth implementation. The weather API get from here
- Room and SharedPreferences use to save weather cache, city and other settings.
- Navigation use to navigate between fragment, show dialog and send value between two fragment.
- Retrofit + Moshi use to communicate with web service and convert Json to Object.
- Dependency Injection with Hilt apply dependency injection easier, one of important library need for Clean architecture.
- Rx Android.
- Coroutines.
- Glide use to load image from internet.
- Jacoco use for report code coverage.
All data from internet will be saved to local database and view will observer from there.
- Domain layer: all use cases, entities, value objects.
- Data layer: share preferences, database, remote API etc.
- Presentation layer: UI.
- Current weather.
- Background color change by weather or time.
- Forecast weather.
- Management cities.
- Auto update weather per 30 minutes.
- There are around 20% code coverage, so we need write more test in future.
- Update animation when add and delete city in management screen.
- ...