# androidx.compose.runtime

Common/AllAndroid/JVMNative/C/iOSJavaScript

In this page, you'll find documentation for types, properties, and functions available in the `androidx.compose.runtime` package. For example:

- State APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State`, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/remember.composable#remember(kotlin.Function0)`, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)`, and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/collectAsState.composable#(kotlinx.coroutines.flow.StateFlow).collectAsState(kotlin.coroutines.CoroutineContext,androidx.compose.runtime.SnapshotMutationPolicy)`.

- Side-effects APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LaunchedEffect.composable#LaunchedEffect(kotlin.coroutines.SuspendFunction1)`, and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SideEffect.composable#SideEffect(kotlin.Function0)`.

- Coroutines related APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/rememberCoroutineScope.composable#rememberCoroutineScope(kotlin.Function0)`, and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)`.

- `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`.

- Composition related APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition`, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer`, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeNode.composable#ComposeNode(kotlin.Function0,kotlin.Function1)`, and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope`.

- Clock APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock`, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)`,

- Certain annotations such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable`, and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Stable`.

If you're looking for guidance instead, check out the following Compose guides:

- [Thinking in Compose](https://developer.android.com/jetpack/compose/mental-model).

- [Managing State in Compose](https://developer.android.com/jetpack/compose/state).

- [Lifecycle of composables](https://developer.android.com/jetpack/compose/lifecycle).

- [Side-effects in Compose](https://developer.android.com/jetpack/compose/side-effects).

## Interfaces

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` | An Applier is responsible for applying the tree-based operations that get emitted during a composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CancellationHandle` | Implementations of this interface can be used to cancel an ongoing operation or unregister a listener by calling `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CancellationHandle#cancel()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeNodeLifecycleCallback` | Observes lifecycle of the node emitted with `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableComposeNode.composable#ReusableComposeNode(kotlin.Function0,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeNode.composable#ComposeNode(kotlin.Function0,kotlin.Function1)` inside `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableContentHost.composable#ReusableContentHost(kotlin.Boolean,kotlin.Function0)` and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableContent.composable#ReusableContent(kotlin.Any,kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer` | Composer is the interface that is targeted by the Compose Kotlin compiler plugin and used by code generation helpers. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition` | A composition object is usually constructed for you, and returned from an API that is used to initially compose a UI. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalAccessorScope` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalMap` | A read-only, immutable snapshot of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` that are set at a specific position in the composition hierarchy. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionServiceKey` | A key to locate a service using the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionServices` interface optionally implemented by implementations of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionServices` | Allows finding composition services from the runtime. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionTracer` | Internal tracing API. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ControlledComposition` | A controlled composition is a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition` that can be directly controlled by the caller. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisposableEffectResult` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DoubleState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DoubleState#doubleValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/FloatState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/FloatState#floatValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultKey` | A type-safe identifier used to define a key for retrieving default values from the hosting environment. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultProvider` | An interface that allows the hosting environment (e.g., Android, Desktop, or iOS) to provide default values for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithHostDefaultOf(androidx.compose.runtime.HostDefaultKey)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState#intValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState#longValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` | Provides a time source for display frames and the ability to perform an action on the next frame. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState#doubleValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState#floatValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState#intValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState#longValue()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function cause the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` to subscribe to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` | A mutable value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState#value()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function, the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` will be subscribed to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausableComposition` | A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausableComposition` is a sub-composition that can be composed incrementally as it supports being paused and resumed. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausedComposition` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausedComposition` is the result of calling `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition#setContent(kotlin.Function0)` or `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableComposition#setContentWithReuse(kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProduceStateScope` | Receiver scope for use with `https://developer.android.com/reference/kotlin/androidx/compose/runtime/produceState.composable#produceState(kotlin.Any,kotlin.coroutines.SuspendFunction1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` | Represents a recomposable scope or section of the composition hierarchy. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposerErrorInformation` | Read only information about `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` error state. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposerInfo` | Read-only information about a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RememberObserver` | Objects implementing this interface are notified when they are initially used in a composition and when they are no longer being used. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableComposition` | A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableComposition` is a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition` that can be reused for different composable content. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ScopeUpdateScope` | Internal compose compiler plugin API that is used to update the function the composer will call to recompose a recomposition scope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ShouldPauseCallback` | The callback type used in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausedComposition#resume(androidx.compose.runtime.ShouldPauseCallback)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy` | A policy to control how the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` report and merge changes to the state object. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` | A value holder where reads to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` property during the execution of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function, the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` will be subscribed to changes of that value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ViewTreeHostDefaultKey` | An Android-specific `https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultKey` that identifies values stored within the `https://developer.android.com/reference/android/view/View.html` hierarchy using Resource ID tags. | android |

## Classes

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/AbstractApplier` | An abstract `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` implementation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/BroadcastFrameClock` | A simple frame clock. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` | The return type of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHashCode()`. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` | A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` is an opaque type that is used to logically "link" two compositions together. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` | Compose passes data through the composition tree explicitly through means of parameters to composable functions. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalContext` | Stores `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal`'s and their values. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisposableEffectScope` | Receiver scope for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisposableEffect.composable#DisposableEffect(kotlin.Function1)` that offers the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisposableEffectScope#onDispose(kotlin.Function0)` clause that should be the last statement in any call to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisposableEffect.composable#DisposableEffect(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MovableContent` | This class is used internally by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentOf(kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MovableContentState` | A Compose compiler plugin API. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MovableContentStateReference` | A Compose compiler plugin API. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausableMonotonicFrameClock` | A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` wrapper that can be `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausableMonotonicFrameClock#pause()`d and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausableMonotonicFrameClock#resume()`d. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` | A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` can be used in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` to provide values. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidedValue` | An instance to hold a value provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` and is created by the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#provides(kotlin.Any)` infix operator. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` | The scheduler for performing recomposition and applying updates to one or more `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition`s. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SkippableUpdater` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotFlowManager` | Orchestrates the observation of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)`s that are collected on the same thread. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Updater` | A helper receiver scope class used by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeNode.composable#ComposeNode(kotlin.Function0,kotlin.Function1)` to help write code to initialized and update a node. | Cmn |

## Objects

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeRuntimeFlags` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock.Key` |   | Cmn |

## Annotations

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` functions are the fundamental building blocks of an application built with Compose. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableInferredTarget` | An annotation generated by the compose compiler plugin. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableInferredTargetConstraints` | An annotation generated by the Compose compiler plugin. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableOpenTarget` | The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` declares that it doesn't expect a particular applier. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableTarget` | This annotation may be applied to a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function one or more times to declare that the function expects an applier whose name is the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableTarget#(kotlin.String)` argument of any of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableTarget` annotations marking the function. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableTargetMarker` | This annotation is used to mark an annotation as being equivalent using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposableTarget` with the fully qualified name of the marked annotation as the `applier` value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisallowComposableCalls` | This will prevent composable calls from happening inside of the function that it applies to. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DontMemoize` | Mark a lambda in composition to opt out of auto-memoization. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ExperimentalComposeApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ExperimentalComposeRuntimeApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ExplicitGroupsComposable` | This annotation can be applied to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` functions so that no groups will be generated in the body of the function it annotates. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Immutable` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Immutable` can be used to mark class as producing immutable instances. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/InternalComposeApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/InternalComposeTracingApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/NoLiveLiterals` | This annotation is used to indicate to the Compose Compiler to not attempt to generate live literals inside the scope of the declaration it is applied to, even when the live literals code generation is turned on. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/NonRestartableComposable` | This annotation can be applied to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` functions in order to prevent code from being generated which allow this function's execution to be skipped or restarted. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/NonSkippableComposable` | This annotation can be applied to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` functions in order to prevent code from being generated which allow this function's execution to be skipped. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReadOnlyComposable` | This annotation can be applied to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` functions so that no group will be generated around the body of the function it annotates. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Stable` | Stable is used to communicate some guarantees to the compose compiler about how a certain type or function will behave. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/StableMarker` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/StableMarker` marks an annotation as indicating a type is stable. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/TestOnly` |   | Cmn |

## Enums

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer.State` | Valid operational states of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer`. | Cmn |

## Composables

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeNode.composable` | Emits a node into the composition of type `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#ComposeNode(kotlin.Function0,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(androidx.compose.runtime.CompositionLocalContext,kotlin.Function0)` binds values to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal`'s, provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#CompositionLocalProvider(androidx.compose.runtime.CompositionLocalContext,kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisposableEffect.composable` | A side effect of composition that must be reversed or cleaned up if the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisposableEffect.composable#DisposableEffect(kotlin.Function1)` leaves the composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LaunchedEffect.composable` | When `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LaunchedEffect.composable#LaunchedEffect(kotlin.coroutines.SuspendFunction1)` enters the composition it will launch `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#LaunchedEffect(kotlin.coroutines.SuspendFunction1)` into the composition's `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableComposeNode.composable` | Emits a recyclable node into the composition of type `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#ReusableComposeNode(kotlin.Function0,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableContent.composable` | A utility function to mark a composition as supporting recycling. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableContentHost.composable` | An optional utility function used when hosting `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableContent.composable#ReusableContent(kotlin.Any,kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SideEffect.composable` | Schedule `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#SideEffect(kotlin.Function0)` to run when the current composition completes successfully and applies changes. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/collectAsState.composable` | Collects values from this `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` and represents its latest value via `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/key.composable` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/key.composable#key(kotlin.Array,kotlin.Function0)` is a utility composable that is used to "group" or "key" a block of execution inside of a composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/produceState.composable` | Return an observable `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` that produces values over time without a defined data source. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/remember.composable` | Remember the value produced by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#remember(kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/rememberCompositionContext.composable` | An Effect to construct a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` at the current point of composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/rememberCoroutineScope.composable` | Return a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-scope/index.html` bound to this point in the composition using the optional `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#rememberCoroutineScope(kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/rememberUpdatedState.composable` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/remember.composable#remember(kotlin.Function0)` a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#rememberUpdatedState(kotlin.Any)` and update its value to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#rememberUpdatedState(kotlin.Any)` on each recomposition of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/rememberUpdatedState.composable#rememberUpdatedState(kotlin.Any)` call. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/withCompositionLocal.composable` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/withCompositionLocal.composable#withCompositionLocal(androidx.compose.runtime.ProvidedValue,kotlin.Function0)` binds value to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` key and returns the result produced by the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withCompositionLocal(androidx.compose.runtime.ProvidedValue,kotlin.Function0)` lambda. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/withCompositionLocals.composable` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/withCompositionLocals.composable#withCompositionLocals(kotlin.Array,kotlin.Function0)` binds values to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` key and returns the result produced by the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withCompositionLocals(kotlin.Array,kotlin.Function0)` lambda. | Cmn |

## Type aliases

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CheckResult` | **This type alias is deprecated.** It was never intended to be public | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` | The return type of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHashCode()`. | Cmn android |

## Top-level functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#Composition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)(applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>, parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext)` This method is the way to initiate a composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ControlledComposition` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/TestOnly https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#ControlledComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)(applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>, parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext)` This method is a way to initiate a composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausableComposition` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#PausableComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)(applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>, parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext)` Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#PausableComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReusableComposition` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#ReusableComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)(applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>, parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext)` This method is the way to initiate a reusable composition. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/TestOnly https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#clearCompositionErrors()()` Clears current composition errors in hot reload mode. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)( policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>, defaultFactory: () -> T )` Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` key that can be provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithComputedDefaultOf(kotlin.Function1)(defaultComputation: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalAccessorScope.() -> T)` Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` that behaves like it was provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#providesComputed(kotlin.Function1)` by default. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithHostDefaultOf(androidx.compose.runtime.HostDefaultKey)(key: https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultKey<T>)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` where the default value is resolved by querying the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#LocalHostDefaultProvider()` with the given `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithHostDefaultOf(androidx.compose.runtime.HostDefaultKey)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)( policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>, calculation: () -> T )` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` object whose `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` is the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-pair/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-exception/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html>>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/TestOnly [currentCompositionErrors](https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositionErrors())()` **This function is deprecated.** currentCompositionErrors only reports errors that extend from Exception. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)(calculation: () -> T)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` object whose `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` is the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)( policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>, calculation: () -> T )` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` object whose `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` is the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/TestOnly https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#disableHotReloadMode()()` Disables hot reload mode in recomposer. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/TestOnly https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#invalidateGroupsWithKey(kotlin.Int)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Invalidates composed groups with the given key. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#isTraceInProgress()()` Internal tracing API. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentOf(kotlin.Function0)(content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <P : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentOf(kotlin.Function1)(content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <P1 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P2 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentOf(kotlin.Function2)(content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <P1 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P2 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P3 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentOf(kotlin.Function3)( content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3, P4) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <P1 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P2 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P3 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P4 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentOf(kotlin.Function4)( content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3, P4) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentWithReceiverOf(kotlin.Function1)(content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentWithReceiverOf(kotlin.Function2)(content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P1 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P2 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentWithReceiverOf(kotlin.Function3)( content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition <R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P1 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P2 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, P3 : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#movableContentWithReceiverOf(kotlin.Function4)( content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableDoubleStateOf(kotlin.Double)(value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html)` Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableDoubleStateOf(kotlin.Double)` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableFloatStateOf(kotlin.Float)(value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableFloatStateOf(kotlin.Float)` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableIntStateOf(kotlin.Int)(value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableIntStateOf(kotlin.Int)` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableLongStateOf(kotlin.Long)(value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableLongStateOf(kotlin.Long)` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateList<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateListOf()()` Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` that is observable and can be snapshot. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateList<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateListOf(kotlin.Array)(vararg elements: T)` Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` that is observable and can be snapshot. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateMap<K, V>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <K : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateMapOf()()` Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` that is observable and can be snapshot. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateMap<K, V>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <K : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateMapOf(kotlin.Array)(vararg pairs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-pair/index.html<K, V>)` Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` that is observable and can be snapshot. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)(value: T, policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>)` Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateSet<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateSetOf()()` Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html` that is observable and can be snapshot. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateSet<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/StateFactoryMarker <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateSetOf(kotlin.Array)(vararg elements: T)` Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html` that is observable and can be snapshot. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#neverEqualPolicy()()` A policy never treat values of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` as equivalent. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#referentialEqualityPolicy()()` A policy to treat values of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` as equivalent if they are referentially (===) equal. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/TestOnly https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#simulateHotReload(kotlin.Any)(context: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` Simulates hot reload of all current compositions by disposing all composed content and restarting compositions. | Cmn |
| `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)(block: () -> T)` Create a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` from observable `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state. | Cmn |
| `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html<T>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ExperimentalComposeRuntimeApi <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)(manager: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotFlowManager, block: () -> T)` Create a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` from observable `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#sourceInformation(androidx.compose.runtime.Composer,kotlin.String)(composer: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer, sourceInformation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` A Compose internal function. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#sourceInformationMarkerEnd(androidx.compose.runtime.Composer)(composer: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer)` A Compose internal function. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#sourceInformationMarkerStart(androidx.compose.runtime.Composer,kotlin.Int,kotlin.String)( composer: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer, key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, sourceInformation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html )` A Compose internal function. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)(defaultFactory: () -> T)` Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` key that can be provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalWithComputedDefaultOf(kotlin.Function1)( defaultComputation: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalAccessorScope.() -> T )` Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` that behaves like it was provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#providesComputed(kotlin.Function1)` by default. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#structuralEqualityPolicy()()` A policy to treat values of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` as equivalent if they are structurally (==) equal. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#traceEventEnd()()` Internal tracing API. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#traceEventStart(kotlin.Int,kotlin.Int,kotlin.Int,kotlin.String)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, dirty1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, dirty2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, info: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Internal tracing API. | Cmn |
| `suspend R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameMillis(kotlin.Function1)(onFrame: (frameTimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> R)` Suspends until a new frame is requested, immediately invokes `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameMillis(kotlin.Function1)` with the frame time in milliseconds in the calling context of frame dispatch, then resumes with the result from `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameMillis(kotlin.Function1)`. | Cmn |
| `suspend R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)(onFrame: (frameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> R)` Suspends until a new frame is requested, immediately invokes `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)` with the frame time in nanoseconds in the calling context of frame dispatch, then resumes with the result from `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)`. | Cmn |
| `suspend R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withRunningRecomposer(kotlin.coroutines.SuspendFunction2)(block: suspend https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-scope/index.html.(recomposer: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer) -> R)` Runs `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withRunningRecomposer(kotlin.coroutines.SuspendFunction2)` with a new, active `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` applying changes in the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`. | Cmn |

## Extension functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DoubleState` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.State).asDoubleState()()` Converts a `State<Double>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Double`s) into a primitive-backed `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/FloatState` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.State).asFloatState()()` Converts a `State<Float>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Float`s) into a primitive-backed `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.State).asIntState()()` Converts a `State<Int>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Int`s) into a primitive-backed `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.State).asLongState()()` Converts a `State<Long>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Long`s) into a primitive-backed `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState`. | Cmn |
| `inline T` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ComposeCompilerApi <T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.Composer).cache(kotlin.Boolean,kotlin.Function0)( invalid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, block: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/DisallowComposableCalls () -> T )` A Compose compiler plugin API. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DoubleState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.DoubleState).getValue(kotlin.Any,kotlin.reflect.KProperty)(thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>)` Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DoubleState`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/FloatState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.FloatState).getValue(kotlin.Any,kotlin.reflect.KProperty)(thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>)` Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/FloatState`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.IntState).getValue(kotlin.Any,kotlin.reflect.KProperty)(thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>)` Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.LongState).getValue(kotlin.Any,kotlin.reflect.KProperty)(thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>)` Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState`. | Cmn |
| `inline operator T` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/State<T>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.State).getValue(kotlin.Any,kotlin.reflect.KProperty)(thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>)` Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MutableDoubleState).setValue(kotlin.Any,kotlin.reflect.KProperty,kotlin.Double)( thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html )` Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MutableFloatState).setValue(kotlin.Any,kotlin.reflect.KProperty,kotlin.Float)( thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MutableIntState).setValue(kotlin.Any,kotlin.reflect.KProperty,kotlin.Int)(thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MutableLongState).setValue(kotlin.Any,kotlin.reflect.KProperty,kotlin.Long)( thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState`. | Cmn |
| `inline operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState<T>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MutableState).setValue(kotlin.Any,kotlin.reflect.KProperty,kotlin.Any)( thisObj: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, property: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-property/index.html<*>, value: T )` Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toLong()()` Converts a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` to a 64-bit Long. | Cmn |
| `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(kotlin.Long).toLong()()` Converts a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` to a 64-bit Long. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateList<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html<T>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(kotlin.collections.Collection).toMutableStateList()()` Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` from a collection that is observable and can be snapshot. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/SnapshotStateMap<K, V>` | `<K : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-iterable/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-pair/index.html<K, V>>.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(kotlin.collections.Iterable).toMutableStateMap()()` Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` from a collection of pairs that is observable and can be snapshot. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toString(kotlin.Int)(radix: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns a String representation of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` with the specified `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toString(kotlin.Int)`. | Cmn |
| `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(kotlin.Long).toString(kotlin.Int)(radix: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns a String representation of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` with the specified `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toString(kotlin.Int)`. | Cmn android |
| `suspend inline R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)( crossinline onFrame: (frameTimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> R )` Suspends until a new frame is requested, immediately invokes `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)` with the frame time in milliseconds in the calling context of frame dispatch, then resumes with the result from `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)`. | Cmn |

## Top-level properties summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#DefaultMonotonicFrameClock()` **This property is deprecated.** MonotonicFrameClocks are not globally applicable across platforms. | Cmn android N JS |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#EmptyCompositeKeyHashCode()` An empty `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode`, equivalent to hashing no content. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal<https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultProvider>` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#LocalHostDefaultProvider()` A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` that provides the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultProvider` to the composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentComposer()` A Compose internal function. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHash()` **This property is deprecated.** Prefer the higher-precision currentCompositeKeyHashCode | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHashCode()` A higher-precision variation of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHash()` used to map externally stored state to the composition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/InternalComposeApi https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositionContext()` Returns the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` associated for the current composer. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalContext` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositionLocalContext()` Returns the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalContext` which contains all `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal`'s in the current composition and their values provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`'s. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/RecomposeScope` | `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentRecomposeScope()` Returns an object which can be used to invalidate the current scope at this point in composition. | Cmn |

## Extension properties summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/ExperimentalComposeApi https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html.https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(kotlin.coroutines.CoroutineContext).monotonicFrameClock()` Returns the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` for this `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` or throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` if one is not present. | Cmn |

## Top-level functions

### Composition

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composition.kt+function:Composition) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
fun Composition(applier: Applier<*>, parent: CompositionContext): Composition
```

This method is the way to initiate a composition. `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` can be

- provided to make the composition behave as a sub-composition of the parent. If composition does

- not have a parent, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` instance should be provided.

It is important to call `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition#dispose()` when composition is no longer needed in order to release resources.

```kotlin
import androidx.compose.runtime.AbstractApplier
import androidx.compose.runtime.Composable
import androidx.compose.runtime.ComposeNode
import androidx.compose.runtime.Composition
import androidx.compose.runtime.CompositionContext
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

// Provided we have a tree with a node base type like the following
abstract class Node {
    val children = mutableListOf<Node>()
}

// We would implement an Applier class like the following, which would teach compose how to
// manage a tree of Nodes.
class NodeApplier(root: Node) : AbstractApplier<Node>(root) {
    override fun insertTopDown(index: Int, instance: Node) {
        current.children.add(index, instance)
    }

    override fun insertBottomUp(index: Int, instance: Node) {
        // Ignored as the tree is built top-down.
    }

    override fun remove(index: Int, count: Int) {
        current.children.remove(index, count)
    }

    override fun move(from: Int, to: Int, count: Int) {
        current.children.move(from, to, count)
    }

    override fun onClear() {
        root.children.clear()
    }
}

// A function like the following could be created to create a composition provided a root Node.
fun Node.setContent(parent: CompositionContext, content: @Composable () -> Unit): Composition {
    return Composition(NodeApplier(this), parent).apply { setContent(content) }
}

// assuming we have Node sub-classes like "TextNode" and "GroupNode"
class TextNode : Node() {
    var text: String = ""
    var onClick: () -> Unit = {}
}
class GroupNode : Node()

// Composable equivalents could be created
@Composable
fun Text(text: String, onClick: () -> Unit = {}) {
    ComposeNode<TextNode, NodeApplier>(::TextNode) {
        set(text) { this.text = it }
        set(onClick) { this.onClick = it }
    }
}

@Composable
fun Group(content: @Composable () -> Unit) {
    ComposeNode<GroupNode, NodeApplier>(::GroupNode, {}, content)
}

// and then a sample tree could be composed:
fun runApp(root: GroupNode, parent: CompositionContext) {
    root.setContent(parent) {
        var count by remember { mutableStateOf(0) }
        Group {
            Text("Count: $count")
            Text("Increment") { count++ }
        }
    }
}
```

| Parameters |
|---|---|
| `applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>` | The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` instance to be used in the composition. |
| `parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` | The parent `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#Composition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` |   |

### ControlledComposition

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composition.kt+function:ControlledComposition) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@TestOnly
fun ControlledComposition(applier: Applier<*>, parent: CompositionContext): ControlledComposition
```

This method is a way to initiate a composition. Optionally, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` can be provided to make the composition behave as a sub-composition of the parent or a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` can be provided.

A controlled composition allows direct control of the composition instead of it being controlled by the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` passed ot the root composition.

It is important to call `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition#dispose()` this composer is no longer needed in order to release resources.

```kotlin
import androidx.compose.runtime.AbstractApplier
import androidx.compose.runtime.Composable
import androidx.compose.runtime.ComposeNode
import androidx.compose.runtime.Composition
import androidx.compose.runtime.CompositionContext
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

// Provided we have a tree with a node base type like the following
abstract class Node {
    val children = mutableListOf<Node>()
}

// We would implement an Applier class like the following, which would teach compose how to
// manage a tree of Nodes.
class NodeApplier(root: Node) : AbstractApplier<Node>(root) {
    override fun insertTopDown(index: Int, instance: Node) {
        current.children.add(index, instance)
    }

    override fun insertBottomUp(index: Int, instance: Node) {
        // Ignored as the tree is built top-down.
    }

    override fun remove(index: Int, count: Int) {
        current.children.remove(index, count)
    }

    override fun move(from: Int, to: Int, count: Int) {
        current.children.move(from, to, count)
    }

    override fun onClear() {
        root.children.clear()
    }
}

// A function like the following could be created to create a composition provided a root Node.
fun Node.setContent(parent: CompositionContext, content: @Composable () -> Unit): Composition {
    return Composition(NodeApplier(this), parent).apply { setContent(content) }
}

// assuming we have Node sub-classes like "TextNode" and "GroupNode"
class TextNode : Node() {
    var text: String = ""
    var onClick: () -> Unit = {}
}
class GroupNode : Node()

// Composable equivalents could be created
@Composable
fun Text(text: String, onClick: () -> Unit = {}) {
    ComposeNode<TextNode, NodeApplier>(::TextNode) {
        set(text) { this.text = it }
        set(onClick) { this.onClick = it }
    }
}

@Composable
fun Group(content: @Composable () -> Unit) {
    ComposeNode<GroupNode, NodeApplier>(::GroupNode, {}, content)
}

// and then a sample tree could be composed:
fun runApp(root: GroupNode, parent: CompositionContext) {
    root.setContent(parent) {
        var count by remember { mutableStateOf(0) }
        Group {
            Text("Count: $count")
            Text("Increment") { count++ }
        }
    }
}
```

| Parameters |
|---|---|
| `applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>` | The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` instance to be used in the composition. |
| `parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` | The parent `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` |   |

### PausableComposition

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/PausableComposition.kt+function:PausableComposition) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0)

```
fun PausableComposition(applier: Applier<*>, parent: CompositionContext): PausableComposition
```

Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#PausableComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)`. A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#PausableComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)` can create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/PausedComposition` which allows pausing and resuming the composition.

| Parameters |
|---|---|
| `applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>` | The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` instance to be used in the composition. |
| `parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` | The parent `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#PausableComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)` |   |

### ReusableComposition

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composition.kt+function:ReusableComposition) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.6.0)

```
fun ReusableComposition(applier: Applier<*>, parent: CompositionContext): ReusableComposition
```

This method is the way to initiate a reusable composition. `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` can be provided to make the composition behave as a sub-composition of the parent. If composition does not have a parent, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` instance should be provided.

It is important to call `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition#dispose()` when composition is no longer needed in order to release resources.

| Parameters |
|---|---|
| `applier: https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier<*>` | The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` instance to be used in the composition. |
| `parent: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` | The parent `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Applier` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#ReusableComposition(androidx.compose.runtime.Applier,androidx.compose.runtime.CompositionContext)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/rememberCompositionContext.composable#rememberCompositionContext()` |   |

### clearCompositionErrors

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/HotReloader.kt+function:clearCompositionErrors) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0)

```
@TestOnly
fun clearCompositionErrors(): Unit
```

Clears current composition errors in hot reload mode. Test-only API, not for use in production.

### compositionLocalOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositionLocal.kt+function:compositionLocalOf) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
fun <T : Any?> compositionLocalOf(
    policy: SnapshotMutationPolicy<T> = structuralEqualityPolicy(),
    defaultFactory: () -> T
): ProvidableCompositionLocal<T>
```

Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` key that can be provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`. Changing the value provided during recomposition will invalidate the content of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` that read the value using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()`.

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` which can be used in a a call to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`. Similar to `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` vs. `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html`, if the key is made public as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` instead of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal`, it can be read using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()` but not re-provided.

| Parameters |
|---|---|
| `policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T> = structuralEqualityPolicy()` | a policy to determine when a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` is considered changed. See `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy` for details. |
| `defaultFactory: () -> T` | a value factory to supply a value when a value is not provided. This factory is called when no value is provided through a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` of the caller of the component using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()`. If no reasonable default can be provided then consider throwing an exception. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |

### compositionLocalWithComputedDefaultOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositionLocal.kt+function:compositionLocalWithComputedDefaultOf) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0)

```
fun <T : Any?> compositionLocalWithComputedDefaultOf(defaultComputation: CompositionLocalAccessorScope.() -> T): ProvidableCompositionLocal<T>
```

Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` that behaves like it was provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#providesComputed(kotlin.Function1)` by default. If a value is provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#provides(kotlin.Any)` it behaves as if the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` was produced by calling `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`.

In other words, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` produced by can be provided identically to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` created with `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` with the only difference is how it behaves when the value is not provided. For a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` the default value is returned. If no default value has be computed for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` the default computation is called.

The lambda passed to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithComputedDefaultOf(kotlin.Function1)` will be invoked every time the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()` is evaluated for the composition local and computes its value based on the current value of the locals referenced in the lambda at the time `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()` is evaluated. This allows providing values that can be derived from other locals. For example, if accent colors can be calculated from a single base color, the accent colors can be provided as computed composition locals. Providing a new base color would automatically update all the accent colors.

```kotlin
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.compositionLocalWithComputedDefaultOf

val LocalBaseValue = compositionLocalOf { 10 }
val LocalLargerValue = compositionLocalWithComputedDefaultOf {
    LocalBaseValue.currentValue + 10
}
```

```kotlin
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.compositionLocalWithComputedDefaultOf

val LocalValue = compositionLocalOf { 10 }
val LocalLargerValue = compositionLocalOf { 12 }
val LocalComputedValue = compositionLocalWithComputedDefaultOf { LocalValue.currentValue + 4 }

// In this example `LocalLargerValue` needs to be re-provided
// whenever `LocalValue` is provided to keep its value larger
// then `LocalValue`. However, `LocalComputedValue` does not
// need to be re-provided to stay larger than `LocalValue` as
// it is calculated based on the currently provided value for
// `LocalValue`. Whenever `LocalValue` is provided the value
// of `LocalComputedValue` is computed based on the currently
// provided value for `LocalValue`.

@Composable
fun App() {
    // Value is 10, the default value for LocalValue
    val value = LocalValue.current
    // Value is 12, the default value
    val largerValue = LocalLargerValue.current
    // Value is computed to be 14
    val computedValue = LocalComputedValue.current
    CompositionLocalProvider(LocalValue provides 20) {
        // Value is 20 provided above
        val nestedValue = LocalValue.current
        // Value is still 12 as an updated value was not re-provided
        val nestedLargerValue = LocalLargerValue.current
        // Values is computed to be 24; LocalValue.current + 4
        val nestedComputedValue = LocalComputedValue.current
        CompositionLocalProvider(LocalLargerValue provides LocalValue.current + 2) {
            // Value is 22 provided above
            val newLargerValue = LocalLargerValue.current

            CompositionLocalProvider(LocalValue provides 50) {
                // Value is now 50 provided above
                val finalValue = LocalValue.current
                // Value is still 22
                val finalLargerValue = LocalLargerValue.current
                // Value is now computed to be 54
                val finalComputed = LocalComputedValue.current
            }
        }
    }
}
```

| Parameters |
|---|---|
| `defaultComputation: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalAccessorScope.() -> T` | the default computation to use when this `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` is not provided. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` |   |

### compositionLocalWithHostDefaultOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositionLocal.kt+function:compositionLocalWithHostDefaultOf) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.11.0)

```
fun <T : Any?> compositionLocalWithHostDefaultOf(key: HostDefaultKey<T>): ProvidableCompositionLocal<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` where the default value is resolved by querying the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#LocalHostDefaultProvider()` with the given `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithHostDefaultOf(androidx.compose.runtime.HostDefaultKey)`.

If a value is provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#provides(kotlin.Any)`, this behaves identically to a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` created with `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`.

When no value is provided, the default value is resolved by querying the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#LocalHostDefaultProvider()` currently present in the composition. This mechanism allows the default value to be determined dynamically by the hosting environment (such as an Android View) rather than being hardcoded or requiring an explicit provider at the root of the composition.

This effectively acts as a bridge, decoupling the definition of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` from the platform-specific logic required to resolve its default. For example, a `LocalViewModelStoreOwner` can use this to ask the host for the owner without having a direct dependency on the Android View system.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultKey<T>` | An opaque key used to identify the requested value within the host's context. The type and meaning of the key are defined by the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultProvider` implementation (e.g., on Android, this is typically a Resource ID). |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-null-pointer-exception/index.html` | If the host cannot find a value for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithHostDefaultOf(androidx.compose.runtime.HostDefaultKey)`, it returns `null`. If `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithHostDefaultOf(androidx.compose.runtime.HostDefaultKey)` is a non-nullable type (e.g., `compositionLocalWithHostDefaultOf<String>`), a missing key will result in a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-null-pointer-exception/index.html` when the value is accessed. |

### computedStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/ComputedState.kt+function:computedStateOf) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.13.0-rc01)

```
@StateFactoryMarker
fun <T : Any?> computedStateOf(
    policy: SnapshotMutationPolicy<T> = structuralEqualityPolicy(),
    calculation: () -> T
): State<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` object whose `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` is the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`. The calculation is executed each time the value is read and is not cached when re-reading the value. Reading the value of the state multiple times in the same snapshot will execute `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` each time, and the current snapshot will subscribe to the state objects referenced in the calculation.

Note that the calculation lambda may be called more times than `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` is read as part of managing the state and checking its validity.

The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` lambda should be a read-only operation. It should not contain side effects, and it must not write to any states. If the calculation lambda attempts to write to a state in its block, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` will be thrown.

If any of the referenced states are modified, reads of the state are only considered to be invalid if the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` lambda returns a value that is not equal to the last value read by the observer, with equality being defined by the given `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`. In composition, this notably means that invalidations triggered by reads in a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` will conditionally invalidate the body of the composable based on whether the new result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` is different from the last value read at that point. It's considered an error to use `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#neverEqualPolicy()` with `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`, as this defeats all skipping behavior provided by using a ComputedState.

A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` should be preferred over a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)` when you don't need the caching behavior that `DerivedState` provides.

| Parameters |
|---|---|
| `policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T> = structuralEqualityPolicy()` | mutation policy to control when changes to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` result trigger update. |
| `calculation: () -> T` | the calculation to create the value this state object represents. |

### currentCompositionErrors

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/HotReloader.kt+function:currentCompositionErrors) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0)

```
@TestOnly
fun [currentCompositionErrors](https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositionErrors())(): List<Pair<Exception, Boolean>>
```

> [!CAUTION]
> **This function is deprecated.**   
> currentCompositionErrors only reports errors that extend from Exception. This method is unsupported outside of Compose runtime tests. Internally, getCurrentCompositionErrors should be used instead.

Get list of errors captured in composition. This list is only available when recomposer is in hot reload mode. Test-only API, not for use in production.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-pair/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-exception/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html>>` | pair of error and whether the error is recoverable. |

### derivedStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/DerivedState.kt+function:derivedStateOf) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@StateFactoryMarker
fun <T : Any?> derivedStateOf(calculation: () -> T): State<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` object whose `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` is the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)`. The result of calculation will be cached in such a way that calling `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` repeatedly will not cause `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)` to be executed multiple times, but reading `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` will cause all `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` objects that got read during the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)` to be read in the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot`, meaning that this will correctly subscribe to the derived state objects if the value is being read in an observed context such as a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function. Derived states without mutation policy trigger updates on each dependency change. To avoid invalidation on update, provide suitable `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy` through `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)` overload.

For trivial `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(kotlin.Function0)` implementations, this caching may be more expensive than computing the value each time due to the snapshot management overhead. In these situations, prefer `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`, which omits the caching behavior but yields a state that takes on the value of a calculation that will only invalidate readers when the calculation returns a new value.

```kotlin
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

@Composable
fun CountDisplay(count: State<Int>) {
    Text("Count: ${count.value}")
}

@Composable
fun Example() {
    var a by remember { mutableStateOf(0) }
    var b by remember { mutableStateOf(0) }
    val sum = remember { derivedStateOf { a + b } }
    // Changing either a or b will cause CountDisplay to recompose but not trigger Example
    // to recompose.
    CountDisplay(sum)
}
```

| Parameters |
|---|---|
| `calculation: () -> T` | the calculation to create the value this state object represents. |

### derivedStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/DerivedState.kt+function:derivedStateOf) Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.3.0)

```
@StateFactoryMarker
fun <T : Any?> derivedStateOf(
    policy: SnapshotMutationPolicy<T>,
    calculation: () -> T
): State<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` object whose `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` is the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`. The result of calculation will be cached in such a way that calling `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` repeatedly will not cause `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` to be executed multiple times, but reading `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State#value()` will cause all `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` objects that got read during the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` to be read in the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot`, meaning that this will correctly subscribe to the derived state objects if the value is being read in an observed context such as a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` function.

For trivial `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` implementations, this caching may be more expensive than computing the value each time due to the snapshot management overhead. In these situations, prefer `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#computedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`, which omits the caching behavior but yields a state that takes on the value of a calculation that will only invalidate readers when the calculation returns a new value.

```kotlin
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

@Composable
fun CountDisplay(count: State<Int>) {
    Text("Count: ${count.value}")
}

@Composable
fun Example() {
    var a by remember { mutableStateOf(0) }
    var b by remember { mutableStateOf(0) }
    val sum = remember { derivedStateOf { a + b } }
    // Changing either a or b will cause CountDisplay to recompose but not trigger Example
    // to recompose.
    CountDisplay(sum)
}
```

| Parameters |
|---|---|
| `policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T>` | mutation policy to control when changes to the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#derivedStateOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` result trigger update. |
| `calculation: () -> T` | the calculation to create the value this state object represents. |

### disableHotReloadMode

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/HotReloader.kt+function:disableHotReloadMode) Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0)

```
@TestOnly
fun disableHotReloadMode(): Unit
```

Disables hot reload mode in recomposer. Test-only API, not for use in production.

### invalidateGroupsWithKey

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/HotReloader.kt+function:invalidateGroupsWithKey) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0)

```
@TestOnly
fun invalidateGroupsWithKey(key: Int): Unit
```

Invalidates composed groups with the given key. Calling this method switches recomposer into hot reload mode. Test-only API, not for use in production.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | group key to invalidate. |

### isTraceInProgress

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composer.kt+function:isTraceInProgress) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@ComposeCompilerApi
fun isTraceInProgress(): Boolean
```

Internal tracing API.

Should be called without thread synchronization with occasional information loss.

### movableContentOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun movableContentOf(content: @Composable () -> Unit): @Composable () -> Unit
```

Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <P : Any?> movableContentOf(content: @Composable (P) -> Unit): @Composable (P) -> Unit
```

Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <P1 : Any?, P2 : Any?> movableContentOf(content: @Composable (P1, P2) -> Unit): @Composable (P1, P2) -> Unit
```

Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <P1 : Any?, P2 : Any?, P3 : Any?> movableContentOf(
    content: @Composable (P1, P2, P3) -> Unit
): @Composable (P1, P2, P3) -> Unit
```

Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <P1 : Any?, P2 : Any?, P3 : Any?, P4 : Any?> movableContentOf(
    content: @Composable (P1, P2, P3, P4) -> Unit
): @Composable (P1, P2, P3, P4) -> Unit
```

Convert a lambda into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3, P4) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (P1, P2, P3, P4) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentWithReceiverOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentWithReceiverOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <R : Any?> movableContentWithReceiverOf(content: @Composable R.() -> Unit): @Composable R.() -> Unit
```

Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentWithReceiverOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentWithReceiverOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <R : Any?, P : Any?> movableContentWithReceiverOf(content: @Composable R.(P) -> Unit): @Composable R.(P) -> Unit
```

Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentWithReceiverOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentWithReceiverOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <R : Any?, P1 : Any?, P2 : Any?> movableContentWithReceiverOf(
    content: @Composable R.(P1, P2) -> Unit
): @Composable R.(P1, P2) -> Unit
```

Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### movableContentWithReceiverOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MovableContent.kt+function:movableContentWithReceiverOf) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@RememberInComposition
fun <R : Any?, P1 : Any?, P2 : Any?, P3 : Any?> movableContentWithReceiverOf(
    content: @Composable R.(P1, P2, P3) -> Unit
): @Composable R.(P1, P2, P3) -> Unit
```

Convert a lambda with a receiver into one that moves the remembered state and nodes created in a previous call to the new location it is called.

Tracking compositions can be used to produce a composable that moves its content between a row and a column based on a parameter, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val movableContent = remember(content) { movableContentOf(content) }

if (vertical) {
    Column { movableContent() }
} else {
    Row { movableContent() }
}
```

Or they can be used to ensure the composition state tracks with a model as moves in the layout, such as,

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.runtime.Composable
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.remember

val itemMap = remember { mutableMapOf<Item, @Composable () -> Unit>() }
val movableItems =
    remember(items) {
        val itemsToRemove = itemMap.keys.toMutableSet()
        val movableItems = items.map { item ->
            itemsToRemove.remove(item)
            itemMap.getOrPut(item) { movableContentOf { ItemView(item) } }
        }
        itemsToRemove.forEach { itemMap.remove(it) }
        movableItems
    }

val itemsPerColumn = 10
val columns = items.size / itemsPerColumn + (if (items.size % itemsPerColumn == 0) 0 else 1)
Row {
    repeat(columns) { column ->
        Column {
            val base = column * itemsPerColumn
            val end = minOf(base + itemsPerColumn, items.size)
            for (index in base until end) {
                movableItems[index]()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The composable lambda to convert into a state tracking lambda. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable R.(P1, P2, P3) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A tracking composable lambda |

### mutableDoubleStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotDoubleState.kt+function:mutableDoubleStateOf) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
@StateFactoryMarker
fun mutableDoubleStateOf(value: Double): MutableDoubleState
```

Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableDoubleStateOf(kotlin.Double)`

The MutableDoubleState class is a single value holder whose reads and writes are observed by Compose. Additionally, writes to it are transacted as part of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` system. On the JVM, values are stored in memory as the primitive `double` type, avoiding the autoboxing that occurs when using `MutableState<Double>`.

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html` | the initial value for the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState` |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DoubleState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableIntStateOf(kotlin.Int)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableLongStateOf(kotlin.Long)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableFloatStateOf(kotlin.Float)` |   |

### mutableFloatStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotFloatState.kt+function:mutableFloatStateOf) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
@StateFactoryMarker
fun mutableFloatStateOf(value: Float): MutableFloatState
```

Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableFloatStateOf(kotlin.Float)`

The MutableFloatState class is a single value holder whose reads and writes are observed by Compose. Additionally, writes to it are transacted as part of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` system. On the JVM, values are stored in memory as the primitive `float` type, avoiding the autoboxing that occurs when using `MutableState<Float>`.

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | the initial value for the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState` |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/FloatState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableIntStateOf(kotlin.Int)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableLongStateOf(kotlin.Long)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableDoubleStateOf(kotlin.Double)` |   |

### mutableIntStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotIntState.kt+function:mutableIntStateOf) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
@StateFactoryMarker
fun mutableIntStateOf(value: Int): MutableIntState
```

Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableIntStateOf(kotlin.Int)`

The MutableIntState class is a single value holder whose reads and writes are observed by Compose. Additionally, writes to it are transacted as part of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` system. On the JVM, values are stored in memory as the primitive `int` type, avoiding the autoboxing that occurs when using `MutableState<Int>`.

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the initial value for the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState` |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableLongStateOf(kotlin.Long)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableFloatStateOf(kotlin.Float)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableDoubleStateOf(kotlin.Double)` |   |

### mutableLongStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotLongState.kt+function:mutableLongStateOf) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
@StateFactoryMarker
fun mutableLongStateOf(value: Long): MutableLongState
```

Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableLongStateOf(kotlin.Long)`

The MutableLongState class is a single value holder whose reads and writes are observed by Compose. Additionally, writes to it are transacted as part of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` system. On the JVM, values are stored in memory as the primitive `long` type, avoiding the autoboxing that occurs when using `MutableState<Long>`.

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | the initial value for the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState` |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableIntStateOf(kotlin.Int)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableFloatStateOf(kotlin.Float)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableDoubleStateOf(kotlin.Double)` |   |

### mutableStateListOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:mutableStateListOf) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@StateFactoryMarker
fun <T : Any?> mutableStateListOf(): SnapshotStateList<T>
```

Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` that is observable and can be snapshot.

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

@Composable
fun Names() {
    var name by remember { mutableStateOf("user") }
    val names = remember { mutableStateListOf<String>() }

    Column {
        Row {
            BasicTextField(value = name, onValueChange = { name = it })
            Button(onClick = { names.add(name) }) { Text("Add") }
        }
        Text("Added names:")
        Column {
            for (addedName in names) {
                Text(addedName)
            }
        }
    }
}
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/index.html` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot#takeSnapshot(kotlin.Function1)` |   |

### mutableStateListOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:mutableStateListOf) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@StateFactoryMarker
fun <T : Any?> mutableStateListOf(vararg elements: T): SnapshotStateList<T>
```

Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` that is observable and can be snapshot.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/index.html` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot#takeSnapshot(kotlin.Function1)` |   |

### mutableStateMapOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:mutableStateMapOf) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@StateFactoryMarker
fun <K : Any?, V : Any?> mutableStateMapOf(): SnapshotStateMap<K, V>
```

Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` that is observable and can be snapshot.

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateMapOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

@Composable
fun NamesAndAges() {
    var name by remember { mutableStateOf("name") }
    var saying by remember { mutableStateOf("saying") }
    val sayings = remember {
        mutableStateMapOf(
            "Caesar" to "Et tu, Brute?",
            "Hamlet" to "To be or not to be",
            "Richard III" to "My kingdom for a horse",
        )
    }

    Column {
        Row {
            BasicTextField(value = name, onValueChange = { name = it })
            BasicTextField(value = saying, onValueChange = { saying = it })
            Button(onClick = { sayings[name] = saying }) { Text("Add") }
            Button(onClick = { sayings.remove(name) }) { Text("Remove") }
        }
        Text("Sayings:")
        Column {
            for (entry in sayings) {
                Text("${entry.key} says '${entry.value}'")
            }
        }
    }
}
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/index.html` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot#takeSnapshot(kotlin.Function1)` |   |

### mutableStateMapOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:mutableStateMapOf)

```
@StateFactoryMarker
fun <K : Any?, V : Any?> mutableStateMapOf(vararg pairs: Pair<K, V>): SnapshotStateMap<K, V>
```

Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` that is observable and can be snapshot.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/index.html` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot#takeSnapshot(kotlin.Function1)` |   |

### mutableStateOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:mutableStateOf) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@StateFactoryMarker
fun <T : Any?> mutableStateOf(
    value: T,
    policy: SnapshotMutationPolicy<T> = structuralEqualityPolicy()
): MutableState<T>
```

Return a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` initialized with the passed in `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)`

The MutableState class is a single value holder whose reads and writes are observed by Compose. Additionally, writes to it are transacted as part of the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` system.

```kotlin
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.State
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

val count = remember { mutableStateOf(0) }

Text(text = "You clicked ${count.value} times")
Button(onClick = { count.value++ }) { Text("Click me") }
```

```kotlin
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.State
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

val (count, setCount) = remember { mutableStateOf(0) }

Text(text = "You clicked $count times")
Button(onClick = { setCount(count + 1) }) { Text("Click me") }
```

```kotlin
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.State
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

@Composable
fun observeUser(userId: Int): User? {
    val user = remember(userId) { mutableStateOf<User?>(null) }
    DisposableEffect(userId) {
        val subscription = UserAPI.subscribeToUser(userId) { user.value = it }
        onDispose { subscription.unsubscribe() }
    }
    return user.value
}
```

```kotlin
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

@Composable
fun LoginScreen() {
    var username by remember { mutableStateOf("user") }
    var password by remember { mutableStateOf("pass") }

    fun login() = Api.login(username, password)

    BasicTextField(value = username, onValueChange = { username = it })
    BasicTextField(value = password, onValueChange = { password = it })
    Button(onClick = { login() }) { Text("Login") }
}
```

| Parameters |
|---|---|
| `value: T` | the initial value for the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` |
| `policy: https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy<T> = structuralEqualityPolicy()` | a policy to controls how changes are handled in mutable snapshots. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotMutationPolicy` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableIntStateOf(kotlin.Int)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableLongStateOf(kotlin.Long)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableFloatStateOf(kotlin.Float)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableDoubleStateOf(kotlin.Double)` |   |

### mutableStateSetOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:mutableStateSetOf) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0)

```
@StateFactoryMarker
fun <T : Any?> mutableStateSetOf(): SnapshotStateSet<T>
```

Create a instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html` that is observable and can be snapshot.

The returned set iteration order is in the order the items were inserted into the set.

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.selection.selectableGroup
import androidx.compose.foundation.selection.toggleable
import androidx.compose.material.Checkbox
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateSetOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.Role

@Composable
fun DaysForAlarm() {
    val days = remember { mutableStateSetOf<DayOfWeek>() }

    Column(Modifier.selectableGroup()) {
        DayOfWeek.entries.forEach { dayOfWeek ->
            Row(
                modifier =
                    Modifier.toggleable(
                        value = dayOfWeek in days,
                        role = Role.Checkbox,
                        onValueChange = {
                            if (it) {
                                days.add(dayOfWeek)
                            } else {
                                days.remove(dayOfWeek)
                            }
                        },
                    )
            ) {
                Checkbox(checked = dayOfWeek in days, onCheckedChange = null)
                Text(text = dayOfWeek.name)
            }
        }
    }
}
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/index.html` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot#takeSnapshot(kotlin.Function1)` |   |

### mutableStateSetOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:mutableStateSetOf) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.8.0)

```
@StateFactoryMarker
fun <T : Any?> mutableStateSetOf(vararg elements: T): SnapshotStateSet<T>
```

Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html` that is observable and can be snapshot.

The returned set iteration order is in the order the items were inserted into the set.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/index.html` |   |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot#takeSnapshot(kotlin.Function1)` |   |

### neverEqualPolicy

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotMutationPolicy.kt+function:neverEqualPolicy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
fun <T : Any?> neverEqualPolicy(): SnapshotMutationPolicy<T>
```

A policy never treat values of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` as equivalent.

Setting `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState#value()` will always be considered a change. When applying a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/MutableSnapshot` that changes the state will always conflict with other snapshots that change the same state.

### referentialEqualityPolicy

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotMutationPolicy.kt+function:referentialEqualityPolicy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
fun <T : Any?> referentialEqualityPolicy(): SnapshotMutationPolicy<T>
```

A policy to treat values of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` as equivalent if they are referentially (===) equal.

Setting `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState#value()` to its current referentially (===) equal value is not considered a change. When applying a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/MutableSnapshot`, if the snapshot changes the value to the equivalent value the parent snapshot has is not considered a conflict.

### simulateHotReload

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/HotReloader.kt+function:simulateHotReload) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.0)

```
@TestOnly
fun simulateHotReload(context: Any): Unit
```

Simulates hot reload of all current compositions by disposing all composed content and restarting compositions. Calling this method switches recomposer into hot reload mode. Test-only API, not for use in production.

| Parameters |
|---|---|
| `context: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | context for disposal. |

### snapshotFlow

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotFlow.kt+function:snapshotFlow) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
fun <T : Any?> snapshotFlow(block: () -> T): Flow<T>
```

Create a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` from observable `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state. (e.g. state holders returned by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)`.)

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` creates a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` that runs `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` when collected and emits the result, recording any snapshot state that was accessed. While collection continues, if a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` is applied that changes state accessed by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)`, the flow will run `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` again, re-recording the snapshot state that was accessed. If the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` is not `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/equals.html` the previous result, the flow will emit that new result. (This behavior is similar to that of `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/index.html`.) Collection will continue indefinitely unless it is explicitly cancelled or limited by the use of other `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` operators.

```kotlin
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.snapshotFlow
import androidx.compose.runtime.snapshots.Snapshot

// Define Snapshot state objects
var greeting by mutableStateOf("Hello")
var person by mutableStateOf("Adam")

// ...

// Create a flow that will emit whenever our person-specific greeting changes
val greetPersonFlow = snapshotFlow { "$greeting, $person" }

// ...

val collectionScope: CoroutineScope = TODO("Use your scope here")

// Collect the flow and offer greetings!
collectionScope.launch { greetPersonFlow.collect { flowGreeting -> println(flowGreeting) } }

// ...

// Change snapshot state; greetPersonFlow will emit a new greeting
Snapshot.withMutableSnapshot {
    greeting = "Ahoy"
    person = "Sean"
}
```

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` is run in a **read-only** `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` and may not modify snapshot data. If `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` attempts to modify snapshot data, flow collection will fail with `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html`.

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` may run more than once for equal sets of inputs or only once after many rapid snapshot changes; it should be idempotent and free of side effects.

When working with `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state it is useful to keep the distinction between **events** and **state** in mind. `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(kotlin.Function0)` models snapshot changes as events, but events **cannot** be effectively modeled as observable state. Observable state is a lossy compression of the events that produced that state.

An observable **event** happens at a point in time and is discarded. All registered observers at the time the event occurred are notified. All individual events in a stream are assumed to be relevant and may build on one another; repeated equal events have meaning and therefore a registered observer must observe all events without skipping.

Observable **state** raises change events when the state changes from one value to a new, unequal value. State change events are **conflated;** only the most recent state matters. Observers of state changes must therefore be **idempotent;** given the same state value the observer should produce the same result. It is valid for a state observer to both skip intermediate states as well as run multiple times for the same state and the result should be the same.

### snapshotFlow

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotFlow.kt+function:snapshotFlow) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.11.0)

```
@ExperimentalComposeRuntimeApi
fun <T : Any?> snapshotFlow(manager: SnapshotFlowManager, block: () -> T): Flow<T>
```

Create a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` from observable `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state. (e.g. state holders returned by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#mutableStateOf(kotlin.Any,androidx.compose.runtime.SnapshotMutationPolicy)`.)

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` creates a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` that runs `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` when collected and emits the result, recording any snapshot state that was accessed. While collection continues, if a new `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` is applied that changes state accessed by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)`, the flow will run `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` again, re-recording the snapshot state that was accessed. If the result of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` is not `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/equals.html` the previous result, the flow will emit that new result. (This behavior is similar to that of `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/index.html`.) Collection will continue indefinitely unless it is explicitly cancelled or limited by the use of other `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html` operators.

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` controls how snapshot state is observed. When the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` argument is omitted, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotFlowManager` is instantiated under the hood, so by explicitly managing a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotFlowManager` and passing it to multiple `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)`s that will be collected on the same thread, you can improve performance by sharing resources between those `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)`s. It is not safe to share a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotFlowManager` instance across two `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)`s that collect in parallel on two different threads. Sharing a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/SnapshotFlowManager` across `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)`s that cannot be collected in parallel to each other is always encouraged.

```kotlin
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.snapshotFlow
import androidx.compose.runtime.snapshots.Snapshot

// Define Snapshot state objects
var greeting by mutableStateOf("Hello")
var person by mutableStateOf("Adam")

// ...

// Create a flow that will emit whenever our person-specific greeting changes
val greetPersonFlow = snapshotFlow { "$greeting, $person" }

// ...

val collectionScope: CoroutineScope = TODO("Use your scope here")

// Collect the flow and offer greetings!
collectionScope.launch { greetPersonFlow.collect { flowGreeting -> println(flowGreeting) } }

// ...

// Change snapshot state; greetPersonFlow will emit a new greeting
Snapshot.withMutableSnapshot {
    greeting = "Ahoy"
    person = "Sean"
}
```

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` is run in a **read-only** `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` and may not modify snapshot data. If `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` attempts to modify snapshot data, flow collection will fail with `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html`.

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` may run more than once for equal sets of inputs or only once after many rapid snapshot changes; it should be idempotent and free of side effects.

When working with `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/Snapshot` state it is useful to keep the distinction between **events** and **state** in mind. `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#snapshotFlow(androidx.compose.runtime.SnapshotFlowManager,kotlin.Function0)` models snapshot changes as events, but events **cannot** be effectively modeled as observable state. Observable state is a lossy compression of the events that produced that state.

An observable **event** happens at a point in time and is discarded. All registered observers at the time the event occurred are notified. All individual events in a stream are assumed to be relevant and may build on one another; repeated equal events have meaning and therefore a registered observer must observe all events without skipping.

Observable **state** raises change events when the state changes from one value to a new, unequal value. State change events are **conflated;** only the most recent state matters. Observers of state changes must therefore be **idempotent;** given the same state value the observer should produce the same result. It is valid for a state observer to both skip intermediate states as well as run multiple times for the same state and the result should be the same.

### sourceInformation

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composer.kt+function:sourceInformation) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@ComposeCompilerApi
fun sourceInformation(composer: Composer, sourceInformation: String): Unit
```

A Compose internal function. DO NOT call directly.

Records source information that can be used for tooling to determine the source location of the corresponding composable function. By default, this function is declared as having no side-effects. It is safe for code shrinking tools (such as R8 or ProGuard) to remove it.

### sourceInformationMarkerEnd

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composer.kt+function:sourceInformationMarkerEnd) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@ComposeCompilerApi
fun sourceInformationMarkerEnd(composer: Composer): Unit
```

A Compose internal function. DO NOT call directly.

Records the end of a source information marker that can be used for tooling to determine the source location of the corresponding composable function that otherwise don't require tracking information such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReadOnlyComposable` functions. By default, this function is declared as having no side-effects. It is safe for code shrinking tools (such as R8 or ProGuard) to remove it.

Important that both `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#sourceInformationMarkerStart(androidx.compose.runtime.Composer,kotlin.Int,kotlin.String)` and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#sourceInformationMarkerEnd(androidx.compose.runtime.Composer)` are removed together or both kept. Removing only one will cause incorrect runtime behavior.

### sourceInformationMarkerStart

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composer.kt+function:sourceInformationMarkerStart) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@ComposeCompilerApi
fun sourceInformationMarkerStart(
    composer: Composer,
    key: Int,
    sourceInformation: String
): Unit
```

A Compose internal function. DO NOT call directly.

Records the start of a source information marker that can be used for tooling to determine the source location of the corresponding composable function that otherwise don't require tracking information such as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ReadOnlyComposable` functions. By default, this function is declared as having no side-effects. It is safe for code shrinking tools (such as R8 or ProGuard) to remove it.

Important that both `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#sourceInformationMarkerStart(androidx.compose.runtime.Composer,kotlin.Int,kotlin.String)` and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#sourceInformationMarkerEnd(androidx.compose.runtime.Composer)` are removed together or both kept. Removing only one will cause incorrect runtime behavior.

### staticCompositionLocalOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositionLocal.kt+function:staticCompositionLocalOf) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
fun <T : Any?> staticCompositionLocalOf(defaultFactory: () -> T): ProvidableCompositionLocal<T>
```

Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` key that can be provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`.

Unlike `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)`, reads of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)` are not tracked by the composer and changing the value provided in the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` call will cause the entirety of the content to be recomposed instead of just the places where in the composition the local value is used. This lack of tracking, however, makes a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)` more efficient when the value provided is highly unlikely to or will never change. For example, the android context, font loaders, or similar shared values, are unlikely to change for the components in the content of a the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` and should consider using a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)`. A color, or other theme like value, might change or even be animated therefore a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` should be used.

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)` creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` which can be used in a call to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`. Similar to `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` vs. `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html`, if the key is made public as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` instead of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal`, it can be read using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()` but not re-provided.

| Parameters |
|---|---|
| `defaultFactory: () -> T` | a value factory to supply a value when a value is not provided. This factory is called when no value is provided through a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` of the caller of the component using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()`. If no reasonable default can be provided then consider throwing an exception. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalOf(androidx.compose.runtime.SnapshotMutationPolicy,kotlin.Function0)` |   |

### staticCompositionLocalWithComputedDefaultOf

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositionLocal.kt+function:staticCompositionLocalWithComputedDefaultOf) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.13.0-rc01)

```
fun <T : Any?> staticCompositionLocalWithComputedDefaultOf(
    defaultComputation: CompositionLocalAccessorScope.() -> T
): ProvidableCompositionLocal<T>
```

Create a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` that behaves like it was provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#providesComputed(kotlin.Function1)` by default. If a value is provided using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal#provides(kotlin.Any)` it behaves as if the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` was produced by calling `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)`.

Unlike `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithComputedDefaultOf(kotlin.Function1)`, reads of a provided value for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalWithComputedDefaultOf(kotlin.Function1)` are not tracked by the composer and changing the value provided in the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` call will cause the entirety of the content to be recomposed instead of just the places where in the composition the local value is used. This lack of tracking, however, makes a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalWithComputedDefaultOf(kotlin.Function1)` more efficient when the value provided is highly unlikely to or will never change. For example, the android context, font loaders, or similar shared values, are unlikely to change for the components in the content of a the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)` and should consider using a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalWithComputedDefaultOf(kotlin.Function1)`. A color, or other theme like value, might change or even be animated therefore a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithComputedDefaultOf(kotlin.Function1)` should be used.

Reads of the computed value are tracked and modifying the computed value results in only the invalidated parts of the composition being recomposed.

`https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalWithComputedDefaultOf(kotlin.Function1)` creates a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` which can be used in a call to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`. Similar to `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` vs. `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html`, if the key is made public as `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` instead of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal`, it can be read using `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal#current()` but not re-provided.

| Parameters |
|---|---|
| `defaultComputation: https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalAccessorScope.() -> T` | default computation to run when this `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` is not provided |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#staticCompositionLocalOf(kotlin.Function0)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithComputedDefaultOf(kotlin.Function1)` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/ProvidableCompositionLocal` |   |

### structuralEqualityPolicy

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotMutationPolicy.kt+function:structuralEqualityPolicy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
fun <T : Any?> structuralEqualityPolicy(): SnapshotMutationPolicy<T>
```

A policy to treat values of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState` as equivalent if they are structurally (==) equal.

Setting `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState#value()` to its current structurally (==) equal value is not considered a change. When applying a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/snapshots/MutableSnapshot`, if the snapshot changes the value to the equivalent value the parent snapshot has is not considered a conflict.

### traceEventEnd

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composer.kt+function:traceEventEnd) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@ComposeCompilerApi
fun traceEventEnd(): Unit
```

Internal tracing API.

Should be called without thread synchronization with occasional information loss.

### traceEventStart

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composer.kt+function:traceEventStart) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.2.0)

```
@ComposeCompilerApi
fun traceEventStart(key: Int, dirty1: Int, dirty2: Int, info: String): Unit
```

Internal tracing API.

Should be called without thread synchronization with occasional information loss.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | is a group key generated by the compiler plugin for the function being traced. This key is unique the function. |
| `dirty1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | $dirty metadata: forced-recomposition and function parameters 1..10 if present |
| `dirty2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | $dirty2 metadata: forced-recomposition and function parameters 11..20 if present |
| `info: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | is a user displayable string that describes the function for which this is the start event. |

### withFrameMillis

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MonotonicFrameClock.kt+function:withFrameMillis)

```
suspend fun <R : Any?> withFrameMillis(onFrame: (frameTimeMillis: Long) -> R): R
```

Suspends until a new frame is requested, immediately invokes `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameMillis(kotlin.Function1)` with the frame time in milliseconds in the calling context of frame dispatch, then resumes with the result from `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameMillis(kotlin.Function1)`.

`frameTimeMillis` should be used when calculating animation time deltas from frame to frame as it may be normalized to the target time for the frame, not necessarily a direct, "now" value.

The time base of the value provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)` is implementation defined. Time values provided are monotonically increasing; after a call to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameMillis(kotlin.Function1)` completes it must not provide a smaller value for a subsequent call.

This function will invoke `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock#withFrameNanos(kotlin.Function1)` using the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`'s `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` and will throw an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` if one is not present in the `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`.

### withFrameNanos

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MonotonicFrameClock.kt+function:withFrameNanos)

```
suspend fun <R : Any?> withFrameNanos(onFrame: (frameTimeNanos: Long) -> R): R
```

Suspends until a new frame is requested, immediately invokes `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)` with the frame time in nanoseconds in the calling context of frame dispatch, then resumes with the result from `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)`.

`frameTimeNanos` should be used when calculating animation time deltas from frame to frame as it may be normalized to the target time for the frame, not necessarily a direct, "now" value.

The time base of the value provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)` is implementation defined. Time values provided are strictly monotonically increasing; after a call to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)` completes it must not provide the same value again for a subsequent call.

This function will invoke `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock#withFrameNanos(kotlin.Function1)` using the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`'s `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` and will throw an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` if one is not present in the `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`.

### withRunningRecomposer

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Recomposer.kt+function:withRunningRecomposer)

```
suspend fun <R : Any?> withRunningRecomposer(block: suspend CoroutineScope.(recomposer: Recomposer) -> R): R
```

Runs `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withRunningRecomposer(kotlin.coroutines.SuspendFunction2)` with a new, active `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` applying changes in the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`. The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` will be `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer#close()` after `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withRunningRecomposer(kotlin.coroutines.SuspendFunction2)` returns. `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withRunningRecomposer(kotlin.coroutines.SuspendFunction2)` will return once the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` is `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer.State#ShutDown` and all child jobs launched by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withRunningRecomposer(kotlin.coroutines.SuspendFunction2)` have `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/join.html`.

## Extension functions

### State.asDoubleState

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotStateExtensions.kt+function:asDoubleState) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
fun State<Double>.asDoubleState(): DoubleState
```

Converts a `State<Double>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Double`s) into a primitive-backed `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html`. The state will be automatically unboxed to the required primitive type. The returned state is read-only. The returned state will mirror the values of the base state and apply updates in the same way as the receiver defines.

On the JVM, this conversion does not avoid the autoboxing that `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-double/index.html` attempts to escape, but instead is intended to allow interoperability between components that use either representation of a state of type `Double`.

### State.asFloatState

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotStateExtensions.kt+function:asFloatState) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
fun State<Float>.asFloatState(): FloatState
```

Converts a `State<Float>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Float`s) into a primitive-backed `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html`. The state will be automatically unboxed to the required primitive type. The returned state is read-only. The returned state will mirror the values of the base state and apply updates in the same way as the receiver defines.

On the JVM, this conversion does not avoid the autoboxing that `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` attempts to escape, but instead is intended to allow interoperability between components that use either representation of a state of type `Float`.

### State.asIntState

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotStateExtensions.kt+function:asIntState) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
fun State<Int>.asIntState(): IntState
```

Converts a `State<Int>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Int`s) into a primitive-backed `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState`. The state will be automatically unboxed to the required primitive type. The returned state is read-only. The returned state will mirror the values of the base state and apply updates in the same way as the receiver defines.

On the JVM, this conversion does not avoid the autoboxing that `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState` attempts to escape, but instead is intended to allow interoperability between components that use either representation of a state of type `Int`.

### State.asLongState

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotStateExtensions.kt+function:asLongState) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
fun State<Long>.asLongState(): LongState
```

Converts a `State<Long>` (as in, a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State` of boxed `Long`s) into a primitive-backed `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState`. The state will be automatically unboxed to the required primitive type. The returned state is read-only. The returned state will mirror the values of the base state and apply updates in the same way as the receiver defines.

On the JVM, this conversion does not avoid the autoboxing that `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState` attempts to escape, but instead is intended to allow interoperability between components that use either representation of a state of type `Long`.

### Composer.cache

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composer.kt+function:cache) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@ComposeCompilerApi
inline fun <T : Any?> Composer.cache(
    invalid: Boolean,
    block: @DisallowComposableCalls () -> T
): T
```

A Compose compiler plugin API. DO NOT call directly.

Cache, that is remember, a value in the composition data of a composition. This is used to implement `https://developer.android.com/reference/kotlin/androidx/compose/runtime/remember.composable#remember(kotlin.Function0)` and used by the compiler plugin to generate more efficient calls to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/remember.composable#remember(kotlin.Function0)` when it determines these optimizations are safe.

### DoubleState.getValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotDoubleState.kt+function:getValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun DoubleState.getValue(thisObj: Any?, property: KProperty<*>): Double
```

Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/DoubleState`.

### FloatState.getValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotFloatState.kt+function:getValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun FloatState.getValue(thisObj: Any?, property: KProperty<*>): Float
```

Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/FloatState`.

### IntState.getValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotIntState.kt+function:getValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun IntState.getValue(thisObj: Any?, property: KProperty<*>): Int
```

Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/IntState`.

### LongState.getValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotLongState.kt+function:getValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun LongState.getValue(thisObj: Any?, property: KProperty<*>): Long
```

Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LongState`.

### State.getValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:getValue)

```
inline operator fun <T : Any?> State<T>.getValue(thisObj: Any?, property: KProperty<*>): T
```

Permits property delegation of `val`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/State`.

```kotlin
import androidx.compose.foundation.layout.Row
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State

// Composable function that manages a subscription to a data source, returning it as State
@Composable fun observeSampleData(): State<String> = TODO()

// Subscription is managed here, but currentValue is not read yet
val currentValue by observeSampleData()

Row {
    // This scope will recompose when currentValue changes
    Text("Data: $currentValue")
}
```

### MutableDoubleState.setValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotDoubleState.kt+function:setValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun MutableDoubleState.setValue(
    thisObj: Any?,
    property: KProperty<*>,
    value: Double
): Unit
```

Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableDoubleState`.

### MutableFloatState.setValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotFloatState.kt+function:setValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun MutableFloatState.setValue(
    thisObj: Any?,
    property: KProperty<*>,
    value: Float
): Unit
```

Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableFloatState`.

### MutableIntState.setValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotIntState.kt+function:setValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun MutableIntState.setValue(thisObj: Any?, property: KProperty<*>, value: Int): Unit
```

Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableIntState`.

### MutableLongState.setValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotLongState.kt+function:setValue) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.5.0)

```
inline operator fun MutableLongState.setValue(
    thisObj: Any?,
    property: KProperty<*>,
    value: Long
): Unit
```

Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableLongState`.

### MutableState.setValue

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:setValue) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
inline operator fun <T : Any?> MutableState<T>.setValue(
    thisObj: Any?,
    property: KProperty<*>,
    value: T
): Unit
```

Permits property delegation of `var`s using `by` for `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState`.

```kotlin
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.State
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

var count by remember { mutableStateOf(0) }

Text(text = "You clicked $count times")
Button(onClick = { count = count + 1 }) { Text("Click me") }
```

### CompositeKeyHashCode.toLong

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositeKeyHashCode.kt+function:toLong)

```
fun CompositeKeyHashCode.toLong(): Long
```

Converts a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` to a 64-bit Long. This may be higher precision than the underlying type.

### Long.toLong

Cmn android [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositeKeyHashCode.+function:toLong) Added in 1.9.0

```
inline fun Long.toLong(): Long
```

Converts a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` to a 64-bit Long. This may be higher precision than the underlying type.

### Collection.toMutableStateList

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:toMutableStateList)

```
fun <T : Any?> Collection<T>.toMutableStateList(): SnapshotStateList<T>
```

Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html` from a collection that is observable and can be snapshot.

### Iterable.toMutableStateMap

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/SnapshotState.kt+function:toMutableStateMap)

```
fun <K : Any?, V : Any?> Iterable<Pair<K, V>>.toMutableStateMap(): SnapshotStateMap<K, V>
```

Create an instance of `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html` from a collection of pairs that is observable and can be snapshot.

### CompositeKeyHashCode.toString

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositeKeyHashCode.kt+function:toString)

```
fun CompositeKeyHashCode.toString(radix: Int): String
```

Returns a String representation of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` with the specified `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toString(kotlin.Int)`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | when `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toString(kotlin.Int)` is not a valid radix for number to string conversion. |

### Long.toString

Cmn android [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositeKeyHashCode.+function:toString) Added in 1.9.0

```
inline fun Long.toString(radix: Int): String
```

Returns a String representation of a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode` with the specified `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toString(kotlin.Int)`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | when `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.CompositeKeyHashCode).toString(kotlin.Int)` is not a valid radix for number to string conversion. |

### MonotonicFrameClock.withFrameMillis

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MonotonicFrameClock.kt+function:withFrameMillis)

```
suspend inline fun <R : Any?> MonotonicFrameClock.withFrameMillis(
    crossinline onFrame: (frameTimeMillis: Long) -> R
): R
```

Suspends until a new frame is requested, immediately invokes `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)` with the frame time in milliseconds in the calling context of frame dispatch, then resumes with the result from `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)`.

`frameTimeMillis` should be used when calculating animation time deltas from frame to frame as it may be normalized to the target time for the frame, not necessarily a direct, "now" value.

The time base of the value provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)` is implementation defined. Time values provided are monotonically increasing; after a call to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)` completes it must not provide a smaller value for a subsequent call.

## Top-level properties

### DefaultMonotonicFrameClock

Cmn android N JS Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/+symbol:DefaultMonotonicFrameClock)

```
val DefaultMonotonicFrameClock: MonotonicFrameClock
```

> [!CAUTION]
> **This property is deprecated.**   
> MonotonicFrameClocks are not globally applicable across platforms. Use an appropriate local clock.

The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` used by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)` if one is not present in the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html`.

This value is no longer used by compose runtime.

### EmptyCompositeKeyHashCode

Cmn android Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/CompositeKeyHashCode.+symbol:EmptyCompositeKeyHashCode) Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0)

```
val EmptyCompositeKeyHashCode: CompositeKeyHashCode
```

An empty `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositeKeyHashCode`, equivalent to hashing no content. This is not necessarily the same as the hash at the root of a composition. This is an effective default value in the absence of a hash from `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHashCode()`.

### LocalHostDefaultProvider

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/HostDefaultProvider.kt+symbol:LocalHostDefaultProvider) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.11.0)

```
val LocalHostDefaultProvider: ProvidableCompositionLocal<HostDefaultProvider>
```

A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal` that provides the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/HostDefaultProvider` to the composition.

This is intended for internal usage by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#compositionLocalWithHostDefaultOf(androidx.compose.runtime.HostDefaultKey)` to resolve values from the hosting environment (e.g., `android.view.View`).

### currentComposer

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composables.kt+symbol:currentComposer) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
val currentComposer: Composer
```

A Compose internal function. DO NOT call directly.

Returns the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer` instance currently being used to perform composition. The returned Composer is specific to the location where this property is read. There are no guarantees that the same Composer object will be returned elsewhere in the composition or that the Composer instance will be the same across recompositions.

This property is exposed for use by the runtime, compiler, and tooling. It is not recommended for public consumption. Mutating the state of the composer outside of calls generated by the Compose compiler is not supported.

### currentCompositeKeyHash

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composables.kt+symbol:currentCompositeKeyHash) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0) Deprecated in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0)

```
val currentCompositeKeyHash: Int
```

> [!CAUTION]
> **This property is deprecated.**   
> Prefer the higher-precision currentCompositeKeyHashCode, use this instead:
>
> ```kotlin
> currentCompositeKeyHashCode
> ```

This a hash value used to coordinate map externally stored state to the composition. For example, this is used by saved instance state to preserve state across activity lifetime boundaries.

This value is likely to be unique but is not guaranteed unique. There are known cases, such as for loops without a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/key.composable#key(kotlin.Array,kotlin.Function0)`, where the runtime does not have enough information to make the compound key hash unique.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHashCode()` |   |

### currentCompositeKeyHashCode

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composables.kt+symbol:currentCompositeKeyHashCode) Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0)

```
val currentCompositeKeyHashCode: CompositeKeyHashCode
```

A higher-precision variation of `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#currentCompositeKeyHash()` used to map externally stored state to the composition. By stepping up to a Long, this variation of the key hash is exponentially less likely to experience a collision.

In practice, because the hash is not perfectly distributed and because there are situations where the runtime can't uniquely identify certain repeated content, collisions are still possible. This higher precision does, however, afford more confidence in the assumption that an arbitrarily sized composition hierarchy will not experience two unrelated groups having the same key hash.

### currentCompositionContext

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composables.kt+symbol:currentCompositionContext) Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0)

```
@InternalComposeApi
val currentCompositionContext: CompositionContext
```

Returns the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionContext` associated for the current composer.

This API is exposed for internal usages only. It should not be invoked outside of the Compose Runtime

### currentCompositionLocalContext

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composables.kt+symbol:currentCompositionLocalContext) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.1.0)

```
val currentCompositionLocalContext: CompositionLocalContext
```

Returns the current `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalContext` which contains all `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocal`'s in the current composition and their values provided by `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`'s. This context can be used to pass locals to another composition via `https://developer.android.com/reference/kotlin/androidx/compose/runtime/CompositionLocalProvider.composable#CompositionLocalProvider(kotlin.Array,kotlin.Function0)`. That is usually needed if another composition is not a subcomposition of the current one.

### currentRecomposeScope

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/Composables.kt+symbol:currentRecomposeScope) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
val currentRecomposeScope: RecomposeScope
```

Returns an object which can be used to invalidate the current scope at this point in composition. This object can be used to manually cause recompositions.

## Extension properties

### CoroutineContext.monotonicFrameClock

Cmn Artifact: [androidx.compose.runtime:runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime) [View Source](https://cs.android.com/search?q=file:androidx/compose/runtime/MonotonicFrameClock.kt+symbol:monotonicFrameClock) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0)

```
@ExperimentalComposeApi
val CoroutineContext.monotonicFrameClock: MonotonicFrameClock
```

Returns the `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` for this `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` or throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` if one is not present.