Appstate Transform
| 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
|---|---|---|---|---|
| 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") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.0
버전 1.0.0-alpha01
2026년 10월 28일
androidx.appstate.transform:transform-*:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
AppState Transform는 Compose 런타임을 기반으로 빌드된 새로운 라이브러리로, UI 외부에서 컴포지션을 실행할 수 있습니다. 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)
}