Awesome Open Source
Awesome Open Source

Maven Central License Twitter URL

badge badge badge badge badge badge badge


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 Decompose in your Gradle project


  • 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)

Component hierarchy

Pluggable UI hierarchy

Typical component structure


Check out the project website for a full description of each sample.



Twitter: @arkann1985

If you like this project you can always Buy Me A Coffee ;-)

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
android (6,352
kotlin (3,662
components (297
jetpack-compose (75
lifecycle (58
multiplatform (53
tree-structure (41