- Architecture MVI with Mosby MVI library
- Data (for models, database, API and preferences).
- Presentation (for UI logic, with Mosby Mvi Presenter).
- Dependency injection with Koin.
- Full reactive programming with RxKotlin, RxAndroid, RxBinding.
- Networking with Retrofit, Moshi, RxJava2 Adapter.
- Local data with Room Persistence.
- Auto update weather per 15 minutes with Jetpack WorkManager.
- Add testing
- Use Kotlin coroutine and suspend function instead of Rx Single, Rx Completable
- Fix some problems