https://github.com/floschu/control
🎮 coroutines flow based uni-directional architecture
https://github.com/floschu/control
android control controller coroutines kotlin kotlin-flow library mutation-test unidirectional-data-flow
Last synced: 19 days ago
JSON representation
🎮 coroutines flow based uni-directional architecture
- Host: GitHub
- URL: https://github.com/floschu/control
- Owner: floschu
- License: apache-2.0
- Created: 2019-09-21T15:55:22.000Z (over 6 years ago)
- Default Branch: develop
- Last Pushed: 2025-05-26T19:41:37.000Z (8 months ago)
- Last Synced: 2025-05-26T20:38:31.697Z (8 months ago)
- Topics: android, control, controller, coroutines, kotlin, kotlin-flow, library, mutation-test, unidirectional-data-flow
- Language: Kotlin
- Homepage:
- Size: 2.34 MB
- Stars: 57
- Watchers: 3
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

## installation
``` groovy
repositories {
mavenCentral()
}
kotlin {
sourceSets {
commonMain {
dependencies {
implementation("at.florianschuster.control:control-core:$version")
}
}
}
}
```
see [changelog](https://github.com/floschu/control/blob/develop/CHANGELOG.md) for versions
## controller

A [Controller](control-core/src/commonMain/kotlin/at/florianschuster/control/Controller.kt) is an
ui-independent class that controls the state of a view. The role of a `Controller` is to separate
business-logic from view-logic. A `Controller` has no dependency to the view, so it can easily be
unit tested.
## info & documentation
1. [controller](https://github.com/floschu/control/wiki/controller)
2. [view](https://github.com/floschu/control/wiki/view)
3. [transformations](https://github.com/floschu/control/wiki/transformations)
4. [effects](https://github.com/floschu/control/wiki/effects)
5. [controller testing](https://github.com/floschu/control/wiki/controller-testing)
6. [view testing](https://github.com/floschu/control/wiki/view-testing)
7. [logging](https://github.com/floschu/control/wiki/logging)
## examples
* [kotlin-counter](examples/kotlin-counter): most basic kotlin example. uses `Controller`.
* [android-counter](examples/android-counter): android counter example built
with [jetpack compose](https://developer.android.com/jetpack/compose).
## author
visit my [website](https://florianschuster.at/).