Compose Animation
androidx.compose.animation
androidx.compose.animation.core
androidx.compose.animation.graphics
(모든 Compose 패키지는 API 참조 문서 참고)
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
2024년 8월 21일 | 1.6.8 | 1.7.0-rc01 | - | - |
구조
Compose는 androidx
내 Maven 그룹 ID 7개의 조합입니다. 각 그룹에는 타겟팅된 일부 기능이 포함되고 각 기능에는 자체 출시 노트 세트가 있습니다.
다음 표에서는 그룹에 관한 설명과 각 출시 노트 조합의 링크를 제시합니다.
그룹 | 설명 |
---|---|
compose.animation | Jetpack Compose 애플리케이션에서 애니메이션을 빌드하여 풍부한 사용자 경험을 제공합니다. |
compose.compiler | Kotlin 컴파일러 플러그인으로 최적화를 사용 설정하고 @Composable 함수를 변환합니다. |
compose.foundation | 즉시 사용 가능한 구성요소를 사용해 Jetpack Compose 애플리케이션을 작성하고 기초를 확장해 나만의 디자인 시스템 요소를 빌드합니다. |
compose.material | 즉시 사용 가능한 Material Design 구성요소로 Jetpack Compose UI를 빌드합니다. 이는 Compose를 고급 수준에서 사용하는 첫 단계이며, www.material.io에 설명된 것과 동일한 구성요소를 제공합니다. |
compose.material3 | 차세대 Material Design인 Material Design 3 구성요소로 Jetpack Compose UI를 빌드합니다. Material 3은 업데이트된 테마 설정 및 구성요소, Material You 맞춤설정 기능(동적 색상 등)을 포함하며 새로운 Android 12의 시각적 스타일 및 시스템 UI와 일관되도록 설계되었습니다. |
compose.runtime | Compose의 프로그래밍 모델과 상태 관리를 위한 기본 구성요소이며, Compose 컴파일러 플러그인이 타겟팅하는 핵심 런타임입니다. |
compose.ui | 레이아웃, 그리기, 입력 등 기기와 상호작용할 때 필요한 Compose UI의 기본적인 구성요소입니다. |
종속 항목 선언
Compose의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용을 알아보려면 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { implementation "androidx.compose.animation:animation:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.animation:animation:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.7
버전 1.7.0-rc01
2024년 8월 21일
androidx.compose.animation:animation-*:1.7.0-rc01
이 출시되었습니다. 버전 1.7.0-rc01에 포함된 커밋을 확인하세요.
버전 1.7.0-beta07
2024년 8월 7일
androidx.compose.animation:animation-*:1.7.0-beta07
이 출시되었습니다. 버전 1.7.0-beta07에 포함된 커밋을 확인하세요.
버그 수정
- 일반적으로 탐색과 함께 사용하는 경우가 포함되는 특정 조건에서 전환하는 동안
SharedTransitionScope
가 오버레이 항목을 그리지 않는 문제를 수정했습니다. 추가합니다. (Id65ab, b/347520198)
버전 1.7.0-beta06
2024년 7월 24일
androidx.compose.animation:animation-*:1.7.0-beta06
이 출시되었습니다. 버전 1.7.0-beta06에 포함된 커밋을 확인하세요.
버그 수정
- 전환이 삭제될 때
SnapshotStateObserver
에서 관찰을 올바르게 삭제하여SeekableTransition
에서 전환 상태가 누출되는 문제를 수정했습니다. 추가했습니다. (b9c7182) - 상위 전환 완료 시 하위 전환이 완료로 제대로 표시되지 않는 극단적인 문제를 해결했습니다. 추가했습니다. (dc42216)
버전 1.7.0-beta05
2024년 7월 10일
androidx.compose.animation:animation-*:1.7.0-beta05
이 출시되었습니다. 버전 1.7.0-beta05에 포함된 커밋을 확인하세요.
버그 수정
- 이제 전환 속성
totalDurationNanos
를snapshotFlow
내에서 올바르게 읽을 수 있습니다.
버전 1.7.0-beta04
2024년 6월 26일
androidx.compose.animation:animation-*:1.7.0-beta04
이 출시되었습니다. 버전 1.7.0-beta04에 포함된 커밋을 확인하세요.
버전 1.7.0-beta03
2024년 6월 12일
androidx.compose.animation:animation-*:1.7.0-beta03
이 출시되었습니다. 버전 1.7.0-beta03에 포함된 커밋을 확인하세요.
버전 1.7.0-beta02
2024년 5월 29일
androidx.compose.animation:animation-*:1.7.0-beta02
이 출시되었습니다. 버전 1.7.0-beta02에 포함된 커밋을 확인하세요.
버전 1.7.0-beta01
2024년 5월 14일
androidx.compose.animation:animation-*:1.7.0-beta01
이 출시되었습니다. 버전 1.7.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
sharedBounds
의 새로운resizeModes
(ScaleToBounds
및RemeasureToBounds
)를 사용하여 확장과 재측정 중에서 선택할 수 있습니다. 이전scaleIn/OutSharedContentToBounds
API는 이제 지원 중단되었습니다. 추가했습니다. (I0d41a)
외부 기여
- 실험용
SharedTransitionScope
는 이제 클래스가 아닌 인터페이스입니다. (Iaf856, b/338415048, b/338414702)
버전 1.7.0-alpha08
2024년 5월 1일
androidx.compose.animation:animation-*:1.7.0-alpha08
이 출시되었습니다. 버전 1.7.0-alpha08에 포함된 커밋을 확인하세요.
API 변경사항
LookaheadScope
API가 안정화되었습니다. 추가했습니다. (I21507)
외부 기여
- Steven Schoen에 의해
SeekableTransitionState
애니메이션/스냅 후 시작 애니메이션 시간 지우기 (1ca89529)
버전 1.7.0-alpha07
2024년 4월 17일
androidx.compose.animation:animation-*:1.7.0-alpha07
이 출시되었습니다. 버전 1.7.0-alpha07에 포함된 커밋을 확인하세요.
새로운 기능
- 새로운 공유 요소 전환 API를 사용하고 의견을 기다립니다. 이 새로운 실험용 API를 사용하면 제공된 수정자를 사용하여 레이아웃 트리에서 공유된 레이아웃에 태그를 지정할 수 있습니다. 이렇게 하면 공유 콘텐츠 집합이 종료되고 다른 집합이 들어갈 때 경계를 원활하게 변경할 수 있습니다. 추가했습니다. (Icb0b9)
- 새로운
scaleInSharedContentToBounds
및scaleOutSharedContentToBounds
를 사용하여sharedBounds
의 콘텐츠를 확장합니다. (I731c1)
API 변경사항
AnimatedVisibilityScope.transition
는 이제 안정적인 API입니다.Modifier.animateEnterExit(..)
도 안정화되었습니다. 추가했습니다. (I6c1d1)ApproachLayoutModifierNode
및Modifier.approachLayout
가 이제 이전isMeasurementApproachComplete()
및isPlacementApproachComplete()
를 각각 대체하는 새로운isMeasurementApproachInProgress()
및isPlacementApproachInProgress()
로 안정화되었습니다.- 지원 중단된
intermediateLayout
수정자를 삭제했습니다. 추가했습니다. (I3e91c) - 이제
periodicBias
값 (Float)을keyframesWithSpline
에 전달할 수 있습니다. 이렇게 하면 스플라인의 최초 속도와 최종 속도가 같아집니다. 스플라인을 사용하는 반복 가능한 애니메이션에 유용합니다. 편향은 주기성을 달성하기 위해 각 속도 (초기 및 최종 속도)가 얼마나 수정되는지를 나타냅니다. 추가했습니다. (Ic1e6c, b/292114811)
버그 수정
- 이전에 0..1로 고정되던 오버슈팅 및 언더슈팅 이징 곡선을 수정했습니다. (I38747)
버전 1.7.0-alpha06
2024년 4월 3일
androidx.compose.animation:animation-*:1.7.0-alpha06
이 출시되었습니다. 버전 1.7.0-alpha06에 포함된 커밋을 확인하세요.
새로운 기능
- 항목 표시 및 사라짐 애니메이션 지원을
LazyColumn
및LazyRow
에 추가했습니다. 이전에는 배치 (재정렬) 애니메이션을 지원하기 위해Modifier.animateItemPlacement()
수정자를 추가할 수 있었습니다. 이 수정자를 지원 중단했으며 새로운 비실험용 수정자인Modifier.animateItem()
를 도입했습니다. 이 수정자는 모양 (페이드 인), 사라짐 (페이드 아웃), 재정렬 등 세 가지 애니메이션 유형을 모두 지원할 수 있습니다. 추가했습니다. (I2d7f7, b/330152398, b/150812265)
버그 수정
updateTransition
API의 성능이 개선되었습니다.
버전 1.7.0-alpha05
2024년 3월 20일
androidx.compose.animation:animation-*:1.7.0-alpha05
이 출시되었습니다. 버전 1.7.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
SeekableTransitionState
는snapTo()
를seekTo()
로 대체하고 어떤 종류의 애니메이션도 없이 상태를 즉시 대상 상태로 변경하는snapTo()
를 추가합니다.
버전 1.7.0-alpha04
2024년 3월 6일
androidx.compose.animation:animation-*:1.7.0-alpha04
이 출시되었습니다. 버전 1.7.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- 경로의 방향을 반대로 바꾸는 새 API
Path.reverse()
(I36348)
버전 1.7.0-alpha03
2024년 2월 21일
androidx.compose.animation:animation-*:1.7.0-alpha03
이 출시되었습니다. 버전 1.7.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- 맞춤 콘텐츠 정렬을 위한 추가 매개변수를 사용하는 새로운
Modifier.animateContentSize
추가했습니다. (I5623a, b/269803907) - 새로운 실험용
DeferredTargetAnimation
는 인스턴스화 중에 알 수 없는 크기, 위치 또는 기타 타겟에 애니메이션을 적용합니다. 추가했습니다. (I60745)
버전 1.7.0-alpha02
2024년 2월 7일
androidx.compose.animation:animation-*:1.7.0-alpha02
이 출시되었습니다. 버전 1.7.0-alpha02에 포함된 커밋을 확인하세요.
버그 수정
KeyframesSpec
의 호환성이 수정되었습니다. 추가했습니다. (I2bdf3, b/322214617)Modifier.animateContentSize
가LazyList
에서 사용될 때 제대로 재설정되지 않는 문제를 수정했습니다. 추가했습니다. (I070512, b/322525716)- 범위 외 타임스탬프를 사용할 때
KeyframesSpec
에서 발생하는IllegalStateException
이 수정되었습니다. 추가했습니다. (I341b8, b/322839811)
버전 1.7.0-alpha01
2024년 1월 24일
androidx.compose.animation:animation-*:1.7.0-alpha01
이 출시되었습니다. 버전 1.7.0-alpha01에 포함된 커밋을 확인하세요.
버전 1.6
버전 1.6.8
2024년 6월 12일
androidx.compose.animation:animation-*:1.6.8
이 출시되었습니다. 버전 1.6.8에 포함된 커밋을 확인하세요.
버전 1.6.7
2024년 5월 1일
androidx.compose.animation:animation-*:1.6.7
이 출시되었습니다. 버전 1.6.7에 포함된 커밋을 확인하세요.
버전 1.6.6
2024년 4월 17일
androidx.compose.animation:animation-*:1.6.6
이 출시되었습니다. 이전 출시 이후 변경사항 없음
버전 1.6.5
2024년 4월 3일
androidx.compose.animation:animation-*:1.6.5
이 출시되었습니다. 버전 1.6.5에 포함된 커밋을 확인하세요.
버전 1.6.4
2024년 3월 20일
androidx.compose.animation:animation-*:1.6.4
이 출시되었습니다. 버전 1.6.4에 포함된 커밋을 확인하세요.
버전 1.6.3
2024년 3월 6일
androidx.compose.animation:animation-*:1.6.3
이 출시되었습니다. 버전 1.6.3에 포함된 커밋을 확인하세요.
버전 1.6.2
2024년 2월 21일
androidx.compose.animation:animation-*:1.6.2
이 출시되었습니다. 버전 1.6.2에 포함된 커밋을 확인하세요.
버전 1.6.1
2024년 2월 7일
androidx.compose.animation:animation-*:1.6.1
이 출시되었습니다. 버전 1.6.1에 포함된 커밋을 확인하세요.
버그 수정
KeyframesSpec
의 호환성이 수정되었습니다. 추가했습니다. (I2bdf3, b/322214617)
버전 1.6.0
2024년 1월 24일
androidx.compose.animation:animation-*:1.6.0
이 출시되었습니다. 버전 1.6.0에 포함된 커밋을 확인하세요.
버전 1.6.0-rc01
2024년 1월 10일
androidx.compose.animation:animation-*:1.6.0-rc01
이 출시되었습니다. 버전 1.6.0-rc01에 포함된 커밋을 확인하세요.
버전 1.6.0-beta03
2023년 12월 13일
androidx.compose.animation:animation-*:1.6.0-beta03
이 출시되었습니다. 버전 1.6.0-beta03에 포함된 커밋을 확인하세요.
API 변경사항
scaleInToFitContainer
및scaleOutToFitContainer
이 전방 탐색이 필요하므로AnimatedContentTransitionScope
에서 일시적으로 삭제되었습니다. 기본적으로 미리보기 기능이 사용 설정되어 있거나 향후 출시에서 선택되면 사용할 수 있습니다.
버전 1.6.0-beta02
2023년 11월 29일
androidx.compose.animation:animation-*:1.6.0-beta02
이 출시되었습니다. 버전 1.6.0-beta02에 포함된 커밋을 확인하세요.
버전 1.6.0-beta01
2023년 11월 15일
androidx.compose.animation:animation-*:1.6.0-beta01
이 출시되었습니다. 버전 1.6.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
ExitTransition.Hold
의 이름을ExitTransition.KeepUntilTransitionsFinished
로 보다 명시적으로 바꾸었습니다. 추가했습니다. (I1c490)- 이제
keyframesWithSpline
를 통해 단조 스플라인을 사용하여 N차원 값을 보간할 수 있습니다.Offset
,IntOffset
,DpOffset
와 같은 위치 값을 보간하는 데 특히 유용합니다. 실험용 API로 추가되었습니다.
버그 수정
ArcLine
에 Sweep Gradient를 위한 렌더기 지원을 추가합니다. 추가했습니다. (I4d5bb)PageSize.Fixed
의 등호 및 해시코드를 구현합니다. 추가했습니다. (Ie3ede, b/300134276)- 창 인셋 변경사항과 관련된 바이너리 호환성 문제를 수정합니다. 추가했습니다. (Iee695)
- Material 3 칩/버튼의 머티리얼 코어 레이어를 삭제합니다. microbenchmark가 없을 때 더 나은 성능을 보이기 때문입니다. 추가했습니다. (I55555)
버전 1.6.0-alpha08
2023년 10월 18일
androidx.compose.animation:animation-*:1.6.0-alpha08
이 출시되었습니다. 버전 1.6.0-alpha08에 포함된 커밋을 확인하세요.
API 변경사항
- 빌더 패턴을 보존하는
KeyframesSpecConfig#with
를 지원 중단하고KeyframesSpecConfig#using
로 대체했습니다. 추가했습니다. (I1d769)
버전 1.6.0-alpha07
2023년 10월 4일
androidx.compose.animation:animation-*:1.6.0-alpha07
이 출시되었습니다. 버전 1.6.0-alpha07에 포함된 커밋을 확인하세요.
API 변경사항
- 이제 고정 탭 및 스크롤 가능 Tabrow에 기본 및 보조 변형이 있습니다. Material 3에 정의된 대로 색상 및 표시기 동작에 올바르게 매핑됩니다.
- 이제
PrimaryScrollableTabRow
및SecondaryScrollableTabRow
가 스크롤 상태를 노출합니다. 추가했습니다. (Iec8f5, b/260572337)
버전 1.6.0-alpha06
2023년 9월 20일
androidx.compose.animation:animation-*:1.6.0-alpha06
이 출시되었습니다. 버전 1.6.0-alpha06에 포함된 커밋을 확인하세요.
버전 1.6.0-alpha05
2023년 9월 6일
androidx.compose.animation:animation-*:1.6.0-alpha05
이 출시되었습니다. 버전 1.6.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
- 이징 곡선에 임의의 경로를 제공할 수 있도록
PathEasing
를 추가했습니다. 추가했습니다. (Idb4b9)
버전 1.6.0-alpha04
2023년 8월 23일
androidx.compose.animation:animation-*:1.6.0-alpha04
이 출시되었습니다. 버전 1.6.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- 개발자가 전환 진행률을 제어할 수 있도록
SeekableTransitionState
를 추가합니다. 추가했습니다. (I8e69d)
버전 1.6.0-alpha03
2023년 8월 9일
androidx.compose.animation:animation-*:1.6.0-alpha03
이 출시되었습니다. 버전 1.6.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
- 들어가기 및 나가기 도중 애니메이션 컨테이너의 크기에 따라 콘텐츠 크기를 조정하는 새로운 유형의 들어가기/나가기 전환 종료 애니메이션.
LookaheadScope
컴포저블 함수와 인터페이스가 이제 안정화되었습니다. (Ifb2ce)
버전 1.6.0-alpha02
2023년 7월 26일
androidx.compose.animation:animation-*:1.6.0-alpha02
이 출시되었습니다. 버전 1.6.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 새로운
ExitTransition.Hold
를 사용하면 Enter 키를 눌러 발신 콘텐츠를AnimatedContent
에 표시할 수 있습니다. 종료 전환이 완료됩니다. 추가했습니다. (I5984f) - 컴포저블에 허용되는 입력을 지정하기 위한 추가 주석입니다. (I51109)
버전 1.6.0-alpha01
2023년 6월 21일
androidx.compose.animation:animation-*:1.6.0-alpha01
이 출시되었습니다. 버전 1.6.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 전방 탐색 패스에서 타겟 크기를 보고하여
Modifier.animateContentSize
및AnimatedVisibility
가 전방 탐색 시스템에 완전히 통합되도록 사용 설정합니다.
API 변경사항
- 현재 측정 패스가 미리보기 패스인지 여부를 나타내는
IntrinsincMeasureScope
및 구현 (예:MeasureScope
)의 새 속성입니다. 추가했습니다. (I7a812)
버그 수정
- 스프링 애니메이션에서 할당을 삭제했습니다. 추가했습니다. (Ie9431)
- Enum.valueOf의 값 매개변수 이름이 변경되었습니다. (Ia9b89)
- enum valueOf에서 더 많은 예외가 발생합니다. (I818fe)
버전 1.5
버전 1.5.4
2023년 10월 18일
androidx.compose.animation:animation-*:1.5.4
이 출시되었습니다. 버전 1.5.4에 포함된 커밋을 확인하세요.
버전 1.5.3
2023년 10월 4일
androidx.compose.animation:animation-*:1.5.3
이 출시되었습니다. 이 버전에 변경사항이 없습니다.
버전 1.5.2
2023년 9월 27일
androidx.compose.animation:animation-*:1.5.2
이 출시되었습니다. 버전 1.5.2에 포함된 커밋을 확인하세요.
버전 1.5.1
2023년 9월 6일
androidx.compose.foundation:foundation-*:1.5.1
이 출시되었습니다. 버전 1.5.1에 포함된 커밋을 확인하세요.
버그 수정
- 키보드를 표시하고
readOnly
가 true일 때 수정할 수 있는 텍스트 필드를 수정했습니다. 또한 포커스가 있는 동안readOnly
가 true에서 false로 변경될 때 키보드가 표시되지 않는 문제를 수정했습니다. 추가했습니다. (I34a19, b/246909589)
버전 1.5.1
2023년 9월 6일
androidx.compose.animation:animation-*:1.5.1
이 출시되었습니다. 버전 1.5.1에 포함된 커밋을 확인하세요.
버전 1.5.0
2023년 8월 9일
androidx.compose.animation:animation-*:1.5.0
이 출시되었습니다. 버전 1.5.0에 포함된 커밋을 확인하세요.
버전 1.5.0-rc01
2023년 7월 26일
androidx.compose.animation:animation-*:1.5.0-rc01
이 출시되었습니다. 버전 1.5.0-rc01에 포함된 커밋을 확인하세요.
버그 수정
프리미티브 상태 유형 (예:
MutableIntState
)에서.value
를 호출하면 잘못된 수정사항이 포함된 린트 경고가 보고되는 문제를 수정했습니다. 이제 검사에서 올바른 속성으로 마이그레이션하도록 권장합니다. 추가했습니다. (Iba953, b/287279257)mutableStateOf()
호출을 프리미티브의 해당하는 특수 유형으로 이전할 것을 권장하는 검사(선택사항)를 사용할 수 있습니다. 린트 ID는AutoboxingStateCreation
입니다. 이전에는 모든 프로젝트에서 이 검사가 기본적으로 사용 설정되었습니다. Android 스튜디오의 편집기 및 프로젝트의 린트 출력에서 이 경고를 보려면 다음과 같이 모듈의build.gradle
또는build.gradle.kts
구성 내에서warning "AutoboxingStateCreation"
를 선언하여 심각도를 정보에서 경고 이상으로 변경합니다. (I34f7e)android { lint { warning "AutoboxingStateCreation" } ... }
버전 1.5.0-beta03
2023년 6월 28일
androidx.compose.animation:animation-*:1.5.0-beta03
이 출시되었습니다. 버전 1.5.0-beta03에 포함된 커밋을 확인하세요.
버전 1.5.0-beta02
2023년 6월 7일
androidx.compose.animation:animation-*:1.5.0-beta02
이 출시되었습니다. 버전 1.5.0-beta02에 포함된 커밋을 확인하세요.
버전 1.5.0-beta01
2023년 5월 24일
androidx.compose.animation:animation-*:1.5.0-beta01
이 출시되었습니다. 버전 1.5.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
- 리컴포지션, 색상 애니메이션,
AndroidComposeView
의 할당을 삭제했습니다. (Ib2bfa)
버그 수정
- 스프링 애니메이션에서 할당을 삭제했습니다. (Ie9431)
버전 1.5.0-alpha04
2023년 5월 10일
androidx.compose.animation:animation-*:1.5.0-alpha04
이 출시되었습니다. 버전 1.5.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- 이제 전환 발생 시점을 더 세밀하게 제어할 수 있도록
ContentKey
가AnimatedContent
에서 지원됩니다. 추가했습니다. (Ic069b)
버전 1.5.0-alpha03
2023년 4월 19일
androidx.compose.animation:animation-*:1.5.0-alpha03
이 출시되었습니다. 버전 1.5.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
LookaheadScope
의SubcomposeLayout
에 관한 새로운 기본 동작 이를 통해 조건부 슬롯이 없는SubcomposeLayouts
(예:TabRow
,Scaffold
,BoxWithConstraints
등)가 전방 탐색 애니메이션과 원활하게 작동할 수 있습니다.
API 변경사항
- 전방 탐색 패스의 측정 정책을 재사용하는 새로운 기본
intermediateMeasurePolicy
를 사용하면Scaffold
,TabRow
,BoxWithConstraints
와 같은 조건부 슬롯이 없는SubcomposeLayout
하위유형을 기본적으로 미리보기와 함께 사용할 수 있습니다. 추가했습니다. (Id84c8) - 들어가기 및 나가기 전환을 결합하기 위해 중위 함수 이름을
togetherWith
로 바꿉니다. 콘텐츠 람다의 수신기로AnimatedContentScope
가 새로 추가되었습니다. 추가했습니다. (Ic39ae)
버전 1.5.0-alpha02
2023년 4월 5일
androidx.compose.animation:animation-*:1.5.0-alpha02
이 출시되었습니다. 버전 1.5.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
SubcomposeLayout
에서 전방 탐색 기능을 지원하는 새로운 실험용 API 이렇게 하면SubcomposeLayout
가LookaheadScope
에서 올바르게 작동할 수 있습니다.SubcomposeLayout
의 특정 하위유형에 관한 즉각적인 지원이 곧 더 많이 제공될 예정입니다.
API 변경사항
- 새로운
SubcomposeLayout
API는 작업 중에 측정/레이아웃 로직을 처리하기 위한 추가적인 중간 측정 정책을 애니메이션을 만들 수 있습니다 추가했습니다. (I017d3)
버전 1.5.0-alpha01
2023년 3월 22일
androidx.compose.animation:animation-*:1.5.0-alpha01
이 출시되었습니다. 버전 1.5.0-alpha01에 포함된 커밋을 확인하세요.
API 변경사항
AnimatedContent
API가 이제 안정화되었습니다.AnimatedContentScope
는AnimatedContentTransitionScope
로 이름이 변경되었습니다. 이제scaleIn
및scaleOut
는 안정적인 API입니다. 추가했습니다. (Iaf54e)
버전 1.4
버전 1.4.3
2023년 5월 3일
androidx.compose.animation:animation:1.4.3
, androidx.compose.animation:animation-core:1.4.3
, androidx.compose.animation:animation-graphics:1.4.3
은 변경사항 없이 출시되었습니다 (버전 범프만 해당).
버전 1.4.2
2023년 4월 19일
androidx.compose.animation:animation:1.4.2
, androidx.compose.animation:animation-core:1.4.2
, androidx.compose.animation:animation-graphics:1.4.2
은 변경사항 없이 출시되었습니다. 버전 1.4.2에 포함된 커밋을 확인하세요.
버전 1.4.1
2023년 4월 5일
androidx.compose.animation:animation:1.4.1
, androidx.compose.animation:animation-core:1.4.1
, androidx.compose.animation:animation-graphics:1.4.1
은 변경사항 없이 출시되었습니다. 버전 1.4.1에 포함된 커밋을 확인하세요.
버전 1.4.0
2023년 3월 22일
androidx.compose.animation:animation:1.4.0
, androidx.compose.animation:animation-core:1.4.0
및 androidx.compose.animation:animation-graphics:1.4.0
가 출시되었습니다. 버전 1.4.0에 포함된 커밋을 확인하세요.
1.3.0 이후 중요 변경사항
- 도구 라벨은 r
ememberInfiniteTransition
과InfiniteTransition
및 Transition의 모든 확장 함수 (예:InfiniteTransition#animateColor
)에서 지원됩니다. (I56ef7)
버전 1.4.0-rc01
2023년 3월 8일
androidx.compose.animation:animation:1.4.0-rc01
, androidx.compose.animation:animation-core:1.4.0-rc01
, androidx.compose.animation:animation-graphics:1.4.0-rc01
은 변경사항 없이 출시되었습니다. 버전 1.4.0-rc01에 포함된 커밋을 확인하세요.
버전 1.4.0-beta02
2023년 2월 22일
androidx.compose.animation:animation:1.4.0-beta02
, androidx.compose.animation:animation-core:1.4.0-beta02
, androidx.compose.animation:animation-graphics:1.4.0-beta02
은 변경사항 없이 출시되었습니다. 버전 1.4.0-beta02에 포함된 커밋을 확인하세요.
버전 1.4.0-beta01
2023년 2월 8일
androidx.compose.animation:animation:1.4.0-beta01
, androidx.compose.animation:animation-core:1.4.0-beta01
, androidx.compose.animation:animation-graphics:1.4.0-beta01
이 변경사항 없이 출시되었습니다. 버전 1.4.0-beta01에 포함된 커밋을 확인하세요.
버전 1.4.0-alpha05
2023년 1월 25일
androidx.compose.animation:animation:1.4.0-alpha05
, androidx.compose.animation:animation-core:1.4.0-alpha05
, androidx.compose.animation:animation-graphics:1.4.0-alpha05
가 출시되었습니다. 버전 1.4.0-alpha05에 포함된 커밋을 확인하세요.
변경사항
- 마지막 알파 버전 이후 애니메이션 라이브러리에 변경사항이 없습니다(버전 범프만 있음).
버전 1.4.0-alpha04
2023년 1월 11일
androidx.compose.animation:animation:1.4.0-alpha04
, androidx.compose.animation:animation-core:1.4.0-alpha04
, androidx.compose.animation:animation-graphics:1.4.0-alpha04
가 출시되었습니다. 버전 1.4.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
- 도구 라벨은
rememberInfiniteTransition
과InfiniteTransition
및Transition
의 모든 확장 함수(예:InfiniteTransition#animateColor
)에서 지원됩니다. (I56ef7)
API 변경사항
- 이제
InfiniteTransition#TransitionAnimationState
및InfiniteTransition#animations
API가 공개됩니다. (I36682)
버전 1.4.0-alpha03
2022년 12월 7일
androidx.compose.animation:animation:1.4.0-alpha03
, androidx.compose.animation:animation-core:1.4.0-alpha03
, androidx.compose.animation:animation-graphics:1.4.0-alpha03
이 출시되었습니다. 버전 1.4.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
- Compose 규칙을 사용하는 UI 테스트에서는 모든 프레임 콜백이 실행을 완료할 때까지
withFrameNanos
콜백 중에 재개된 연속 상태가 전달되지 않습니다. 이는 정상적으로 실행될 때의 Compose 동작과 일치합니다. 그러나 기존의 동작을 사용하는 테스트는 실패할 수 있습니다. 이는withFrameNanos
또는withFrameMillis
를 직접 호출하는 코드에만 영향을 미쳐야 하고 콜백 내부로 이동해야 할 수도 있는 이러한 함수에 전달되는 로직이 콜백 외부에 있어야 합니다. 이 CL 예에서 애니메이션 테스트 변경사항을 참고하세요. withFrameNanos
콜백 후 호출자의 코루틴을 재개하기 전에 코드를 실행하도록TestMonotonicFrameClock
생성자 및 팩토리 함수에 선택적 매개변수onPerformTraversals: (Long) -> Unit
을 추가했습니다. (Idb413, b/254115946, b/222093277, b/255802670)- 도구 라벨에 관한 새 매개변수가
AnimatedContent
에 추가되었습니다. (Iebe2d)
버전 1.4.0-alpha02
2022년 11월 9일
androidx.compose.animation:animation:1.4.0-alpha02
, androidx.compose.animation:animation-core:1.4.0-alpha02
, androidx.compose.animation:animation-graphics:1.4.0-alpha02
가 출시되었습니다. 버전 1.4.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 도구에서 컴포저블의 내부 상태를 변경할 수 있도록
ToolingState
를 추가합니다. (Ie6614)
버전 1.4.0-alpha01
2022년 10월 24일
androidx.compose.animation:animation:1.4.0-alpha01
, androidx.compose.animation:animation-core:1.4.0-alpha01
, androidx.compose.animation:animation-graphics:1.4.0-alpha01
이 출시되었습니다. 버전 1.4.0-alpha01에 포함된 커밋을 확인하세요.
버그 수정
- AnimatedContent의 잘못된 중단 애니메이션을 수정했습니다. (b/238662479)
버전 1.3
버전 1.3.3
2023년 1월 11일
androidx.compose.animation:animation:1.3.3
, androidx.compose.animation:animation-core:1.3.3
, androidx.compose.animation:animation-graphics:1.3.3
이 출시되었습니다. 버전 1.3.3에 포함된 커밋을 확인하세요.
- 1.3.2 이후 변경사항이 없습니다.
버전 1.3.2
2022년 12월 7일
androidx.compose.animation:animation:1.3.2
, androidx.compose.animation:animation-core:1.3.2
, androidx.compose.animation:animation-graphics:1.3.2
가 출시되었습니다. 버전 1.3.2에 포함된 커밋을 확인하세요.
버그 수정
- androidx.compose.ui 1.3.2를 지원하도록 업데이트했습니다.
버전 1.3.1
2022년 11월 9일
androidx.compose.animation:animation:1.3.1
, androidx.compose.animation:animation-core:1.3.1
, androidx.compose.animation:animation-graphics:1.3.1
이 출시되었습니다. 버전 1.3.1에 포함된 커밋을 확인하세요.
버전 1.3.0
2022년 10월 24일
androidx.compose.animation:animation:1.3.0
, androidx.compose.animation:animation-core:1.3.0
, androidx.compose.animation:animation-graphics:1.3.0
이 출시되었습니다. 버전 1.3.0에 포함된 커밋을 확인하세요.
1.2.0 이후 중요 변경사항
- 새로운 이징 함수 세트가 안정화되었습니다.
버전 1.3.0-rc01
2022년 10월 5일
androidx.compose.animation:animation:1.3.0-rc01
, androidx.compose.animation:animation-core:1.3.0-rc01
, androidx.compose.animation:animation-graphics:1.3.0-rc01
이 출시되었습니다. 버전 1.3.0-rc01에 포함된 커밋을 확인하세요.
버전 1.3.0-beta03
2022년 9월 21일
androidx.compose.animation:animation:1.3.0-beta03
, androidx.compose.animation:animation-core:1.3.0-beta03
및 androidx.compose.animation:animation-graphics:1.3.0-beta03
이 출시되었습니다. 버전 1.3.0-beta03에 포함된 커밋을 확인하세요.
- 1.3.0-beta02 이후 변경사항 없음
버전 1.3.0-beta02
2022년 9월 7일
androidx.compose.animation:animation:1.3.0-beta02
, androidx.compose.animation:animation-core:1.3.0-beta02
, androidx.compose.animation:animation-graphics:1.3.0-beta02
가 출시되었습니다. 버전 1.3.0-beta02에 포함된 커밋을 확인하세요.
- Kotlin.experimental이 지원 중단되었으므로 컴파일러 옵션에서 삭제했습니다.
버전 1.3.0-beta01
2022년 8월 24일
androidx.compose.animation:animation:1.3.0-beta01
, androidx.compose.animation:animation-core:1.3.0-beta01
, androidx.compose.animation:animation-graphics:1.3.0-beta01
이 출시되었습니다. 버전 1.3.0-beta01에 포함된 커밋을 확인하세요.
버전 1.3.0-alpha03
2022년 8월 10일
androidx.compose.animation:animation:1.3.0-alpha03
, androidx.compose.animation:animation-core:1.3.0-alpha03
및 androidx.compose.animation:animation-graphics:1.3.0-alpha03
가 출시되었습니다. 버전 1.3.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
- 도구 라벨에 관한
Crossfade
,animateAsState
,Animatable
의 새 매개변수를 사용합니다. (Iac08a) - 특정 지속 시간이 아닌 분수에서 키프레임을 정의하는
atFraction
함수를 추가했습니다. (I20c76, b/232059455)
버전 1.3.0-alpha02
2022년 7월 27일
androidx.compose.animation:animation:1.3.0-alpha02
, androidx.compose.animation:animation-core:1.3.0-alpha02
, androidx.compose.animation:animation-graphics:1.3.0-alpha02
가 출시되었습니다. 버전 1.3.0-alpha02에 포함된 커밋을 확인하세요.
버전 1.3.0-alpha01
2022년 6월 29일
androidx.compose.animation:animation:1.3.0-alpha01
, androidx.compose.animation:animation-core:1.3.0-alpha01
, androidx.compose.animation:animation-graphics:1.3.0-alpha01
이 출시되었습니다. 버전 1.3.0-alpha01에 포함된 커밋을 확인하세요.
API 변경사항
- 실제 측정/레이아웃 전에 전방 탐색 패스를 지원하는 새
LookaheadLayout
을 추가했습니다. 이를 통해 레이아웃이 변경될 때 레이아웃을 사전에 계산할 수 있는 반면 사후 전방 탐색 측정/레이아웃을 허용하여 사전 계산된 크기/위치를 사용하면 타겟에 대한 크기와 위치에 애니메이션을 적용할 수 있습니다.SubcomposeLayouts
는 아직 지원되지 않지만, 향후 출시될 예정입니다. (I477f5)
버전 1.2
버전 1.2.1
2022년 8월 10일
androidx.compose.animation:animation:1.2.1
, androidx.compose.animation:animation-core:1.2.1
및 androidx.compose.animation:animation-graphics:1.2.1
이 출시되었습니다. 버전 1.2.1에 포함된 커밋을 확인하세요.
버전 1.2.0
2022년 7월 27일
androidx.compose.animation:animation:1.2.0
, androidx.compose.animation:animation-core:1.2.0
, androidx.compose.animation:animation-graphics:1.2.0
이 출시되었습니다. 버전 1.2.0에 포함된 커밋을 확인하세요.
1.1.0 이후 중요 변경사항
- 이제 Compose 애니메이션이 개발자 옵션에서 'Animator 길이 배율' 설정을 지원합니다.
- 다양한 실험용 이징 곡선이 새로 추가되었습니다.
- 이제
AnimatedImageVector
에서repeatCount
및repeatMode
를 지원합니다.
버전 1.2.0-rc03
2022년 6월 29일
androidx.compose.animation:animation:1.2.0-rc03
, androidx.compose.animation:animation-core:1.2.0-rc03
, androidx.compose.animation:animation-graphics:1.2.0-rc03
이 출시되었습니다. 버전 1.2.0-rc03에 포함된 커밋을 확인하세요.
- 1.2.0-rc02 이후 변경사항 없음
버전 1.2.0-rc02
2022년 6월 22일
androidx.compose.animation:animation:1.2.0-rc02
, androidx.compose.animation:animation-core:1.2.0-rc02
, androidx.compose.animation:animation-graphics:1.2.0-rc02
가 출시되었습니다. 버전 1.2.0-rc02에 포함된 커밋을 확인하세요.
버그 수정
- 이징 함수에서
ExperimentalEasingApi
주석을 삭제했습니다. (Ied441)
버전 1.2.0-rc01
2022년 6월 15일
androidx.compose.animation:animation:1.2.0-rc01
, androidx.compose.animation:animation-core:1.2.0-rc01
, androidx.compose.animation:animation-graphics:1.2.0-rc01
이 출시되었습니다. 버전 1.2.0-rc01에 포함된 커밋을 확인하세요.
API 변경사항
- Compose 라이브러리의 인터페이스가 이제 jdk8 기본 인터페이스 메서드를 사용하여 빌드됩니다. (I5bcf1)
버전 1.2.0-beta03
2022년 6월 1일
androidx.compose.animation:animation:1.2.0-beta03
, androidx.compose.animation:animation-core:1.2.0-beta03
, androidx.compose.animation:animation-graphics:1.2.0-beta03
이 출시되었습니다. 버전 1.2.0-beta03에 포함된 커밋을 확인하세요.
API 변경사항
- 애니메이션용 이징 곡선을 실험용으로 추가했습니다. (I64a38)
버전 1.2.0-beta02
2022년 5월 18일
androidx.compose.animation:animation:1.2.0-beta02
, androidx.compose.animation:animation-core:1.2.0-beta02
, androidx.compose.animation:animation-graphics:1.2.0-beta02
가 출시되었습니다. 버전 1.2.0-beta02에 포함된 커밋을 확인하세요.
버전 1.2.0-beta01
2022년 5월 11일
androidx.compose.animation:animation:1.2.0-beta01
, androidx.compose.animation:animation-core:1.2.0-beta01
, androidx.compose.animation:animation-graphics:1.2.0-beta01
이 출시되었습니다. 버전 1.2.0-beta01에 포함된 커밋을 확인하세요.
- 이 출시는 1.2의 첫 번째 베타 버전입니다. 마지막 알파 이후 변경사항이 없습니다.
버전 1.2.0-alpha08
2022년 4월 20일
androidx.compose.animation:animation:1.2.0-alpha08
, androidx.compose.animation:animation-core:1.2.0-alpha08
, androidx.compose.animation:animation-graphics:1.2.0-alpha08
이 출시되었습니다. 버전 1.2.0-alpha08에 포함된 커밋을 확인하세요.
버전 1.2.0-alpha07
2022년 4월 6일
androidx.compose.animation:animation:1.2.0-alpha07
, androidx.compose.animation:animation-core:1.2.0-alpha07
및 androidx.compose.animation:animation-graphics:1.2.0-alpha07
이 출시되었습니다. 버전 1.2.0-alpha07에 포함된 커밋을 확인하세요.
API 변경사항
- 이제
AnimatedImageVector
가repeatCount
및repeatMode
를 지원합니다. (Ia3e75, b/199304067)
버전 1.2.0-alpha06
2022년 3월 23일
androidx.compose.animation:animation:1.2.0-alpha06
, androidx.compose.animation:animation-core:1.2.0-alpha06
및 androidx.compose.animation:animation-graphics:1.2.0-alpha06
이 출시되었습니다. 버전 1.2.0-alpha06에 포함된 커밋을 확인하세요.
API 변경사항
- 현재 레이아웃 방향이 RTL인 경우
VectorPainter
의 콘텐츠를 뒤집을 수 있는 자동 미러링을 지원하도록 벡터 드로어블 파싱을 업데이트했습니다. (I79cd9, b/185760237)
버그 수정
@UiComposable
대신 적절하고 구성 가능한 주석@VectorComposable
을 사용하도록 벡터 그래픽 API를 업데이트했습니다. (I942bc)
버전 1.2.0-alpha05
2022년 3월 9일
androidx.compose.animation:animation:1.2.0-alpha05
, androidx.compose.animation:animation-core:1.2.0-alpha05
및 androidx.compose.animation:animation-graphics:1.2.0-alpha05
가 출시되었습니다. 버전 1.2.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
- 반가운 소식을 전해드립니다. 이제 Compose 애니메이션이 개발자 옵션의 'Animator 길이 배율' 설정을 지원합니다. (I5a4fc, b/161675988)
버전 1.2.0-alpha04
2022년 2월 23일
androidx.compose.animation:animation:1.2.0-alpha04
, androidx.compose.animation:animation-core:1.2.0-alpha04
및 androidx.compose.animation:animation-graphics:1.2.0-alpha04
가 출시되었습니다. 버전 1.2.0-alpha04에 포함된 커밋을 확인하세요.
버전 1.2.0-alpha03
2022년 2월 9일
androidx.compose.animation:animation:1.2.0-alpha03
, androidx.compose.animation:animation-core:1.2.0-alpha03
및 androidx.compose.animation:animation-graphics:1.2.0-alpha03
이 출시되었습니다. 버전 1.2.0-alpha03에 포함된 커밋을 확인하세요.
버전 1.2.0-alpha02
2022년 1월 26일
androidx.compose.animation:animation:1.2.0-alpha02
, androidx.compose.animation:animation-core:1.2.0-alpha02
및 androidx.compose.animation:animation-graphics:1.2.0-alpha02
가 출시되었습니다. 버전 1.2.0-alpha02에 포함된 커밋을 확인하세요.
버전 1.2.0-alpha01
2022년 1월 12일
androidx.compose.animation:animation:1.2.0-alpha01
, androidx.compose.animation:animation-core:1.2.0-alpha01
및 androidx.compose.animation:animation-graphics:1.2.0-alpha01
이 출시되었습니다. 버전 1.2.0-alpha01에 포함된 커밋을 확인하세요.
API 변경사항
animatedVectorResource
대신AnimatedImageVector.animatedVectorResource
를 사용하여<animated-vector>
리소스 파일을 로드합니다.AnimatedImageVector#painterFor
대신rememberAnimatedVectorResource
를 사용하여AnimatedImageVector
를 렌더링합니다. (I9c300)
버그 수정
- Animatable 및 AnimationResult에 toString 메서드를 추가합니다. (Icd3a6)
종속 항목 업데이트
- 이제 Kotlin
1.6.10
에 종속됩니다.
버전 1.1
버전 1.1.1
2022년 2월 23일
androidx.compose.animation:animation:1.1.1
, androidx.compose.animation:animation-core:1.1.1
및 androidx.compose.animation:animation-graphics:1.1.1
이 출시되었습니다. 버전 1.1.1에 포함된 커밋을 확인하세요.
버그 수정
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
에서 발생하는NullPointerException
을 수정합니다. (aosp/1947059, b/206677462)- Android에서 클립보드를 읽는 동안 클립보드 콘텐츠로 인해 발생하는 비정상 종료 문제를 해결했습니다. (I06020, b/197769306)
LazyVerticalGrid
의 RTL을 수정했습니다. (aosp/1931080, b/207510535)
버전 1.1.0
2022년 2월 9일
androidx.compose.animation:animation:1.1.0
, androidx.compose.animation:animation-core:1.1.0
및 androidx.compose.animation:animation-graphics:1.1.0
이 출시되었습니다. 버전 1.1.0에 포함된 커밋을 확인하세요.
1.0.0 이후 중요 변경사항
- Android 12 오버스크롤 효과의 안정화 버전 지원
- 터치 영역 크기 조정 개선
- Compose 1.0의 경우 Material 구성요소는 Material 접근성 가이드라인 터치 영역 크기에 맞게 레이아웃 공간을 확장합니다. 예를 들어 Button의 크기를 더 작게 설정하더라도 버튼 터치 영역은 최소 48x48dp로 확장됩니다. 이렇게 하면 Compose Material이 Material Design 구성요소의 동작과 동일하게 정렬되어 뷰와 Compose를 함께 사용할 때 일관되게 동작합니다. 또한 이러한 변경을 통해 Compose Material 구성요소를 사용하여 UI를 만들 때 터치 영역 접근성에 관한 최소 요구사항이 충족됩니다.
- Navigation Rail의 안정화 버전 지원
- 다수의 이전 실험용 API의 안정화 버전 전환
- 최신 버전의 Kotlin 지원
버전 1.1.0-rc03
2022년 1월 26일
androidx.compose.animation:animation:1.1.0-rc03
, androidx.compose.animation:animation-core:1.1.0-rc03
및 androidx.compose.animation:animation-graphics:1.1.0-rc03
이 출시되었습니다. 버전 1.1.0-rc03에 포함된 커밋을 확인하세요.
버그 수정
- Compose Material 1.1.0-rc03을 지원하도록 업데이트했습니다.
버전 1.1.0-rc01
2021년 12월 15일
androidx.compose.animation:animation:1.1.0-rc01
및 androidx.compose.animation:animation-core:1.1.0-rc01
이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.
API 변경사항
animatedVectorResource
대신AnimatedImageVector.animatedVectorResource
를 사용하여<animated-vector>
리소스 파일을 로드합니다.AnimatedImageVector#painterFor
대신rememberAnimatedVectorResource
를 사용하여AnimatedImageVector
를 렌더링합니다. (I9c300)
버전 1.1.0-beta04
2021년 12월 1일
androidx.compose.animation:animation:1.1.0-beta04
, androidx.compose.animation:animation-core:1.1.0-beta04
, androidx.compose.animation:animation-graphics:1.1.0-beta04
가 출시되었습니다. 버전 1.1.0-beta04에 포함된 커밋을 확인하세요.
새로운 기능
- Kotlin
1.6.0
과 호환되도록 업데이트되었습니다.
버전 1.1.0-beta03
2021년 11월 17일
androidx.compose.animation:animation:1.1.0-beta03
, androidx.compose.animation:animation-core:1.1.0-beta03
및 androidx.compose.animation:animation-graphics:1.1.0-beta03
이 출시되었습니다. 버전 1.1.0-beta03에 포함된 커밋을 확인하세요.
API 변경사항
- 배치 변경사항을 준수할 수 있도록 새로운 수정자 Modifier.onPlaced를 추가했습니다. 적용된 배치 변경사항에 따라 하위 수정자의 오프셋이 추가로 변경될 수 있습니다. (I558fd)
Crossfade의 contentKey를 새롭게 지원합니다. ContentKey는 애니메이션 시스템의 동등성 검사에 사용됩니다. 따라서 다양한 상태에 적절한 contentKey를 지정하여 상태에 맞는 맞춤 디핑 기능을 구현할 수 있습니다.
ContentKey는 콘텐츠 저장 및 복원을 위한 키로도 사용됩니다. (I2e055, b/197907070)
버전 1.1.0-beta02
2021년 11월 3일
androidx.compose.animation:animation:1.1.0-beta02
, androidx.compose.animation:animation-core:1.1.0-beta02
및 androidx.compose.animation:animation-graphics:1.1.0-beta02
가 출시되었습니다. 버전 1.1.0-beta02에 포함된 커밋을 확인하세요.
버그 수정
- 도구 지원을 위한 새로운 Animation API가 있습니다. 특히, 이 API를 통해 전환에서 애니메이션과 구성을 검사하는 도구를 사용할 수 있습니다. (I4116e)
버전 1.1.0-beta01
2021년 10월 27일
androidx.compose.animation:animation:1.1.0-beta01
, androidx.compose.animation:animation-core:1.1.0-beta01
및 androidx.compose.animation:animation-graphics:1.1.0-beta01
이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
- 도구 지원을 위한 새로운 Animation API가 있습니다. 특히, 이 API를 통해 전환에서 애니메이션과 구성을 검사하는 도구를 사용할 수 있습니다. (I4116e)
버전 1.1.0-alpha06
2021년 10월 13일
androidx.compose.animation:animation:1.1.0-alpha06
, androidx.compose.animation:animation-core:1.1.0-alpha06
및 androidx.compose.animation:animation-graphics:1.1.0-alpha06
이 출시되었습니다. 버전 1.1.0-alpha06에 포함된 커밋을 확인하세요.
버전 1.1.0-alpha05
2021년 9월 29일
androidx.compose.animation:animation:1.1.0-alpha05
, androidx.compose.animation:animation-core:1.1.0-alpha05
, androidx.compose.animation:animation-graphics:1.1.0-alpha05
가 출시되었습니다. 버전 1.1.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
EnterTransition
,ExitTransition
, 일부AnimatedVisibility
API가 안정화되었습니다.MutableTransitionState.isIdle
또한 더 이상 실험용이 아닙니다. (I5072d)브레이킹 체인지: Enter/ExitTransition 팩토리의 람다를 매개변수 목록의 마지막 위치로 이동했습니다. (I5072d)
버전 1.1.0-alpha04
2021년 9월 15일
androidx.compose.animation:animation:1.1.0-alpha04
, androidx.compose.animation:animation-core:1.1.0-alpha04
및 androidx.compose.animation:animation-graphics:1.1.0-alpha04
가 출시되었습니다. 버전 1.1.0-alpha04에 포함된 커밋을 확인하세요.
버전 1.1.0-alpha03
2021년 9월 1일
androidx.compose.animation:animation:1.1.0-alpha03
, androidx.compose.animation:animation-core:1.1.0-alpha03
및 androidx.compose.animation:animation-graphics:1.1.0-alpha03
이 출시되었습니다. 버전 1.1.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- Kotlin
1.5.30
에 종속되도록 Compose1.1.0-alpha03
을 업데이트했습니다. (I74545)
버전 1.1.0-alpha02
2021년 8월 18일
androidx.compose.animation:animation:1.1.0-alpha02
, androidx.compose.animation:animation-core:1.1.0-alpha02
및 androidx.compose.animation:animation-graphics:1.1.0-alpha02
가 출시되었습니다. 버전 1.1.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 이제 StartOffset이 repeatable 및 infiniteRepeatable에서 지원됩니다. 이는 애니메이션이 시작되기 전에 시작 시간을 지연시키거나 애니메이션을 빨리 감기 위한 방법입니다. 이 시작 오프셋은 반복되지 않습니다. (Ic679f, b/195079908)
- 규모에 맞는 새로운 들어가기/나가기 전환입니다. 다른 유형의 Enter/ExitTransitions와 함께 사용할 수 있습니다. (I372da, b/191325593)
버전 1.1.0-alpha01
2021년 8월 4일
androidx.compose.animation:animation:1.1.0-alpha01
, androidx.compose.animation:animation-core:1.1.0-alpha01
및 androidx.compose.animation:animation-graphics:1.1.0-alpha01
이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.
API 변경사항
AnimatedImageVector
및 관련 API가 이제 새androidx.compose.animation:animation-graphics
모듈에 있습니다. (I60873)
버그 수정
InfiniteAnimationPolicy
를 :compose:ui로 이동했습니다. (I5eb09, b/160602714)
버전 1.0
버전 1.0.5
2021년 11월 3일
androidx.compose.animation:animation:1.0.5
및 androidx.compose.animation:animation-core:1.0.5
가 출시되었습니다. 버전 1.0.5에 포함된 커밋을 확인하세요.
버그 수정
- derivedStateOf 인스턴스를 추적할 때 발생하는 비정상 종료 문제를 수정했습니다. (aosp/1792247)
버전 1.0.4
2021년 10월 13일
androidx.compose.animation:animation:1.0.4
및 androidx.compose.animation:animation-core:1.0.4
가 출시되었습니다. 버전 1.0.4에 포함된 커밋을 확인하세요.
종속 항목 업데이트
- Kotlin
1.5.31
에 종속되도록 업데이트했습니다.
버전 1.0.3
2021년 9월 29일
androidx.compose.animation:animation:1.0.3
및 androidx.compose.animation:animation-core:1.0.3
이 출시되었습니다. 버전 1.0.3에 포함된 커밋을 확인하세요.
종속 항목 업데이트
- Kotlin
1.5.30
에 종속되도록 업데이트했습니다.
버전 1.0.2
2021년 9월 1일
androidx.compose.animation:animation:1.0.2
및 androidx.compose.animation:animation-core:1.0.2
가 출시되었습니다. 버전 1.0.2에 포함된 커밋을 확인하세요.
Compose 1.0.2
출시를 지원하도록 업데이트되었습니다. Compose 1.0.2
는 여전히 Kotlin 1.5.21
과 호환됩니다.
버전 1.0.1
2021년 8월 4일
androidx.compose.animation:animation:1.0.1
및 androidx.compose.animation:animation-core:1.0.1
이 출시되었습니다. 버전 1.0.1에 포함된 커밋을 확인하세요.
종속 항목 업데이트
- Kotlin
1.5.21
에 종속되도록 업데이트했습니다.
버전 1.0.0
2021년 7월 28일
androidx.compose.animation:animation:1.0.0
및 androidx.compose.animation:animation-core:1.0.0
이 출시되었습니다. 버전 1.0.0에 포함된 커밋을 확인하세요.
1.0.0의 주요 기능
Compose의 첫 번째 안정화 버전입니다. 자세한 내용은 공식 Compose 버전 블로그를 참고하세요.
알려진 문제
Android 스튜디오 Bumblebee Canary 4 또는 AGP
7.1.0-alpha04
/7.1.0-alpha05
를 사용하는 경우 다음과 같은 비정상 종료가 발생할 수 있습니다.java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
이 문제를 해결하려면
build.gradle
파일에서 minSdkVersion을 24 이상으로 일시적으로 늘리세요. 이 문제는 Android 스튜디오 Bumblebee 향후 버전 및 AGP7.1
버전에서 해결될 예정입니다. (b/194289155)
버전 1.0.0-rc02
2021년 7월 14일
androidx.compose.animation:animation:1.0.0-rc02
및 androidx.compose.animation:animation-core:1.0.0-rc02
가 출시되었습니다. 버전 1.0.0-rc02에 포함된 커밋을 확인하세요.
버전 1.0.0-rc01
2021년 7월 1일
androidx.compose.animation:animation:1.0.0-rc01
및 androidx.compose.animation:animation-core:1.0.0-rc01
이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.
버그 수정
InfiniteAnimationPolicy
를androidx.compose.ui:ui
로 이동했습니다. (I5eb09, b/160602714)
버전 1.0.0-beta09
2021년 6월 16일
androidx.compose.animation:animation:1.0.0-beta09
및 androidx.compose.animation:animation-core:1.0.0-beta09
가 출시되었습니다. 버전 1.0.0-beta09에 포함된 커밋을 확인하세요.
API 변경사항
- 새로운
AnimatedContent
컴포저블이 추가됩니다. 새 타겟 콘텐츠가 들어오고 초기 콘텐츠가 나갈 때 맞춤설정 가능한ContentTransform
을 사용하여 콘텐츠 변경을 관리합니다. 들어가기 전환과 나가기 전환을 다양하게 조합하여 디자인과 분위기를 맞춤설정할 수 있습니다. 콘텐츠 전환의 일부로AnimatedContent
는 자신의 크기를 수신되는 콘텐츠와 일치하도록 자동으로 애니메이션합니다. (I2c3df) ManualFrameClock
을 삭제했습니다. 애니메이션을 제어해야 한다면composeTestRule.mainClock
을 대신 사용합니다. (I3c3e8, b/189951065)
추가된 프로필 규칙
이번 출시에서는 다음 Compose 모듈에 프로필 규칙이 추가됩니다. (I14ed6)
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
프로필 규칙이란 무엇인가요?
라이브러리의 프로필 규칙은
src/main
또는 이에 상응하는 디렉터리에 있는 텍스트 파일baseline-prof.txt
에 지정됩니다. 이 파일에서는 줄별로 규칙을 지정합니다. 이때 규칙은 라이브러리의 메서드 또는 클래스와의 일치를 확인하는 패턴을 말합니다. 규칙의 문법은adb shell profman --dump-classes-and-methods ...
를 사용할 때 사용되며 사람이 읽을 수 있는 ART 프로필 형식의 상위 집합입니다. 규칙의 형식은 메서드 또는 클래스를 타겟팅하는 두 가지 형식 중 하나입니다.메서드 규칙의 패턴은 다음과 같습니다.
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
클래스 규칙의 패턴은 다음과 같습니다.
<CLASS_DESCRIPTOR>
여기에서
<FLAGS>
는 이 메서드의 플래그를 'Hot', 'Startup' 또는 'Post Startup'으로 지정해야 하는지를 나타내는 문자H
,S
,P
중 하나 이상으로 구성됩니다.<CLASS_DESCRIPTOR>
는 타겟팅된 메서드가 속한 클래스의 설명자입니다. 예를 들어androidx.compose.runtime.SlotTable
클래스는Landroidx/compose/runtime/SlotTable;
의 설명자를 포함합니다.<METHOD_SIGNATURE>
는 메서드의 서명이며 이름, 매개변수 유형, 메서드의 반환 유형을 포함합니다. 예를 들어LayoutNode
의fun isPlaced(): Boolean
메서드는 서명이isPlaced()Z
입니다.이러한 패턴에는 단일 규칙이 여러 메서드나 클래스를 포괄하도록 와일드 카드(
**
,*
,?
)가 포함될 수 있습니다.
규칙의 기능은 무엇인가요?
H
플래그는 'Hot' 메서드임을 나타내며, 이러한 메서드는 미리 컴파일해야 합니다.S
플래그는 시작 시 호출되는 메서드임을 나타내며, 컴파일 비용을 발생시키지 않고 시작 시 메서드를 해석하지 않으려면 이러한 메서드를 미리 컴파일해야 합니다.P
플래그는 시작 후에 호출되는 메서드임을 나타냅니다.이 파일에 있는 클래스는 시작 중에 사용된다는 사실을 나타내며, 클래스 로드 비용을 발생시키지 않으려면 클래스를 힙에 미리 할당해야 합니다.
어떤 방식으로 작동하나요?
- 라이브러리는 이러한 규칙을 정의할 수 있고 규칙은 AAR 아티팩트에 패키징됩니다. 그런 다음, 이러한 아티팩트를 포함하는 앱을 빌드하면 규칙이 함께 병합되어 앱과 관련된 압축 바이너리 ART 프로필을 빌드하는 데 사용됩니다. 그러면 ART에서 앱을 기기에 설치할 때 예정보다 앞서 애플리케이션의 특정 하위 집합을 컴파일하여 애플리케이션의 성능을 향상하도록(특히, 첫 번째 실행 성능) 이 프로필을 활용할 수 있습니다. 디버그 가능한 애플리케이션에는 영향을 주지 않습니다.
버전 1.0.0-beta08
2021년 6월 2일
androidx.compose.animation:animation:1.0.0-beta08
및 androidx.compose.animation:animation-core:1.0.0-beta08
이 출시되었습니다. 버전 1.0.0-beta08에 포함된 커밋을 확인하세요.
버그 수정
- 이제
detectDragGesures
,detectVerticalGestures
,detectHorizontalGestures
는 자동으로 위치 변경사항을 사용하므로 onDrag 콜백에서 change.consumePositionChange를 호출하지 않아도 됩니다. (I42fc4, b/185096350, b/187320697) - 모든 수정자를 적용한 후 레이아웃 좌표가 아닌 수정자 체인의 이 수정자 좌표를 보고하도록
Modifier.onGloballyPositioned()
를 변경했습니다. 즉, 이제 수정자의 순서가 보고되는 좌표에 영향을 미칩니다. (Ieb67d, b/177926591)
버전 1.0.0-beta07
2021년 5월 18일
androidx.compose.animation:animation:1.0.0-beta07
및 androidx.compose.animation:animation-core:1.0.0-beta07
이 출시되었습니다. 버전 1.0.0-beta07에 포함된 커밋을 확인하세요.
API 변경사항
MutableTransitionState
에 지정되는 가시성을 지원하는 새로운AnimatedVisibility
API: 이 API를 사용하면currentState
및isIdle
를 통해AnimatedVisibility
외부의 애니메이션 상태를 관찰할 수도 있습니다.- Transition에서의 새로운 하위 요소 전환 지원
- AnimationScope.transition을 사용하여 AnimatedVisibility에서 맞춤 종료/시작 전환 애니메이션 지원
- AnimatedVisibility의 모든 하위 요소에 액세스 가능한 새로운 animateEnterExit 수정자
initiallyVisible
매개변수를 취하는 AnimatedVisibility API의 지원이 중단됨(I702f3)
버전 1.0.0-beta06
2021년 5월 5일
androidx.compose.animation:animation:1.0.0-beta06
및 androidx.compose.animation:animation-core:1.0.0-beta06
이 출시되었습니다. 버전 1.0.0-beta06에 포함된 커밋을 확인하세요.
버전 1.0.0-beta05
2021년 4월 21일
androidx.compose.animation:animation:1.0.0-beta05
및 androidx.compose.animation:animation-core:1.0.0-beta05
가 출시되었습니다. 버전 1.0.0-beta05에 포함된 커밋을 확인하세요.
버그 수정
- ui-test-manifest 및 ui-tooling-data의 AndroidManifest 파일이 이제 Android 12와 호환됩니다. (I6f9de, b/184718994)
버전 1.0.0-beta04
2021년 4월 7일
androidx.compose.animation:animation:1.0.0-beta04
및 androidx.compose.animation:animation-core:1.0.0-beta04
가 출시되었습니다. 버전 1.0.0-beta04에 포함된 커밋을 확인하세요.
API 변경사항
RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
의 공개 인스턴스를 삭제했습니다. (I4e83e, b/181869067)
버전 1.0.0-beta03
2021년 3월 24일
androidx.compose.animation:animation:1.0.0-beta03
및 androidx.compose.animation:animation-core:1.0.0-beta03
이 출시되었습니다. 버전 1.0.0-beta03에 포함된 커밋을 확인하세요.
버전 1.0.0-beta02
2021년 3월 10일
androidx.compose.animation:animation:1.0.0-beta02
및 androidx.compose.animation:animation-core:1.0.0-beta02
가 출시되었습니다. 버전 1.0.0-beta02에 포함된 커밋을 확인하세요.
버그 수정
- 실험용 API의 공개 사용에 제한을 적용합니다. (I6aa29, b/174531520)
버전 1.0.0-beta01
2021년 2월 24일
androidx.compose.animation:animation:1.0.0-beta01
및 androidx.compose.animation:animation-core:1.0.0-beta01
가 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
Compose 1.0.0 베타의 첫 번째 버전입니다.
API 변경사항
InteractionState
를[Mutable]InteractionSource
로 대체했습니다.- 인터페이스는 상호작용 이벤트를 방출/수집해야 합니다.
Button
및Modifier.clickable()
등의 구성요소에interactionState = remember { InteractionState() }
를 전달하는 대신interactionSource = remember { MutableInteractionSource() }
를 사용합니다.Interaction.Pressed in interactionState
대신 InteractionSource에서 InteractionSource.collectIsPressedAsState()와 같은 확장 함수를 사용해야 합니다.- 복잡한 사용 사례의 경우 InteractionSource.interactions를 사용하여 상호작용 스트림을 관찰할 수 있습니다. 자세한 내용은 InteractionSource 도움말과 샘플을 참고하세요.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- smoothScrollBy 및 scrollBy 메서드의 패키지를
androidx.compose.foundation.gestures.*
로 변경했습니다. (I3f7c1, b/175294473) - 크기 수정자의 이름이 변경되었습니다. Modifier.width/height/size의 이름이 requiredWidth/requiredHeight/requiredSize로, Modifier.preferredWidth/preferredHeight/preferredSize의 이름이 width/height/size로 변경되었습니다. (I5b414)
- 방향을 기본 패키지로 이동했습니다. VelocirtTracker가 ui.gesture에서 ui.input.pointer로 이동했습니다. (Iff4a8, b/175294473)
- AnimationClockObservable 및 서브클래스를 삭제했습니다. AnimatedFloat를 삭제했습니다. (Icde52, b/177457083)
- 이제 Modifier.draggable에서 간단한 람다 대신 DraggableState를 허용합니다.
rememberDraggableState { delta -> }
를 통해 상태를 만들어 이전과 같은 동작을 가져올 수 있습니다. (Ica70f, b/175294473) - animate, animatedValue, AnimatedValue API를 삭제했습니다. (If27bc, b/177457083)
- AnimationEndReason.Interrupted를 삭제했습니다. 애니메이션이 중단되면 CancellationException이 발생합니다. (I2cbbc, b/179695417)
- TargetAnimation API를 삭제했습니다. (If47d1, b/177457083)
버전 1.0.0-alpha12
2021년 2월 10일
androidx.compose.animation:animation:1.0.0-alpha12
및 androidx.compose.animation:animation-core:1.0.0-alpha12
가 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.
API 변경사항
- 이제
Modifier.pointerInput
에 새 종속 항목으로 인해 포인터 입력 감지 코루틴이 다시 시작되어야 할 때를 나타내는 기억 키가 필요합니다. (I849cd) - Bounds 이름을 DpRect로 바꾸었습니다. (I4b32a)
- AnimationSpec의 매개변수 이름을 애니메이션 시스템 전체에서 animationSpec으로 통합했습니다. 또한 FiniteAnimationSpec을 허용하도록 Enter/ExitTransition을 제한합니다. (Ie47c5, b/177457083)
- Animatable.snapTo 및 Animatable.stop은 이제 정지된 함수입니다. (If4288)
- 이전의
state { 0 }
컴포저블을 삭제하고remember { mutableStateOf(0) }
과 같은 사용을 촉진하는 것과 마찬가지로savedInstanceState { 0 }
컴포저블을 삭제할 예정입니다. 대신rememberSaveable { mutableStateOf(0) }
을 사용해야 하며 이 방식은 MutableState 내에서 사용한 유형을 Bundle에 저장할 수 있다면 자동으로 저장하고 복원합니다. 이전에 맞춤 Saver 객체를 전달했다면 이제stateSaver
매개변수가 있는 rememberSaveable의 새 오버로드를 사용해야 합니다. 사용법은 다음과 같습니다.val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - 애니메이션 시스템의 나머지 부분과의 일관성을 높이기 위해 Crossfade의 메서드 서명을 업데이트했습니다. (Ib05ed, b/177457083)
- rememberSavedInstanceState()를 rememberSaveable()로 이름을 바꾸고 androidx.compose.runtime.saveable 패키지로 이동했습니다. (I1366e, b/177338004)
- RestorableStateHolder를 SaveableStateHolder로 이름을 바꾸고 androidx.compose.runtime.saveable 패키지로 이동했습니다. Inner 메서드 RerestableStateProvider를 SaveableStateProvider로 이름을 바꾸었습니다. 일반 유형이 삭제되었으므로 Any를 키로 전달할 수 있습니다. 실험용 주석은 더 이상 필요하지 않습니다. (I0902e, b/174598702)
- 애니메이션 시스템의 나머지 부분과 일관되도록 Modifier.animateContentSize API를 업데이트했습니다. (I0bf75, b/177457083)
- 이제 AnimatedValue/Float가 지원 중단되었습니다. 대신 Animatable을 사용하세요. (I71345, b/177457083)
- tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter 및 pressIndicaitonGestureFilter가 지원 중단되었습니다. 대신 detectTapGestures 함수와 함께 Modifier.clickable 또는 Modifier.pointerInput을 사용합니다. (I6baf9, b/175294473)
- 무한 애니메이션에 적용될
InfiniteAnimationPolicy
코루틴 컨텍스트 요소를 도입했습니다. 기본적으로ComposeTestRule
을 사용하여 테스트를 실행하는 경우를 제외하고 설치되는 정책은 없습니다. (I50ec4, b/151940543) - 거의 사용하지 않는 여러 클래스의 디스트럭처링 메서드와 copy() 메서드를 삭제했습니다. (I26702, b/178659281)
- 애니메이션 재생 시간은 이제 나노초 단위로 통합되었습니다. (If776a)
- compose:runtime-dispatch 아티팩트는 이제 지원 중단됩니다. 이제 MonotonicFrameClock은 compose:runtime에서, AndroidUiDispatcher는 compose:ui에서 찾을 수 있습니다. (Ib5c36)
- 무한 애니메이션인지 여부를 알려주는
Animation.isInfinite
및VectorizedAnimationSpec.isInfinite
를 추가했습니다. 애니메이션 구현 시 이러한 애니메이션을 특별히 처리하도록 사용할 수 있습니다. 예를 들어 특별한 '남은 시간' 메시지를 표시할 수도 있고, 테스트 중에 유휴 상태를 무기한으로 대기하지 않도록 애니메이션을 취소할 수도 있습니다. (Iebb05, b/151940543) - 애니메이션 시간 유형으로 Uptime 대신 Long을 사용합니다. (Ie3aa7, b/177420019)
버전 1.0.0-alpha11
2021년 1월 28일
androidx.compose.animation:animation:1.0.0-alpha11
및 androidx.compose.animation:animation-core:1.0.0-alpha11
이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.
API 변경사항
- TransitionDefinition 기반 Transition을 지원 중단했습니다. (I0ac57)
- Transition 및 하위 애니메이션이 도구에 표시되도록 라벨 필드를 추가합니다. (I619fb)
- animateAsState가 이제 animateFooAsState이고 여기서 Foo는 애니메이션되는 변수의 유형(예: Float, Dp, Offset 등)입니다. (Ie7e25)
- 새 InfiniteTransition이 여러 하위 애니메이션을 실행합니다. (I1da81)
- Material 스테이트풀(Stateful) 매개변수 인터페이스를
State<T>
를 반환하는 @Composable 함수를 포함하도록 변경합니다. Animatable을 State로 더 쉽게 변환하도록 Animatable.asState()를 추가합니다. 또한 animateElevation을 Animatable의 일시중지 확장이 되도록 변경합니다. (If613c)
버그 수정
- onCommit, onDispose, onActive를 지원 중단하고 SideEffect 및 DisposableEffect API로 대체했습니다. (If760e)
- 이제 updateTransition의 초기 State가 지원됩니다. (Ifd51d)
- 콘텐츠 설명 매개변수를 이미지 및 아이콘에 추가했습니다. 접근성 서비스에 설명을 제공하는 데 사용됩니다. (I2ac4c)
- invalidate 및 compositionReference()를 지원 중단하고 currentRecomposeScope 및 rememberCompositionReference로 각각 대체했습니다. (I583a8)
- Duration과 Uptime이 Long 밀리초로 대체되며 이 단계에서는 이러한 클래스의 포인터 입력 종속 항목을 삭제합니다. (Ia33b2, b/175142755, b/177420019)
- 이제 컴포지션 외부에서 clickable, toggleable, selectable을 만들 수 있습니다. (I0a130, b/172938345, b/175294473)
- 이징을 기능 인터페이스로 변경했습니다. (Ib14e5)
- LazyColumn/LazyRow/LazyVerticalGrid 범위의 새
items(count: Int)
팩토리 메서드입니다.items(items: List)
및itemsIndexed(items: List)
는 이제 확장 함수이므로 사용할 때 수동으로 가져와야 합니다. 배열의 새 확장 오버로드입니다. items(items: Array) 및 itemsIndexed(Array) (I803fc, b/175562574) - 테스트에서 TestCoroutineDispatcher를 활용합니다. (I532b6)
- PointerInputData의 모든 필드를 제공하도록 PointerInputData를 삭제하고 PointerInputChange를 수정했습니다. PointerInputEvent 및 PointerInputEventData가 공개 API에서 사용되지 않으므로 이를 내부 클래스로 변경했습니다. (Ifff97, b/175142755)
버전 1.0.0-alpha10
2021년 1월 13일
androidx.compose.animation:animation:1.0.0-alpha10
및 androidx.compose.animation:animation-core:1.0.0-alpha10
이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
API 변경사항
- 구성요소 부분과 수학 연산을 포함하도록 속도를 수정했습니다. (Ib0447)
- 유사한 실험용 API 주석과 일치하도록
@ExperimentalTesting
에서@ExperimentalTestApi
로 이름을 바꿨습니다. (Ia4502, b/171464963) - Position의 이름을 DpOffset으로 바꿨고 getDistance()를 삭제했습니다. (Ib2dfd)
- Any.identityHashCode() 공개 API를 삭제했습니다. (I025d7)
버그 수정
- 새로운 코루틴 기반 API인
Animatable
은 애니메이션 간의 상호 배타성을 보장합니다. 새로운 DecayAnimationSpec이 다차원 감쇠 애니메이션을 지원합니다. (I820f2, b/168014930) animate()
가 이제T
대신State<T>
를 반환하는animateAsState()
로 대체되었습니다. 상태 값이 판독되는 지점까지 무효화 범위를 좁힐 수 있으므로 성능이 향상됩니다. (Ib179e)
버전 1.0.0-alpha09
2020년 12월 16일
androidx.compose.animation:animation:1.0.0-alpha09
및 androidx.compose.animation:animation-core:1.0.0-alpha09
가 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
API 변경사항
- Dp.VectorConverter, Position.VectorConverter 등을 animation-core로 이동하고 이전 VectorConveters를 지원 중단했습니다. (If0c4b)
- 사용 편의성을 개선하고 동적으로 추가된 애니메이션과 동적으로 계산된 애니메이션 타겟을 지원하는 완전히 새로운 Transition API 세트를 도입했습니다. 이 API는 TransitionDefinition 기반 API와 쉽게 구분되도록 실험용으로 표시됩니다. (Ia7fe3)
버그 수정
- 오프셋 수정자의 람다가 이제 Float 대신 IntOffset을 반환합니다. (Ic9ee5, b/174137212, b/174146755)
- LazyColumnFor, LazyRowFor, LazyColumnForIndexed, LazyRowForIndexed를 지원 중단했습니다. 대신 LazyColumn과 LazyRow를 사용하세요. (I5b48c)
- 정지 포인터 입력 API의 경우 HandlePointerInputScope의 이름을 AwaitPointerEventScope로 바꾸고 handlePointerInput()의 이름을 awaitPointerEventScope()로 바꿨습니다. (Idf0a1, b/175142755)
- InfiniteRepeatableSpec을 생성하기 위한 새로운 infiniteRepeatable 함수를 도입했습니다. (I668e5)
- ExperimentalPointerInput 주석을 삭제했습니다. (Ia7a24)
버전 1.0.0-alpha08
2020년 12월 2일
androidx.compose.animation:animation:1.0.0-alpha08
및 androidx.compose.animation:animation-core:1.0.0-alpha08
이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
API 변경사항
- Compose 가이드라인과의 일관성을 확인하기 위해 컴포저블 람다 매개변수 이름 지정 및 위치에 관한 린트 검사를 추가했습니다.
또한 린트 검사와 지침에 따라 후행 람다의 이름으로
children
을 사용하는 일부 API를content
로 이전했습니다. (Iec48e) - 이전에 지원 중단된 API를 삭제했습니다.
Modifier.onPositioned
를 삭제했습니다.Modifier.onGloballyPositioned
를 사용하세요.Modifier.onDraw
를 삭제했습니다.Modifier.onDrawBehind
를 사용하세요.Modifier.plus
를 삭제했습니다.Modifier.then
를 사용하세요.Color.Unset
을 삭제했습니다.Color.Unspecified
를 사용하세요.PxBounds
클래스를 삭제했습니다. 대신Rect
를 사용하세요.- (Ie9d02, b/172562222)
- TestAnimationClock의 기반을 MonotonicFrameClock으로 설정하도록 허용하는 옵션을 일시적으로 추가했습니다. (I1403b, b/173402197)
버그 수정
- Modifier.drawLayer의 이름을 Modifier.graphicsLayer로 바꿨습니다. API 위원회 의견에 따라 관련 클래스도 GraphicsLayer로 업데이트했습니다. (I0bd29, b/173834241)
- drawLayer의 편의성을 위해 Modifier.scale/rotate API를 추가했습니다.
- Modifier.drawOpacity를 Modifier.alpha로 이름을 바꿨습니다.
- Modifier.drawShadow를 Modifier.shadow로 이름을 바꿨습니다. (I264ca, b/173208140)
- PointerInputData의 가동시간 및 위치 필드가 null을 허용하지 않게 했습니다. (Id468a)
- offsetPx 수정자의 이름을 offset으로 바꿨습니다. offsetPx 수정자는 이제 State 대신 람다 매개변수를 사용합니다. (Ic3021, b/173594846)
- 코루틴에서 애니메이션을 실행하기 위한 새로운 API를 도입했습니다. (Ied662)
- 접미사로
Ambient
라는 이름을 사용하는 Ambient가 지원 중단되고 다른 Ambient 및 Compose API 가이드라인에 따라 Ambient를 접두사로 사용하는 새로운 속성으로 대체됩니다. (I33440) - 테스트의 시간 제어(TestAnimationClock 및 사용)가 이제 실험용입니다. (I6ef86, b/171378521)
- 이전 ui-test 모듈과 해당 스텁을 삭제했습니다. (I3a7cb)
RestorableStateHolder.withRestorableState
함수의 이름을RestorableStateProvider
로 변경했습니다. (I66640)- 정렬 인터페이스가 업데이트되어 정상 작동합니다. (I46a07, b/172311734)
버전 1.0.0-alpha07
2020년 11월 11일
androidx.compose.animation:animation:1.0.0-alpha07
및 androidx.compose.animation:animation-core:1.0.0-alpha07
이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
버그 수정
- 기본 AmbientTextStyle, ProvideTextStyle, AmbientContentColor가 지원 중단되었습니다. 대신 Material 라이브러리에서 제공되는 새 버전을 사용하세요. 비 Material 애플리케이션의 경우 자체 구성요소에 사용할 수 있는 고유 디자인 시스템별 테마 설정 앰비언트를 만들어야 합니다. (I74acc, b/172067770)
- foundation.Text가 지원 중단되고 material.Text로 대체되었습니다. 테마의 값을 사용하지 않는 비독단적인 기본 텍스트 API는 androidx.compose.foundation.BasicText를 참고하세요. (If64cb)
- MeasureResult를 MeasureScope 외부로 이동했습니다. (Ibf96d, b/171184002)
- 여러 레이아웃 관련 기호를 androidx.compose.ui에서 androidx.compose.layout.ui로 이동했습니다. (I0fa98, b/170475424)
버전 1.0.0-alpha06
2020년 10월 28일
androidx.compose.animation:animation:1.0.0-alpha06
및 androidx.compose.animation:animation-core:1.0.0-alpha06
이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.
API 변경사항
- ComposeTestRule에서 전환을 사용 설정하여 ComposeTestRule에서 깜박이는 커서를 사용 설정하는 옵션을 삭제했습니다. (If0de3)
버전 1.0.0-alpha05
2020년 10월 14일
androidx.compose.animation:animation:1.0.0-alpha05
및 androidx.compose.animation:animation-core:1.0.0-alpha05
가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
- 새 Animation 인터페이스 및 서브클래스: 이 클래스는 애니메이션의 시작 및 종료 조건을 저장하므로 재생 시간을 통해서만 값과 속도를 쿼리할 수 있습니다. (Ie95bd, b/163329867)
버그 수정
- OnPositionedModifier 이름이 OnGloballyPositionedModifier로 바뀌고 onPositioned()의 이름이 onGloballyPositioned()로 바뀝니다. (I587e8, b/169083903)
contentColor() 및 currentTextStyle() API를 지원 중단하고 각각 AmbientContentColor 및 AmbientTextStyle 앰비언트로 대체합니다. 다른 앰비언트와 마찬가지로 앰비언트 속성에서
.current
를 사용하여 현재 값에 액세스할 수 있습니다. 이러한 변경은 일관성을 유지하고 여러 가지 방법을 사용하여 동일한 결과를 얻는 것을 피하기 위해 이루어졌습니다. 또한, 목적을 더 잘 나타내도록 앰비언트 속성 일부의 이름을 다음과 같이 바꿉니다.- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
버전 1.0.0-alpha04
2020년 10월 1일
androidx.compose.animation:animation:1.0.0-alpha04
및 androidx.compose.animation:animation-core:1.0.0-alpha04
가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled, textInputServiceFactory에 @VisibleForTesting 주석을 달아 내부 API로 만들고 kdoc를 숨깁니다. (I554eb, b/168308412)
버그 수정
- 여러 Graphics API를 업데이트했습니다.
- DrawScope 및 DrawTransform에서 별도의 x/y 좌표 float 매개변수 대신 피벗 좌표를 나타내는 단일 오프셋 매개변수를 사용하도록 배율 및 회전 변환 API를 업데이트했습니다.
- Rect.expandToInclude 및 Rect.join 메서드를 삭제했습니다.
- elliptical 외에도 oval을 나타내도록 Radius 문서를 업데이트했습니다.
- 인라인 Radius 클래스의 공개 생성자를 직접 호출하는 것이 아니라 함수 생성자를 통해 Radius 객체를 인스턴스화해야 한다고 나타내는 문서를 추가했습니다.
- topRight, bottomRight, bottomCenter 등을 쿼리하도록 RoundRect API를 삭제했습니다.
- Rect.shift를 지원 중단하고 Rect.translate로 대체했습니다.
- RoundRect.grow 및 Rect.shrink API를 삭제했습니다.
- RoundRect.outerRect의 이름을 Rect.boundingRect로 변경했습니다.
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect 및 Rect.isStadium 메서드를 삭제했습니다.
- RoundRect.longestSide의 이름을 RoundRect.maxDimension으로 변경했습니다.
- RoundRect.shortestSide의 이름을 RoundRect.minDimension으로 변경했습니다.
- RoundRect.center를 함수가 아닌 속성으로 변경했습니다.
- x/y 반경 값에 개별 매개변수 대신 Radius 속성을 사용하도록 RoundRect 생성자를 업데이트했습니다.
- 0,0에 원점이 있는 직사각형이라고 가정한 Size API를 삭제했습니다.
- Radius에 소멸 API를 추가했습니다.
- 대신 다양한 RoundRect 확장 함수를 속성이 되도록 이전했습니다.
- (I8f5c7, b/168762961)
- foundation.Box가 지원 중단되었습니다. 대신 foundation.layout.Box를 사용하세요. (Ie5950, b/167680279)
- 스택의 이름이 Box로 변경되었습니다. 이전의 기존 Box는 지원 중단되고 compose.foundation.layout의 새 Box로 대체됩니다. 새 Box의 동작은 하위 요소가 여러 개인 경우 하위 요소를 겹겹이 쌓는 것입니다. 이는 Column과 유사하게 동작했던 이전 Box와 다릅니다. (I94893, b/167680279)
- Box 장식 매개변수가 지원 중단되었습니다. Box에 장식/패딩을 적용하려면 수정자(Modifier.background, Modifier.border, Modifier.padding)를 사용합니다. (Ibae92, b/167680279)
- 레이아웃 범위 콘텐츠의 정적 가져오기(예: RowScope의 alignWithSiblings)가 금지됩니다. 대신 명시적인 대체 범위를 사용해야 합니다.
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
(I216be, b/166760797)
버전 1.0.0-alpha03
2020년 9월 16일
androidx.compose.animation:animation:1.0.0-alpha03
및 androidx.compose.animation:animation-core:1.0.0-alpha03
이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
버그 수정
- 레이아웃 API에서 중력 사용에 관한 이름이 align 또는 alignment로 일관성 있게 바뀌었습니다. (I2421a, b/164077038)
버전 1.0.0-alpha02
2020년 9월 2일
androidx.compose.animation:animation:1.0.0-alpha02
및 androidx.compose.animation:animation-core:1.0.0-alpha02
가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
클록에서 프레임을 기다리는 것이 있는지 확인하기 위해
ManualFrameClock.hasAwaiters
가 추가되었습니다. ManualFrameClock이 필요한 테스트를 실행할 때runBlocking
이runWithManualClock
으로 대체됩니다.TestUiDispatcher.Main
으로 테스트에서 기본 UI 디스패처에 쉽게 액세스할 수 있습니다.예:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
버그 수정
onPreCommit이 지원 중단되었습니다. 이제 onCommit에 onPreCommit의 동작이 있습니다.
이제 onCommit과 onActive가 다음 choreographer 프레임의 시작 부분이 아닌 구성 변경사항이 커밋된 동일한 choreographer 프레임에서 실행됩니다. (I70403)
버전 1.0.0-alpha01
2020년 8월 26일
androidx.compose.animation:animation:1.0.0-alpha01
및 androidx.compose.animation:animation-core:1.0.0-alpha01
이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
버전 0.1.0-dev
버전 0.1.0-dev17
2020년 8월 19일
androidx.compose.animation:animation:0.1.0-dev17
및 androidx.compose.animation:animation-core:0.1.0-dev17
이 출시되었습니다. 버전 0.1.0-dev17에 포함된 커밋을 확인하세요.
새로운 기능
API 변경사항
- Offset이 인라인 클래스가 되었습니다. (Iaec70)
- IntOffset은 이제 인라인 클래스입니다. (Iac0bf)
- IntSize는 이제 인라인 클래스입니다. (I2bf42)
AnimatedVisibilty 컴포저블은 하위 요소 콘텐츠의 표시 및 사라짐을 애니메이션으로 보여줍니다.
EnterTransition 및 ExitTransition이 도입되어 AnimatedVisibilty 컴포저블과 함께 연동됩니다. 이를 통해 세 가지 유형의 표시 및 사라짐 애니메이션(콘텐츠 페이드 아웃, 슬라이드 및 확장/축소)을 제공할 수 있습니다. 다양한 유형의 애니메이션을 조합하여 더욱 맞춤화된 디자인과 분위기를 구현할 수 있습니다. (Idda11)
PxBounds가 지원 중단되고 Rect로 대체되었습니다. PxBounds의 모든 사용이 Rect로 업데이트되었으며 이전을 지원하기 위해 적절한 지원 중단/주석으로 대체가 추가되었습니다. (I37038, b/162627058)
버그 수정
PlacementScope.placeAbsolute()
의 이름이PlacementScope.place()
로 변경되었으며 이전PlacementScope.place()
의 이름은PlacementScope.placeRelative()
로 변경되었습니다. 따라서PlacementScope.place()
메서드는 더 이상 RTL 컨텍스트의 위치를 자동으로 미러링하지 않습니다. 이를 원한다면PlacementScope.placeRelative()
를 대신 사용해야 합니다. (I873ac, b/162916675)state { ... }
컴포저블이 이제 지원 중단되고 명확성을 위해 명시적remember { mutableStateOf(...) }
호출로 대체됩니다. 이렇게 하면 전체 API 노출 영역 및 상태 관리를 위한 개념 수가 감소하고 클래스 속성 위임을 위한by mutableStateOf()
패턴과 일치합니다. (Ia5727)
버전 0.1.0-dev16
2020년 8월 5일
androidx.compose.animation:animation:0.1.0-dev16
및 androidx.compose.animation:animation-core:0.1.0-dev16
이 출시되었습니다. 버전 0.1.0-dev16에 포함된 커밋을 확인하세요.
API 변경사항
- 이제
Foo.VectorConverter
를 통해 내장 단위를 변환하는 내장 벡터 변환기에 액세스할 수 있습니다. 예:Dp.VectorConverter
,Color.VectorConverter
,Float.VectorConverter
등 (I3e273) - 크기 변경 애니메이션이 완료되면 애니메이션의 시작/종료 크기와 함께 알림이 리스너에 전송되도록
Modifier.animateContentSize()
에서 종료 리스너를 지원합니다. (I277b2) - 새로운 animateContentSize 수정자는 하위 요소 수정자의 레이아웃 크기 변경을 애니메이션으로 보여줍니다. (Ieffdc)
MonotonicFrameClock을
AnimationClockObservable
로 사용할 수 있게 하는MonotonicFrameAnimationClock
을 추가하여 새로운 코루틴 기반 클록과 여전히 이전 콜백 기반 클록을 사용하는 API 간의 간극을 메웠습니다.ManualAnimationClock
에 상응하는MonotonicFrameClock
은 이제ManualFrameClock
입니다. (I111c7, b/161247083)
버그 수정
- 오른쪽에서 왼쪽 지원을 위한 API가 업데이트되었습니다. LayoutDirectionAmbient가 추가되어 레이아웃 방향을 읽고 변경하는 데 사용할 수 있습니다. Modifier.rtl 및 Modifier.ltr이 삭제되었습니다. (I080b3)
- transitionDefinition에 T 유형을 명시적으로 지정해야 합니다. (I1aded)
- foundation.shape.corner 패키지가 foundation.share로 평면화되었습니다. (I46491, b/161887429)
- Modifier.plus가 지원 중단되었습니다. 대신 Modifier.then을 사용해야 합니다. 'then'에는 더 강력한 순서 지정 신호가 있지만 체인을 끊으며 읽기가 더 어려운
Modifier.padding().background() + anotherModifier
입력도 금지합니다. (Iedd58, b/161529964) - Modifier.drawBackground 이름을 Modifier.background로 바꿨습니다. (I13677)
버전 0.1.0-dev15
2020년 7월 22일
androidx.compose.animation:animation:0.1.0-dev15
및 androidx.compose.animation:animation-core:0.1.0-dev15
가 출시되었습니다. 0.1.0-dev15에 포함된 커밋을 확인하세요.
종속 항목 업데이트
- Compose의
0.1.0-dev15
버전을 사용하려면 위의 종속 항목 선언에 표시된 새로운 코드 스니펫에 따라 종속 항목을 업데이트해야 합니다.
API 변경사항
- TransitionState를 하위 요소에 전달하는 대신 TransitionState를 반환하도록 Transition API가 변경되었습니다. 이렇게 하면, API와 animate() API의 일관성이 더 높아집니다. (I24e38)
- Crossfade를 위한 수정자 매개변수가 추가되었습니다. (I87cfe, b/159706180)
- 정적 애니메이션 사양 개념을 명확히 나타내려면 최상위 API에서 AnimationBuilder 대신 AnimationSpec을 사용하세요.
- 트윈, 스프링 같은 AnimationSpec을 만드는 데 필요한 람다 요구사항이 필요 없게 되어 전환 DSL이 개선됩니다. 대신 생성자 매개변수를 직접 사용합니다.
- 빌더에 의존하는 대신 생성자를 여는 AnimationSpec의 사용 편의성이 전반적으로 향상됩니다.
- KeyFrames와 Tween의 재생 시간과 지연이 Int로 변경됩니다. 이로 인해 Long과 Int를 모두 지원하기 위해 불필요한 유형 변환 및 메서드 오버로드를 하지 않아도 됩니다. (Ica0b4)
- IntPx 사용을 Int로 대체했습니다. IntPxPosition은 IntOffset으로 대체했습니다. IntPxSize를 IntSize로 대체했습니다. (Ib7b44)
- 크기 정보를 표시하는 데 사용되는 클래스의 수를 통합하려면 PxSize 대신 Size 클래스 사용을 표준화합니다. 이렇게 하면 인라인 클래스의 이점을 제공하여 부동 소수점으로 표시된 너비와 높이를 나타내는 long-pack 2 부동 소수점 값을 활용할 수 있습니다. (Ic0191)
- 위치 정보를 나타내는 데 사용되는 클래스 수를 통합하려면 PxPosition 대신 Offset 클래스 사용을 표준화합니다. 이렇게 하면, 인라인 클래스의 이점을 제공하여 부동 소수점으로 표시된 x 및 y 오프셋을 나타내는 long-pack 2 부동 소수점 값을 활용할 수 있습니다. (I3ad98)
- 대규모 리팩터링 작업의 일환으로 여러 Compose 클래스에서 Px 클래스가 더 이상 사용되지 않습니다. 픽셀 매개변수에는 Dp 유형과 기본 유형만 사용됩니다. (I086f4)
- Dp, Px, Size, Position, Bounds, PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition, IntPxBounds, AnimationVector를 위한 animate() 지원이 추가되었습니다. (Ib7518)
- 이제 Crossfade가 애니메이션을 구성할 수 있도록 선택적 AnimationBuilder 매개변수를 허용합니다. (I6d6e0)
- API의 모든 null을 허용하는 Color 사용을 null을 허용하지 않는 것으로 대체했습니다. null 대신 Color.Unset을 사용하세요. (Iabaa7)
- ValueHolder 클래스가 삭제되었습니다. 애니메이션 값 필드를 추상적으로 만들어 서브클래스에 값 업데이트가 표시될 수 있도록 AnimatedValue 및 AnimatedFloat 클래스를 재구성했습니다.
- AnimatedValue, AnimatedFloat 등의 모델 클래스가 추가되었습니다.
- 값 사이에 애니메이션을 적용하기 위한 새로운 경량 Composable API 세트를 추가했습니다. (I79530)
- ambients API에 브레이킹 체인지가 있습니다. 자세한 내용은 로그와
Ambient<T>
문서를 참고하세요. (I4c7ee, b/143769776) - 새로운 반복 모드: 리버스. 이 모드는 애니메이션이 RepeatableSpec 또는 VectorizedRepeatableSpec에서 반복될 경우 이전 반복을 역방향으로 진행시킵니다. (Ibe0f5)
- ManualAnimationClock에 API 추가:
hasObservers: Boolean
및 생성자 매개변수dispatchOnSubscribe: Boolean
(Iaa134) - AnimatedFloat에서 min/max 경계를 가져오기 위한 API를 추가했습니다. (Icd9cc)
버그 수정
runOnIdleCompose
이름을runOnIdle
로 바꿨습니다. (I83607)- 여러 테스트 API의 이름이 더 직관적으로 바뀌었습니다. 모든 findXYZ API의 이름이 onNodeXYZ로 바뀌었습니다. 모든 doXYZ API의 이름이 performXYZ로 바뀌었습니다. (I7f164)
- 낮은 수준의 스테이트리스(Stateless) Animation API가 도입되었습니다. (I63bf7)
- Recompose 컴포저블은 더 이상 유용한 추상화가 아닙니다. 대부분의 재구성은 MutableState 할당의 결과로 발생해야 합니다. 그 외의 경우에는
invalidate
함수를 사용하여 현재 범위의 재구성을 트리거하는 것이 좋습니다. (Ifc992) - 픽셀 매개변수에는 Dp 유형과 기본 유형만 사용하도록 하는 대규모 리팩터링 작업의 일환으로 여러 Compose 클래스에서 Px 클래스가 더 이상 사용되지 않습니다. Px 클래스 전체를 삭제했습니다. (I3ff33)
- 픽셀 매개변수에는 Dp 유형과 기본 유형만 사용하도록 하는 대규모 리팩터링 작업의 일환으로 여러 Compose 클래스에서 Px 클래스가 더 이상 사용되지 않습니다. (Id3434)
- 이제 Crossfade가 null을 초기 값으로 사용할 수 있습니다. (Iad6a4, b/155947711)
- 픽셀 매개변수에는 Dp 유형과 기본 유형만 사용하도록 하는 대규모 리팩터링 작업의 일환으로 여러 Compose 클래스에서 Px 클래스가 더 이상 사용되지 않습니다. (I19d02)
- CanvasScope 구현이 통합되어 이제 DrawScope와 ContentDrawScope만 있습니다. CanvasScope 이름을 DrawScope로 바꿨습니다. DrawScope는 Density 인터페이스를 구현하고 LayoutDirection을 제공하도록 업데이트되었으며 ContentDrawScope의 DrawScope 서브클래스는 삭제되었습니다. RTL 속성을 수동으로 제공하지 않아도 이미 DrawScope에서 제공하므로 Painter와 PainterModifier가 더 이상 RTL 속성을 자체적으로 유지하지 않도록 업데이트되었습니다. (I1798e)
- 캔버스를 노출하여 CanvasScope를 대신 노출하는 상위 수준 Compose API를 업데이트했습니다. 따라서 소비자가 자체 Paint 객체를 유지하지 않아도 됩니다. 캔버스에 계속 액세스해야 하는 소비자의 경우 콜백을 제공하여 기본 캔버스에서 그리기 명령어를 실행하는 drawCanvas 확장 메서드를 사용하면 됩니다. (I80afd)
- Row와 Column에 각각 verticalGravity 및 horizontalGravity 매개변수를 추가했습니다. (I7dc5a)
- ui-text 모듈 이름이 ui-text-core로 바뀌었습니다. (I57dec)
- 다음과 같이 DrawModifier API가 개선됩니다.
- 수신기 범위를 draw() ContentDrawScope로 설정했습니다.
- draw()의 모든 매개변수를 삭제했습니다.
- DrawScope는 이전 CanvasScope와 동일한 인터페이스를 사용합니다.
- ContentDrawScope에 drawContent() 메서드가 있습니다. (Ibaced, b/152919067)
- 이제
runOnIdleCompose
및runOnUiThread
는 ComposeTestRule의 메서드가 아닌 전역 함수입니다. (Icbe8f) - [변경 가능] 주 속성 위임 연산자가 Kotlin 1.4 속성 위임 최적화를 지원하기 위해 확장 프로그램으로 이동했습니다.
by state { ... }
또는by mutableStateOf(...)
를 계속 사용하려면 호출자가 가져오기를 추가해야 합니다. (I5312c) - ColoredRect가 지원 중단되었습니다. 대신
Box(Modifier.preferredSize(width, height).drawBackground(color))
를 사용하세요. (I499fa, b/152753731) - 수정자와 연산자를 팩토리 확장 함수로 대체했습니다.(I225e4)
- Center 컴포저블을 지원 중단했습니다. LayoutSize.Fill + LayoutAlign.Center 수정자로 대체되거나 적절한 수정자가 적용된 Box 또는 Stack 컴포저블 중 하나로 대체됩니다. (Idf5e0)
- LayoutFlexible을 LayoutWeight로 이름을 변경했습니다. 채우기 위해 긴 매개변수의 이름을 변경했습니다. (If4738)
- 불투명도 구성 가능한 함수를 drawOpacity 수정자로 대체했습니다. (I5fb62)
- AndroidComposeTestRule을 사용한 테스트가 이제 수동 일시중지, 계속, 진행을 허용하는 애니메이션 클록을 구성 루트에서 제공합니다. (Id54c5)
- LayoutPadding 수정자의 오른쪽에서 왼쪽 방향을 지원합니다. (I9e8da)
- Density와 DensityScope를 하나의 인터페이스로 병합했습니다. 이제 ambientDensity() 대신 DensityAmbient.current를 사용할 수 있으며 withDensity(density) 대신 with(density)를 사용하면 됩니다. (I11cb1)
- 다음과 같은 다양한 인라인 클래스 유형에 복사 메서드를 추가했습니다.
- 오프셋
- 크기
- 반경
- 모션
- TransformOrigin
- Size.copy 컴패니언 객체 메서드가 지원 중단되고 인스턴스 복사 메서드로 대체되었습니다. (Ife290, b/159905651)
- androidx.compose.ViewComposer가 androidx.ui.node.UiComposer로 이동했습니다. androidx.compose.Emittable은 삭제되었습니다. 이 항목은 ComponentNode와 중복되었습니다. androidx.compose.ViewAdapters는 삭제되었습니다. 더 이상 지원되지 않는 사용 사례입니다.
Compose.composeInto가 지원 중단되었습니다. 대신
setContent
또는setViewContent
를 사용하세요. Compose.disposeComposition이 지원 중단되었습니다. 대신setContent
에서 반환되는Composition
에서dispose
메서드를 사용하세요. androidx.compose.Compose.subcomposeInto는 androidx.ui.core.subcomposeInto로 이동했습니다. ComponentNode#emitInsertAt의 이름이 ComponentNode#insertAt으로 바뀌었습니다. ComponentNode#emitRemoveAt의 이름이 ComponentNode#removeAt으로 바뀌었습니다. ComponentNode#emitMode의 이름이 ComponentNode#move로 바뀌었습니다. (Idef00)