- 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