Decompose
Please see the project website for documentation and APIs.
Decompose is a Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Android Views, Jetpack Compose, SwiftUI, JS React, etc.) This project is inspired by Badoos RIBs fork of the Uber RIBs framework.
Setup
Setup Decompose in your Gradle project
Overview
- Components - every component represents a piece of logic with lifecycle and optional pluggable UI.
- ComponentContext - provided to every component with the tools for routing, state keeping, instance keeping and lifecycle
- Routers - responsible for managing components with a backstack and its own
Lifecycle
- StateKeeper - preserve state during configuration changes and/or process death
- InstanceKeeper - retain instances in your components (similar to AndroidX ViewModel)
Samples
Check out the project website for a full description of each sample.
- Counter
- Jetbrains Compose and SwiftUI todo app
- Simple Greetings Jetbrains Compose app - desktop only
Articles
- Decompose — experiments with Kotlin Multiplatform lifecycle-aware components and navigation
- Fully cross-platform Kotlin applications (almost)
Author
Twitter: @arkann1985