Skip to content
vivid-moneyPublic

Repository files navigation

Elmslie

Maven Central Version License badge

Elmslie is a minimalistic reactive implementation of TEA/ELM written in kotlin with java support.
Named after George Grant Elmslie, a Scottish-born architect.

Why?

  • Scalable and Reusable: Built-in support for nesting components
  • Multiplatform: Written with pure Kotlin and Coroutines, supports KMP (Android, iOS, JS)
  • Single immutable state: Simplify state management
  • UDF: Say no to spaghetti code with Unidirectional Data Flow

Documentation

This is a visual representation of the architecture:

For more info head to the wiki

Samples

Samples are available here

  • Basic loader for android: link
  • Pure kotlin calculator: link

Download

Library is distributed through Maven Central

Add repository in the root build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

Add required modules:

  • Core - for pure kotlin ELM implementation

implementation 'money.vivid.elmslie:elmslie-core:{latest-version}'

  • Android - for android apps only, simplifies lifecycle handling

implementation 'money.vivid.elmslie:elmslie-android:{latest-version}'

  • BOM - pins every Elmslie module to one version
dependencies {
    implementation(platform("money.vivid.elmslie:elmslie-bom:{latest-version}"))
    implementation("money.vivid.elmslie:elmslie-core")
    implementation("money.vivid.elmslie:elmslie-android")
}

Supported platforms

elmslie-core publishes Android, JVM, iOS, macOS, tvOS, watchOS, Linux, Windows, JS and Wasm/JS targets. elmslie-android publishes Android only.

Related articles