Appstate 转换

  
--
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2026 年 10 月 28 日 - - - 1.0.0-alpha01

声明依赖项

如需添加 Appstate Transform 的依赖项,您必须将 Google Maven 仓库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    implementation "androidx.appstate.transform:transform:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-android:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-desktop:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-iosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-iossimulatorarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-js:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-linuxarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-linuxx64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-macosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-mingwx64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-android:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-desktop:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-iosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-iossimulatorarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-js:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-linuxarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-linuxx64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-macosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-mingwx64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-tvosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-tvossimulatorarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-wasm-js:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-watchosarm32:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-watchosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-watchosdevicearm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-testing-watchossimulatorarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-tvosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-tvossimulatorarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-wasm-js:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-watchosarm32:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-watchosarm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-watchosdevicearm64:1.0.0-alpha01"
    implementation "androidx.appstate.transform:transform-watchossimulatorarm64:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.appstate.transform:transform:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-android:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-desktop:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-iosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-iossimulatorarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-js:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-linuxarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-linuxx64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-macosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-mingwx64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-android:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-desktop:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-iosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-iossimulatorarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-js:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-linuxarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-linuxx64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-macosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-mingwx64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-tvosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-tvossimulatorarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-wasm-js:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-watchosarm32:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-watchosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-watchosdevicearm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-testing-watchossimulatorarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-tvosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-tvossimulatorarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-wasm-js:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-watchosarm32:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-watchosarm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-watchosdevicearm64:1.0.0-alpha01")
    implementation("androidx.appstate.transform:transform-watchossimulatorarm64:1.0.0-alpha01")
}

如需详细了解依赖项,请参阅添加 build 依赖项。

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档。

版本 1.0

版本 1.0.0-alpha01

2026 年 10 月 28 日

发布了 androidx.appstate.transform:transform-*:1.0.0-alpha01。版本 1.0.0-alpha01 包含这些提交内容。

新功能

AppState Transform 是一个基于 Compose 运行时构建的新库,可让您在界面之外运行组合。androidx.appstate.transform:transform 工件提供库 API,还附带一个用于测试的 androidx.appstate.transform:transform-testing 工件。开发者可以使用 Transform 在应用内的任何位置管理其组合。

// With helper function
var sourceState by mutableStateOf(0)

val state = transform(initialValue = 0, scope = myCoroutineScope) {
    // any time this state changes, this lambda will update
    sourceState
}

// With TransformScope directly
val transformScope = TransformScope()

var sourceState by mutableStateOf(0)
val state = transformScope.launchTransform(initialValue = 0) {
    // any time this state changes, this lambda will update
    sourceState
}

myCoroutineScope.launch {
    try {
        transformScope.run()
    } finally {
        state.dispose()
    }
}

// In test with the new transformTest API
@Test
fun testStateUpdate() = transformTest {
    var sourceState by mutableStateOf(0)
    val state = transform(
        initialValue = 0, scope = backgroundScope, dispatcher = testDispatcher
    ) {
        sourceState
    }

    assertThat(state.value).isEqualTo(0)

    sourceState = 1
    advance()

    assertThat(state.value).isEqualTo(1)
}