Transformação de estado do app

  
--
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
28 de outubro de 2026 - - - 1.0.0-alpha01

Declarar dependências

Para adicionar uma dependência à transformação appstate, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

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")
}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.0

Versão 1.0.0-alpha01

28 de outubro de 2026

Lançamento de androidx.appstate.transform:transform-*:1.0.0-alpha01. A versão 1.0.0-alpha01 inclui estes commits.

Novos recursos

AppState Transform é uma nova biblioteca criada no ambiente de execução do Compose que permite executar uma composição fora da interface. O artefato androidx.appstate.transform:transform fornece as APIs da biblioteca e também vem com um artefato androidx.appstate.transform:transform-testing para testes. Os desenvolvedores podem usar o Transform para gerenciar a composição em qualquer lugar do app.

// 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)
}