https://github.com/hoc081098/weatherapp_mvi_sample
🌸[Functional reactive programming (FRP)] 🍁Simple Android weather forecast application written in Kotlin, using RxKotlin, Retrofit2, Mosby, Room Persistence ❄️MVI Pattern with Mosby Library
https://github.com/hoc081098/weatherapp_mvi_sample
android android-mvi-sample jetpack jetpack-workmanager koin koltin mosby mosby3 mvi mvi-android mvi-architecture retrofit2 room-android room-persistence-library rxkoltin weather weather-android weather-app weather-forecast
Last synced: about 1 year ago
JSON representation
🌸[Functional reactive programming (FRP)] 🍁Simple Android weather forecast application written in Kotlin, using RxKotlin, Retrofit2, Mosby, Room Persistence ❄️MVI Pattern with Mosby Library
- Host: GitHub
- URL: https://github.com/hoc081098/weatherapp_mvi_sample
- Owner: hoc081098
- License: mit
- Created: 2018-08-25T13:07:58.000Z (almost 8 years ago)
- Default Branch: try_mvi
- Last Pushed: 2025-03-26T18:30:16.000Z (about 1 year ago)
- Last Synced: 2025-03-26T19:32:43.092Z (about 1 year ago)
- Topics: android, android-mvi-sample, jetpack, jetpack-workmanager, koin, koltin, mosby, mosby3, mvi, mvi-android, mvi-architecture, retrofit2, room-android, room-persistence-library, rxkoltin, weather, weather-android, weather-app, weather-forecast
- Language: Kotlin
- Homepage: https://kotlinshare.wordpress.com/
- Size: 313 MB
- Stars: 178
- Watchers: 2
- Forks: 17
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WeatherApp Mosby MVI RxJava
[](https://github.com/hoc081098/WeatherApp_MVI_sample/actions/workflows/build.yml)
[](https://github.com/hoc081098/WeatherApp_MVI_sample/actions/workflows/spotless.yml)
## Sreenshots
| | | |
| :---: | :---: | :---: |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
## Features
- Architecture MVI with [Mosby MVI library](https://github.com/sockeqwe/mosby)
- Data (for models, database, API and preferences).
- Presentation (for UI logic, with Mosby Mvi Presenter).
- Dependency injection with [Koin](https://insert-koin.io/).
- Full reactive programming with [RxKotlin](https://github.com/ReactiveX/RxKotlin), [RxAndroid](https://github.com/ReactiveX/RxAndroid), [RxBinding](https://github.com/JakeWharton/RxBinding).
- Networking with [Retrofit](https://square.github.io/retrofit/), [Moshi](https://github.com/square/moshi), [RxJava2 Adapter](https://github.com/square/retrofit/tree/master/retrofit-adapters/rxjava2).
- Local data with [Room Persistence](https://developer.android.com/topic/libraries/architecture/room).
- Auto update weather per 15 minutes with [Jetpack WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager).
## Trying:
[Debug apk](https://github.com/hoc081098/WeatherApp_MVI_sample/blob/try_mvi/app/build/outputs/apk/debug/app-debug.apk)
## Todo
- Add testing
- Use [Kotlin coroutine](https://github.com/Kotlin/kotlinx.coroutines) and suspend function instead of Rx Single, Rx Completable
- Fix some problems