Expressus
A Kotlin Multiplatform sample app of a coffee machine, used as a playground for UI state management with Compose and SwiftUI. It illustrates ideas from related articles.
Pick a small issue you can reproduce, then fix it with your AI coding agent.
Share on XLicense: Apache-2.0
Overview
Expressus is a Kotlin Multiplatform sample app of a coffee machine. It serves as a playground for UI state management and illustrates ideas from a set of related articles. The shared module uses a Model-View-Intent architecture, a finite state machine to validate state transitions, and state restoration. The UI is built with Compose Multiplatform on desktop, Jetpack Compose on Android, and SwiftUI on iOS.
Key features
- Model-View-Intent architecture in a shared module
- Finite state machine that validates state transitions
- State restoration for both UI state and FSM state
- UI state emitted through Kotlin Flow and Swift Combine
- Compose Multiplatform, Jetpack Compose and SwiftUI front ends
Best for
Kotlin Multiplatform developers who want a small worked example of MVI with a state machine across Android, iOS and desktop. It is a sample, not a library.
- Upstream
- GuilhE/Expressus
- Fork on GitHub
- Guo-astro/Expressus
- Upstream stars
- 114
- Category
- Developer tools and infrastructure
- Language
- Kotlin
- License
- Apache-2.0
- Forked
- 2022-08-14
- Sync status
- Diverged from upstream
More in Developer tools and infrastructure
An open-source TypeScript engine for calculating Zi Wei Dou Shu charts and consulting traditional references. It helps developers build charting and interpretation tools.
Forked 2026-10-18Last synced 2026-10-20License: MITDeveloper tools and infrastructureGitHub
ImHex is a hex editor for inspecting and editing binary files. Reverse engineers, programmers, and forensic users can search and patch bytes or describe file structures with its pattern language.
Forked 2026-10-17Last synced 2026-10-20License: GPL-2.0Developer tools and infrastructureGitHub
Numa is a portable DNS resolver for local development and privacy. It blocks ads, gives local services names like frontend.numa, and runs without depending on a cloud account.
Forked 2026-10-17Last synced 2026-10-20License: MITDeveloper tools and infrastructureGitHub
Handwired turns ordinary JavaScript logic into differentiable neural-network-style calculations, so programs can run as matrix operations in JavaScript or WebGPU. It is for experimenting with GPU execution and optimization of code written in a traditional style.
Forked 2026-10-16Last synced 2026-10-20License: MITDeveloper tools and infrastructureGitHub