# decompose | Arkadii Ivanov | Knowledge Base | Instagit

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

GitHub Stars: 2.8k

Repository: https://github.com/arkivanov/decompose

---

## Articles

### [How Decompose Handles Nested Component Scopes in Kotlin Multiplatform](/arkivanov/decompose/how-does-decompose-handle-nested-component-scopes)

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.

- Tags: deep-dive
- Published: 2026-02-25

### [Understanding the Relationship Between Child and Child.Created in Decompose](/arkivanov/decompose/what-is-the-relationship-between-child-and-childcreated-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.

- Tags: deep-dive
- Published: 2026-02-25

### [How to Implement Type-Safe Navigation Arguments in Decompose](/arkivanov/decompose/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.

- Tags: how-to-guide
- Published: 2026-02-25

### [How Decompose Integrates with SwiftUI for iOS Development](/arkivanov/decompose/how-does-decompose-integrate-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.

- Tags: how-to-guide
- Published: 2026-02-25

### [DecomposeExperimentFlags in Decompose: Purpose, Deprecation, and Migration Guide](/arkivanov/decompose/what-is-the-purpose-of-decomposeexperimentflags)

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.

- Tags: migration-guide
- Published: 2026-02-25

### [Decompose Error Propagation: How ErrorHandlers Work in Arkivanov's Library](/arkivanov/decompose/how-does-decompose-handle-error-propagation-with-errorhandlers)

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

- Tags: deep-dive
- Published: 2026-02-25

### [LazyChildItems in Decompose: Lazy Navigation for Dynamic Child Lists](/arkivanov/decompose/what-is-lazychildrenitems-and-when-should-we-use-it)

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.

- Tags: deep-dive
- Published: 2026-02-25

### [How to Implement Multi-Pane Navigation with ChildPanels in Decompose](/arkivanov/decompose/how-to-implement-multi-pane-navigation-with-childpanels)

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.

- Tags: how-to-guide
- Published: 2026-02-25

### [How Decompose Retains Component Instances Across Configuration Changes](/arkivanov/decompose/how-does-decompose-handle-instance-retaining-over-configuration-changes)

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

- Tags: internals
- Published: 2026-02-25

### [ComponentContextFactory in Decompose: How It Creates Isolated Child Component Contexts](/arkivanov/decompose/what-is-the-role-of-componentcontextfactory-in-creating-child-components)

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

- Tags: internals
- Published: 2026-02-25

### [How ChildPages Handles Pager-Like Navigation in Decompose: Architecture and Implementation](/arkivanov/decompose/how-does-childpages-handle-pager-like-navigation-in-decompose)

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

- Tags: architecture
- Published: 2026-02-25

### [How to Create Custom ComponentContext Implementations in Decompose](/arkivanov/decompose/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.

- Tags: how-to-guide
- Published: 2026-02-25

### [How Decompose Integrates with Jetpack Compose for UI Rendering](/arkivanov/decompose/how-does-decompose-integrate-with-jetpack-compose-for-ui-rendering)

Learn how Decompose integrates with Jetpack Compose for seamless UI rendering. Discover its use of Children composable for navigation state, state preservation, and animations.

- Tags: architecture
- Published: 2026-02-25

### [Difference Between SlotNavigation and StackNavigation in Decompose](/arkivanov/decompose/what-is-the-difference-between-slotnavigation-and-stacknavigation)

Understand the difference between SlotNavigation and StackNavigation in Decompose. Learn how StackNavigation uses a back-stack for layered screens and SlotNavigation manages single optional configurations for exclusive UI eleme...

- Tags: deep-dive
- Published: 2026-02-25

### [How to Implement Deep Linking with StackNavigation in Decompose](/arkivanov/decompose/how-to-implement-deep-linking-with-stacknavigation-in-decompose)

Learn to implement deep linking in Decompose using StackNavigation. Parse URLs into components and build your navigation stack efficiently.

- Tags: how-to-guide
- Published: 2026-02-25

### [How Decompose Handles State Preservation Across Process Death on Android](/arkivanov/decompose/how-does-decompose-handle-state-preservation-across-process-death-on-android)

Decompose ensures Android state preservation across process death using SavedStateRegistry and kotlinx serialization for automatic data backup and restore.

- Tags: how-to-guide
- Published: 2026-02-25

### [Decompose GenericComponentContext Architecture: Core Abstraction and Extensions](/arkivanov/decompose/what-is-the-architecture-of-genericcomponentcontext-and-its-extensions)

Explore GenericComponentContext architecture in Decompose. Learn how it unifies lifecycle, state, and back handling for hierarchical child contexts. Optimize your app structure today.

- Tags: architecture
- Published: 2026-02-25

### [How to Handle Back Button Presses with BackHandlerOwner in Decompose](/arkivanov/decompose/how-to-handle-back-button-presses-with-backhandlerowner-in-decompose)

Master back button presses in Decompose using BackHandlerOwner. Learn to register lifecycle-aware back callbacks for seamless navigation stack integration. Get started today.

- Tags: how-to-guide
- Published: 2026-02-25

### [How ChildStack Manages Back Stack Navigation State in Decompose](/arkivanov/decompose/how-does-childstack-manage-back-stack-navigation-state)

Learn how ChildStack manages back stack navigation state in Decompose. Understand its immutable list approach and state transformation for seamless navigation.

- Tags: internals
- Published: 2026-02-25

### [How to Implement Custom Navigation Using ChildrenFactory in Decompose](/arkivanov/decompose/how-to-implement-custom-navigation-using-childrenfactory-in-decompose)

Learn to implement custom navigation in Decompose using ChildrenFactory. Master state persistence, lifecycle transitions, and back-button handling with immutable NavState snapshots and pure-function transformations.

- Tags: how-to-guide
- Published: 2026-02-25

### [StateKeeper vs InstanceKeeper in Decompose: When to Use Each for State Management](/arkivanov/decompose/what-is-the-difference-between-statekeeper-and-instancekeeper-in-decompose)

Understand StateKeeper vs InstanceKeeper in Decompose. Learn when to use StateKeeper for persistent data and InstanceKeeper for non-serializable objects to optimize your state management.

- Tags: deep-dive
- Published: 2026-02-25

### [How ComponentContext Manages Lifecycle Events in Decompose: A Deep Dive into the Source Code](/arkivanov/decompose/how-does-componentcontext-manage-lifecycle-events-in-decompose)

Explore how ComponentContext manages Decompose lifecycle events with MergedLifecycle, synchronizing parent and child states for seamless component management. Dive into the source code.

- Tags: deep-dive
- Published: 2026-02-25

