All Projects → badoo → Decompose

badoo / Decompose

Licence: Apache-2.0 license
Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.), inspired by Badoos RIBs fork of the Uber RIBs framework

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Decompose

Decompose
Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.)
Stars: ✭ 339 (-57.57%)
Mutual labels:  components, tree-structure, multiplatform, lifecycle
Brick
🧱 Brick - Multiplatform navigation library for Compose.
Stars: ✭ 33 (-95.87%)
Mutual labels:  multiplatform, jetpack-compose
me
A Jetpack Compose Kotlin Multiplatform WYSIWYG blog editor
Stars: ✭ 62 (-92.24%)
Mutual labels:  multiplatform, jetpack-compose
Multiplatform-LiveData
Multiplatorm implementation of LiveDatas / MVVM in kotlin android & native ios
Stars: ✭ 95 (-88.11%)
Mutual labels:  components, multiplatform
ToDometer Multiplatform
WIP Kotlin Multiplatform project: A meter to-do list built with Android Jetpack, Compose UI Multiplatform, Wear Compose, SQLDelight, Koin Multiplatform, SwiftUI, Ktor Server / Client, Exposed...
Stars: ✭ 145 (-81.85%)
Mutual labels:  multiplatform, jetpack-compose
kmm-production-sample
This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you can download it from the App Store and Google Play. It's been designed to demonstrate how KMM can be used in real production projects.
Stars: ✭ 1,476 (+84.73%)
Mutual labels:  multiplatform, jetpack-compose
components
Reusable React components used by HospitalRun
Stars: ✭ 109 (-86.36%)
Mutual labels:  components
compose-actors
🤖 Android app built with jetpack 🚀 compose follows new revamped guide to app architecture. Implemented with State, Coroutines ➰, ViewModels, Repository pattern, Light/Dark theme 🌈 MD3, Animations, Draw on canvas, Custom layouts, UI state handling, 🌀 Image loading with coil, Palette 🎨 usage and dynamic theming etc.
Stars: ✭ 80 (-89.99%)
Mutual labels:  jetpack-compose
amplify-ui
A multi-framework Design System to provide a solid foundation for building UI!
Stars: ✭ 487 (-39.05%)
Mutual labels:  components
lab-cli
Command line utilities and exporting module for Compositor Lab
Stars: ✭ 52 (-93.49%)
Mutual labels:  components
Y-BP
YFE Team 前端最佳实践
Stars: ✭ 28 (-96.5%)
Mutual labels:  components
react-figma-ui
🏗️ React implementation for figma-plugin-ds
Stars: ✭ 25 (-96.87%)
Mutual labels:  components
snabberb
A simple component view framework for Ruby Opal based on Snabbdom
Stars: ✭ 41 (-94.87%)
Mutual labels:  components
PopKorn
DI can be simple. Forget about modules and components. Just use it!
Stars: ✭ 139 (-82.6%)
Mutual labels:  multiplatform
tailwind-css-components
Tailwind CSS Components - Free and Open-Source Tailwind Components | AppSeed
Stars: ✭ 56 (-92.99%)
Mutual labels:  components
compose chat
一个用 Jetpack Compose 实现的 IM APP
Stars: ✭ 158 (-80.23%)
Mutual labels:  jetpack-compose
plugin-toolkit-react
Adobe XD plugin UI components for React
Stars: ✭ 30 (-96.25%)
Mutual labels:  components
rainbow
一款极简单的Vue UI组件库
Stars: ✭ 14 (-98.25%)
Mutual labels:  components
wexond-ui
List of reusable React components following Wexond design patterns
Stars: ✭ 24 (-97%)
Mutual labels:  components
toolkit
Opera Web UI Toolkit
Stars: ✭ 20 (-97.5%)
Mutual labels:  components

Maven Central License Twitter URL

badge badge badge badge badge badge badge

Maintenance notice

This repository is not maintained. Arkadii Ivanov continued to work on the fork arkivanov/Decompose.

Decompose

Please see the project website for documentation and APIs.

Decompose is a Kotlin Multiplatform library for breaking down your code into lifecycle-aware business logic components (aka BLoC), with routing functionality and pluggable UI (Jetpack Compose, Android Views, SwiftUI, JS React, etc.). This project is inspired by Badoos RIBs fork of the Uber RIBs framework.

Setup

Please check the Installation section of the documentation.

Overview

Here are some key concepts of the library, more details can be found in the documentation.

  • Component - every component represents a piece of logic with its own lifecycle, the UI is optional an is plugged externally
  • ComponentContext - every component has its own [ComponentContext], which makes components lifecycle-aware and allows state preservation, instances retaining (aka AndroidX ViewModel) and back button handling
  • Router - enables navigation between child components, nested navigation is also supported
  • Lifecycle - provides a way to listen for lifecycle events in components
  • StateKeeper - makes it possible to preserve state or data in a component when it gets destroyed
  • InstanceKeeper - retains instances in your components (similar to AndroidX ViewModel)
  • BackPressedHandler - provides a way to handle and intercept back button presses

Component hierarchy

Pluggable UI hierarchy

Typical component structure

Samples

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

Articles

Author

Twitter: @arkann1985

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].