{"id":17238333,"url":"https://github.com/hoc081098/weatherapp_mvi_sample","last_synced_at":"2025-04-04T15:10:56.954Z","repository":{"id":37029184,"uuid":"146096095","full_name":"hoc081098/WeatherApp_MVI_sample","owner":"hoc081098","description":"🌸[Functional reactive programming (FRP)] 🍁Simple Android weather forecast application written in Kotlin, using RxKotlin, Retrofit2, Mosby, Room Persistence ❄️MVI Pattern with Mosby Library","archived":false,"fork":false,"pushed_at":"2025-03-26T18:30:16.000Z","size":327869,"stargazers_count":178,"open_issues_count":6,"forks_count":17,"subscribers_count":2,"default_branch":"try_mvi","last_synced_at":"2025-03-26T19:32:43.092Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://kotlinshare.wordpress.com/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hoc081098.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-25T13:07:58.000Z","updated_at":"2025-02-24T14:19:01.000Z","dependencies_parsed_at":"2023-09-29T04:00:47.448Z","dependency_job_id":"b5d0e030-915b-422f-8430-2eea0efc6e65","html_url":"https://github.com/hoc081098/WeatherApp_MVI_sample","commit_stats":{"total_commits":136,"total_committers":5,"mean_commits":27.2,"dds":"0.24264705882352944","last_synced_commit":"31bbdbee0efc4a1ed94dd46af743d2f2a918359a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoc081098%2FWeatherApp_MVI_sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoc081098%2FWeatherApp_MVI_sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoc081098%2FWeatherApp_MVI_sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoc081098%2FWeatherApp_MVI_sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hoc081098","download_url":"https://codeload.github.com/hoc081098/WeatherApp_MVI_sample/tar.gz/refs/heads/try_mvi","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247198463,"owners_count":20900080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-10-15T05:45:16.304Z","updated_at":"2025-04-04T15:10:56.927Z","avatar_url":"https://github.com/hoc081098.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WeatherApp Mosby MVI RxJava\n\n[![Build CI](https://github.com/hoc081098/WeatherApp_MVI_sample/actions/workflows/build.yml/badge.svg)](https://github.com/hoc081098/WeatherApp_MVI_sample/actions/workflows/build.yml)\n[![spotless](https://github.com/hoc081098/WeatherApp_MVI_sample/actions/workflows/spotless.yml/badge.svg)](https://github.com/hoc081098/WeatherApp_MVI_sample/actions/workflows/spotless.yml)\n\n## Sreenshots\n|  |  |   |\n| :---:                              | :---:                             | :---:                              |\n| ![](screenshots/Screenshot_1.png)  | ![](screenshots/Screenshot_2.png) | ![](screenshots/Screenshot_3.png)  |\n| ![](screenshots/Screenshot_4.png)  | ![](screenshots/Screenshot_5.png) | ![](screenshots/Screenshot_6.png)  |\n| ![](screenshots/Screenshot_7.png)  | ![](screenshots/Screenshot_8.png) | ![](screenshots/Screenshot_9.png)  |\n| ![](screenshots/Screenshot_10.png)  | ![](screenshots/Screenshot_11.png) | ![](screenshots/Screenshot_12.png)  |\n| ![](screenshots/Screenshot_13.png)  | ![](screenshots/Screenshot_14.png) | ![](screenshots/Screenshot_16.png)  |\n| ![](screenshots/Screenshot_17.png)  | ![](screenshots/Screenshot_18.png) | ![](screenshots/Screenshot_19.png)  |\n| ![](screenshots/Screenshot_20.png)  | ![](screenshots/Screenshot_21.png) | ![](screenshots/Screenshot_22.png)  |\n| ![](screenshots/Screenshot_23.png)  | ![](screenshots/Screenshot_24.png) | ![](screenshots/Screenshot_25.png)  |\n\n## Features\n\n- Architecture MVI with [Mosby MVI library](https://github.com/sockeqwe/mosby)\n    - Data (for models, database, API and preferences).\n    - Presentation (for UI logic, with Mosby Mvi Presenter).\n- Dependency injection with [Koin](https://insert-koin.io/).\n- Full reactive programming with [RxKotlin](https://github.com/ReactiveX/RxKotlin), [RxAndroid](https://github.com/ReactiveX/RxAndroid), [RxBinding](https://github.com/JakeWharton/RxBinding).\n- 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).\n- Local data with [Room Persistence](https://developer.android.com/topic/libraries/architecture/room).\n- Auto update weather per 15 minutes with [Jetpack WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager).\n\n## Trying:\n\n  [Debug apk](https://github.com/hoc081098/WeatherApp_MVI_sample/blob/try_mvi/app/build/outputs/apk/debug/app-debug.apk)\n\n## Todo\n- Add testing\n- Use [Kotlin coroutine](https://github.com/Kotlin/kotlinx.coroutines) and suspend function instead of Rx Single, Rx Completable\n- Fix some problems\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoc081098%2Fweatherapp_mvi_sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoc081098%2Fweatherapp_mvi_sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoc081098%2Fweatherapp_mvi_sample/lists"}