https://github.com/uniflow-kt/uniflow-kt
Uniflow 🦄 - Simple Unidirectional Data Flow for Android & Kotlin, using Kotlin coroutines and open to functional programming
https://github.com/uniflow-kt/uniflow-kt
android coroutines kotlin kotlin-coroutines mvi state-flow unidirectional-data-flow uniflow viewmodel
Last synced: about 2 months ago
JSON representation
Uniflow 🦄 - Simple Unidirectional Data Flow for Android & Kotlin, using Kotlin coroutines and open to functional programming
- Host: GitHub
- URL: https://github.com/uniflow-kt/uniflow-kt
- Owner: uniflow-kt
- License: apache-2.0
- Created: 2019-04-09T08:21:20.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-08-08T16:30:27.000Z (over 3 years ago)
- Last Synced: 2024-04-16T11:49:28.739Z (almost 2 years ago)
- Topics: android, coroutines, kotlin, kotlin-coroutines, mvi, state-flow, unidirectional-data-flow, uniflow, viewmodel
- Language: Kotlin
- Homepage:
- Size: 1.5 MB
- Stars: 605
- Watchers: 16
- Forks: 33
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE
Awesome Lists containing this project
README

## Setup 🚀
### Current Version - 1.1.2
[](https://search.maven.org/search?q=org.uniflow-kt)
### Gradle setup
Repository is now __Maven Central__:
```gradle
repositories {
mavenCentral()
}
```
Check the [latest version](https://search.maven.org/search?q=org.uniflow-kt)
```gradle
// Core
implementation 'org.uniflow-kt:uniflow-core:$uniflow_version'
testImplementation 'org.uniflow-kt:uniflow-test:$uniflow_version'
// Android
implementation 'org.uniflow-kt:uniflow-android:$uniflow_version'
testImplementation 'org.uniflow-kt:uniflow-android-test:$uniflow_version'
// Extras
implementation 'org.uniflow-kt:uniflow-saferesult:$uniflow_version'
implementation 'org.uniflow-kt:uniflow-arrow:$uniflow_version'
```
⚠️ Due to Maven Central migration, group id has been updated from `io.uniflow` to `org.uniflow-kt` ⚠️
## Getting started 🚀
- [Quick start with Uniflow](doc/start.md)
## Documentation 📖
- [What is Uniflow?](doc/what.md)
- [Writing an Action to update your state](doc/state_action.md)
- [Pushing Events for side effects](doc/events.md)
- [Running coroutines from your Action](doc/coroutines.md)
- [State Guard - Running an action on a given state](doc/state_guard.md)
- [Notifying State Changes](doc/notify_update.md)
- [Easy Error Handling](doc/errors.md)
- [Logging Actions](doc/logging.md)
- [Testing your DataFlow](doc/testing.md)
- [States and Jetpack Compose](doc/compose.md)
- [From Coroutines Flow to Actions](doc/flow.md)
- [Defining Multiple Streams](doc/multiple_streams.md)
- [Persistent Stream to recover state](doc/persistent.md)
- [More Safely with Functional Approach](doc/functional.md)
- [Migrating from Uniflow 0.x to 1.0.x](doc/migrating.md)
### Sample Apps 🎉
- [Weather App](https://github.com/uniflow-kt/weatherapp-uniflow)
- [Jetpack Compose Samples with Uniflow](https://github.com/uniflow-kt/compose-samples)
## Resources ☕️
- [Riding the state flow (AndroidMakers 2020)](https://www.youtube.com/watch?v=m6dyIv1rDdo)
- [Making Android unidirectional data flow with Kotlin coroutines 🦄](https://medium.com/@giuliani.arnaud/making-android-unidirectional-data-flow-with-kotlin-coroutines-d69966717b6e)
- [An efficient way to use Uniflow](https://blog.kotlin-academy.com/an-efficient-way-to-use-uniflow-2b41a9785a05?gi=bce973f6a529)
## Contact us 💬
Come talk on Kotlin Slack @ [#uniflow channel](https://kotlinlang.slack.com/?redir=%2Fmessages%2Funiflow)