decompose

Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing (navigation) and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.)

22 articles 2.8k View on GitHub ↗
22 articles
How Decompose Handles Nested Component Scopes in Kotlin Multiplatform

Discover how Decompose manages nested component scopes in Kotlin Multiplatform. Learn how it isolates child contexts, merges lifecycles, and separates state for a robust hierarchy.

deep-dive
Feb 25, 2026
Understanding the Relationship Between Child and Child.Created in Decompose

Explore the Decompose relationship between Child and Child.Created. Understand how Child.Created represents active navigation instances while Child is the base type for active and destroyed children.

deep-dive
Feb 25, 2026
How to Implement Type-Safe Navigation Arguments in Decompose

Learn how to implement type-safe navigation arguments in Decompose. Use generic StackNavigation and serializable config classes for compile-time safety and state restoration.

how-to-guide
Feb 25, 2026
How Decompose Integrates with SwiftUI for iOS Development

Learn how Decompose integrates with SwiftUI for iOS development. Seamlessly bridge Kotlin Multiplatform components and handle navigation with a custom @StateValue property wrapper and StackView adapter.

how-to-guide
Feb 25, 2026
DecomposeExperimentFlags in Decompose: Purpose, Deprecation, and Migration Guide

Learn about DecomposeExperimentFlags in the arkivanov/decompose library. Understand its purpose, deprecation, and how to migrate to the stable DecomposeSettings API for cleaner duplicate configuration handling.

migration-guide
Feb 25, 2026
Decompose Error Propagation: How ErrorHandlers Work in Arkivanov's Library

Learn how Decompose centralizes error propagation using thread-safe ErrorHandlers. Route library errors to custom systems with DecomposeSettings onDecomposeError callback.

deep-dive
Feb 25, 2026
LazyChildItems in Decompose: Lazy Navigation for Dynamic Child Lists

Explore LazyChildItems in Decompose for efficient lazy navigation of dynamic child lists. Perfect for lists and galleries ensuring components load only when needed. Optimize your UI performance now.

deep-dive
Feb 25, 2026
How to Implement Multi-Pane Navigation with ChildPanels in Decompose

Learn to implement multi-pane navigation with ChildPanels in Decompose. Create responsive layouts with Main, Details, and Extra panels adapting automatically to SINGLE, DUAL, and TRIPLE modes.

how-to-guide
Feb 25, 2026
How Decompose Retains Component Instances Across Configuration Changes

Discover how Decompose retains component instances across configuration changes using Essenty InstanceKeeper, ensuring state persistence and a smooth user experience. Learn more

internals
Feb 25, 2026
ComponentContextFactory in Decompose: How It Creates Isolated Child Component Contexts

Learn how ComponentContextFactory in Decompose creates isolated child component contexts using Lifecycle StateKeeper InstanceKeeper and BackHandler services. Understand its role in component management.

internals
Feb 25, 2026
How ChildPages Handles Pager-Like Navigation in Decompose: Architecture and Implementation

Explore how ChildPages in Decompose synchronizes Jetpack Compose pager gestures with navigation state and manages component lifecycles lazily to create seamless pager-like navigation.

architecture
Feb 25, 2026
How to Create Custom ComponentContext Implementations in Decompose

Learn to create custom ComponentContext implementations in Decompose using Kotlin delegation. Enhance your app architecture with custom context wrappers for better control.

how-to-guide
Feb 25, 2026

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →