Преобразование Appstate
| Последнее обновление | Основная версия | Релиз-кандидат | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 28 октября 2026 г. | - | - | - | 1.0.0-alpha01 |
Объявление зависимостей
Чтобы добавить зависимость от преобразования appstate, необходимо добавить в проект репозиторий Google Maven. Подробную информацию можно найти в статье Репозиторий Google Maven.
Добавьте зависимости для нужных артефактов в файл build.gradle приложения или модуля:
Яркий
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") }
Подробнее о добавлении зависимостей сборки…
Отзыв
Ваши отзывы помогают нам улучшать Jetpack. Если вы обнаружите новые проблемы или у вас появятся идеи по улучшению этой библиотеки, сообщите нам. Прежде чем сообщать о новых ошибках, изучите уже добавленные. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Дополнительную информацию можно найти в документации по системе отслеживания ошибок.
Версия 1.0
Версия 1.0.0-alpha01
28 октября 2026 г.
Выпущены данные "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)
}