/control

🎛️ coroutines flow based uni-directional architecture

Primary LanguageKotlinApache License 2.0Apache-2.0

flow

version license

last commit code quality coverage build

installation

repositories {
    jcenter()
}

dependencies {
    implementation("at.florianschuster.control:control-core:$version")
}

see changelog for versions

controller

flow

A Controller 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
  2. view
  3. transformations
  4. controller testing
  5. view testing
  6. logging

examples

  • kotlin-counter: most basic kotlin example. uses Controller.
  • android-counter: most basic android example. uses Controller from kotlin-counter.
  • android-github-search: android github repository search. uses Controller combined with Android Jetpack AAC ViewModel.

coverage

test coverage is automatically run by github actions on [push]

threshold run output
instruction/branch 90% ./gradlew test jacocoTestReport ./control-core/build/reports/jacoco/
mutation 100% ./gradlew pitest ./control-core/build/reports/pitest/

author

visit my website.