# TransformScope

Artifact: [androidx.appstate.transform:transform](https://developer.android.com/jetpack/androidx/releases/appstate-transform) [View Source](https://cs.android.com/search?q=file:androidx/appstate/transform/TransformScope.kt+class:androidx.appstate.transform.TransformScope) Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/appstate-transform#1.0.0-alpha02) Common/All
- Cmn

  ```
  interface TransformScope
  ```

*** ** * ** ***

A scope that manages a shared headless `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition` for running one or more state transformations created via `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope#launchTransform(kotlin.Any,kotlin.Function1)`.

## Summary

| ### Public functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/appstate/transform/DisposableState<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope#launchTransform(kotlin.Any,kotlin.Function1)(initialState: T, onUpdate: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (T) -> T)` Launches a Composable `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope#launchTransform(kotlin.Any,kotlin.Function1)` transformation in this `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope` and returns its result as a `https://developer.android.com/reference/kotlin/androidx/appstate/transform/DisposableState`. | Cmn |

## Public functions

### launchTransform

Cmn Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/appstate-transform#1.0.0-alpha02)

```
fun <T : Any?> launchTransform(initialState: T, onUpdate: @Composable (T) -> T): DisposableState<T>
```

Launches a Composable `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope#launchTransform(kotlin.Any,kotlin.Function1)` transformation in this `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope` and returns its result as a `https://developer.android.com/reference/kotlin/androidx/appstate/transform/DisposableState`.

This function bridges reactive Compose state (or Flows collected as state) into a continuously updated `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-state/index.html` object outside a traditional Compose UI hierarchy. The `https://developer.android.com/reference/kotlin/androidx/appstate/transform/package-summary#transform(kotlin.Any,kotlinx.coroutines.CoroutineScope,kotlinx.coroutines.CoroutineDispatcher,kotlin.Function1)` block is automatically recomposed whenever any Compose state it reads is updated, and the newly returned value is pushed into the resulting `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-state/index.html`.

Calling `https://developer.android.com/reference/kotlin/androidx/appstate/transform/DisposableState#dispose()` removes this transformation from the `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope` so that it is no longer recomposed in the shared `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composition`.

| Parameters |
|---|---|
| `initialState: T` | The initial value to populate the returned `https://developer.android.com/reference/kotlin/androidx/appstate/transform/DisposableState` before the first composition completes. |
| `onUpdate: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable (T) -> T` | The `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` block that computes the updated value of type `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope#launchTransform(kotlin.Any,kotlin.Function1)`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/appstate/transform/DisposableState<T>` | A `https://developer.android.com/reference/kotlin/androidx/appstate/transform/DisposableState` containing the latest result of the `https://developer.android.com/reference/kotlin/androidx/appstate/transform/TransformScope#launchTransform(kotlin.Any,kotlin.Function1)` block. |