wear protolayout
| 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
|---|---|---|---|---|
| 2025년 10월 22일 | 1.3.0 | - | - | 1.4.0-alpha02 |
종속 항목 선언
wear-protolayout의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용을 알아보려면 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.4
버전 1.4.0-alpha02
2025년 10월 22일
androidx.wear.protolayout:protolayout-*:1.4.0-alpha02이 출시되었습니다. 버전 1.4.0-alpha02에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 기기가 주변 모드에 있는지 여부를 설명하는 새로운 플랫폼 이벤트 소스 (
isInAmbientMode)를 추가했습니다. (Ief832)
API 변경사항
- 이제
PendingIntentclickable은ProtoLayout렌더러에서PendingIntent를 지원하지 않는 경우 사용할 대체 작업 (LoadAction/LaunchAction)을 허용합니다. 렌더러 버전이PendingIntent를 지원하는 버전보다 낮은 경우 대체 작업이 자동으로 선택되어 레이아웃에 배치됩니다. (I6eee2, b/450259727) - 이제
materialScopeWithResources를 통해MaterialScope가 생성될 때 더 쉽게 사용할 수 있도록MaterialScope내의protoLayoutScope필드가NonNull로 설정됩니다. 또한hasProtoLayoutScope함수를 사용하여 존재 여부를 확인할 수 있습니다. (I1858f, b/450067019)
버전 1.4.0-alpha01
2025년 9월 24일
androidx.wear.protolayout:protolayout-*:1.4.0-alpha01이 출시되었습니다. 버전 1.4.0-alpha01에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- 타일이 표시될 때 요소가 서서히 나타나도록 하는
LayoutModifier도우미 메서드를 추가했습니다. (I38531, b/390345969) - 자동 리소스 등록도 처리하는 M3
MaterialScope개념을 지원하기 위해materialScopeWithResources가 추가되었습니다. 내부에서 사용 시onTileResourceRequest에 리소스를 수동으로 등록할 필요가 없는 이미지 (backgroundImageavatarImage및 아이콘)용 새로운 도우미 메서드를 추가했습니다. (I525bd, b/428692714) ProtoLayoutScope및 자동 리소스 등록과 함께 사용하기 위한Image및ImageResources용ProtoLayoutKotlin 도우미 (Iada82, b/430584304)- 하나의 Lottie 애니메이션 맞춤설정에서 허용되는 Lottie 속성 수를 가져오는 getter가 추가되었습니다. (I73733, b/436532706)
- 속성을 통해 Lottie 애니메이션을 맞춤설정할 수 있도록
AndroidLottieResourceByResId에 API 추가 및 슬롯 ID를 사용하여 테마 슬롯의 속성을 지정된 색상으로 만드는 API 추가 (I301b3, b/423581481) PendingIntent을 클릭 작업으로 수락하기 위한 제공자 API 추가 (I01978, b/433802488)onTileResourcesRequest의 매핑에 등록하지 않고도Image.Builder~setImageResource에 새 API를 추가하여onTileRequest의 이미지에 리소스 객체를 직접 설정합니다. (Ifa69a, b/428693523)- 타일에서 리소스 처리를 개선하기 위해
ProtoLayoutScope개념을 추가했습니다. (I132ce, b/428692423) ProtoLayoutMaterial3MaterialScope는 이제 범위를 벗어나지 않고 메서드에서 사용할 수 있도록Context필드를 공개로 노출합니다. (I0e5cc, b/414559956)- 제목 시맨틱 API를 공개로 설정 (I75299, b/413653475)
Arc/ArcLine/ArcText/DashedArcLine에서 사용할 수 있도록ARC_DIRECTION_*상수를 공개로 노출 (I83959, b/427556439)
API 변경사항
onTileResourcesRequest를 재정의할 필요가 없는Image.Builder(ProtoLayoutScope)및Image.Builder.setImageResourceAPI에서 사용할 수 있는 새로운 자동 리소스 등록 API를 도입하면서Image.Builder()및Image.Builder.setResourceId메서드를 지원 중단했습니다. (I7bfe6, b/432758526)- 제한된 API에서 공개 API로
ProtoLayoutScope생성 API 이동 하지만 시스템에서 이미 이러한 호출을 처리하므로 사용하면 안 됩니다. (I1d8e8, b/432758251)
버그 수정
ProtoTiles에서PendingIntent를 지원하는 구현 추가 (I38167, b/430610429)invalidateLayout메서드 추가 (Ief898)- 기본 minSdk를 API 21에서 API 23으로 이동 (Ibdfca, b/380448311, b/435705964, b/435705223)
- 이제
ImageResource에hashCode및equals메서드가 있습니다. (I650ee, b/428692423, b/428693523) - 새 프로토 메시지
PendingIntentAction및 래퍼 빌더 추가 (Ie2aca, b/427643502) ZoneId인스턴스가 생성되는 빈도를 줄입니다. (I284d3)- 단일 슬롯
textButton에 기본 콘텐츠 설명을 적용합니다. (I0dc8a, b/415001534) - 렌더러 측에서 최대 줄 수를 조정하는 계산 수정 (I933bc, b/414353620)
버전 1.3
버전 1.3.0
2025년 6월 4일
androidx.wear.protolayout:protolayout-*:1.3.0이 출시되었습니다. 버전 1.3.0에는 이러한 커밋이 포함되어 있습니다.
1.2.0 이후 중요 변경사항
- Material 3 디자인이 시계에 적용되어 원형 디스플레이에 최적화되고 작은 화면 크기부터 큰 화면 크기까지 적절하게 확장되는 구성요소와 레이아웃을 제공합니다.
- 여기에는 다음 구성요소 및 기능에 더 많은 Compose와 유사한 API가 있는 Kotlin 전용
protolayout-material3라이브러리가 포함됩니다. - 색상, 도형, 서체에 최신 Material3 테마가 적용된 시스템 및 시계 화면에서 제공되는 동적 색상 테마
- 모든 의견이 있는 기본값을 처리하고 맞춤설정을 더 쉽게 할 수 있는
MaterialScope iconEdgeButton,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,buttonGroup- 모든 구성요소는 모든 SDK 수준과
ProtoLayout렌더러 버전에서 작동하며, 해당하는 경우 적절한 대체 기능을 제공합니다.
- 여기에는 다음 구성요소 및 기능에 더 많은 Compose와 유사한 API가 있는 Kotlin 전용
- 기본 ProtoLayout 요소를 위한 Kotlin 친화적 Compose 유사 API
- 수정자를 체인 함수 (
padding,contentDescription(clearSemantics포함),background,clip,opacity등)로 추가할 수 있는LayoutModifier. 기존Modifiers객체로 변환 가능 - 동적 필드와 제약 조건을 더 쉽게 사용할 수 있는 유형인
LayoutColors및LayoutString text및fontStyleAppDataKey객체를 더 쉽게 만들 수 있도록DynamicDataMap및intAppDataKey와 같은 팩토리 메서드를 포함한StateBuilder의 더 나은 지도 지원
- 수정자를 체인 함수 (
- Lottie 애니메이션은 레이아웃이 로드되거나 레이아웃이 표시되는 등 애니메이션이 시작되는 시점에 다른 트리거를 설정하는 옵션을 포함하도록 지원합니다.
- 그라데이션 지원 개선:
Box,Spacer등의 요소에Background수정자로 사용할 수 있는Brush의 일부인 선형 그라데이션 API- 선형 및 스윕 그라디언트에 사용되는
ColorStop에서 동적 색상 값 허용 - 이제 호 객체의 기존 스윕 그라데이션이 동적 색상과 시작 및 종료 각도를 지원합니다.
protolayout-expression의 플랫폼 데이터 바인딩을 사용하여 레이아웃의 공개 상태가 변경될 때마다 정보를 수신합니다. 예를 들어 타일을 스와이프하는 동안 레이아웃의 특정 부분을 숨기는 데 사용할 수 있습니다.- 테스트 라이브러리(
protolayout-testing)가 추가되어 ProtoLayout 요소의 단위 테스트 범위를 더 쉽게 지원합니다. - 기존
ArcLine과 달리 선에 대시가 있을 수 있도록 기능이 개선된 새 요소DashedArcLine ArcSpacer이 길이를 도 대신 DP 단위로 설정하도록 지원- 일부 글꼴에 적용되는 둥근 모양
FontSetting축 추가
버전 1.3.0-rc01
2025년 5월 20일
androidx.wear.protolayout:protolayout-*:1.3.0-rc01은 이전 버전에서 변경사항 없이 출시되었습니다. 버전 1.3.0-rc01에는 이러한 커밋이 포함되어 있습니다.
버전 1.3.0-beta02
2025년 5월 7일
androidx.wear.protolayout:protolayout-*:1.3.0-beta02이 출시되었습니다. 버전 1.3.0-beta02에는 이 커밋이 포함되어 있습니다.
버그 수정
- API 36 이상에 적용되는 서체 디자인 값이 크게 개선되었습니다. API 36부터 모든 타일이 시스템 글꼴에 있기 때문에 이 변경사항으로 타일 캐러셀의 일관성이 향상됩니다. (If316f)
- 동적 값의
layoutConstraints이 설정되지 않은 경우Text,Spacer,ArcLine,DashedArcLine빌더가 예외를 발생시키지 않습니다. 이전 렌더러에서는 여전히layoutConstraints를 설정해야 하며 설정되지 않은 동적 값은 무시됩니다. (Ic52e8) - 레이아웃 요소가 접근성 목적으로 콘텐츠 섹션의 제목임을 나타내는 제목 시맨틱 수정자를 추가하고
primaryLayout의 제목 슬롯에 있는 텍스트가 기본적으로 접근성 제목이 되도록 표시합니다. (Iae1fb) - 작은 화면에서 제목 슬롯과 기본 슬롯 사이의 공간이 6dp 대신 4dp로 감소하는
primaryLayout의 최종 UX 다듬기 (I0e056) - 기본 콘텐츠 설명을
textEdgeButton에 적용 (Ifaf8b) avatarButton내부 패딩이 약간 업데이트되었습니다. (I0910b)
버전 1.3.0-beta01
2025년 4월 9일
androidx.wear.protolayout:protolayout-*:1.3.0-beta01이 출시되었습니다. 버전 1.3.0-beta01에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
Wear ProtoLayout 1.3.0-beta01 버전은 이 라이브러리 버전의 기능이 완전하고 API가 잠겨 있음을 나타냅니다 (실험용으로 표시된 경우 제외). Wear ProtoLayout 1.3에는 다음과 같은 새로운 기능과 API가 포함되어 있습니다.
- Material 3 디자인이 시계에 적용되어 원형 디스플레이에 최적화되고 작은 화면 크기부터 큰 화면 크기까지 적절하게 확장되는 구성요소와 레이아웃을 제공합니다.
- 여기에는 다음 구성요소 및 기능에 더 많은 Compose와 유사한 API가 있는 Kotlin 전용
protolayout-material3라이브러리가 포함됩니다. - 색상, 도형, 서체에 최신 Material3 테마가 적용된 시스템 및 시계 화면에서 제공되는 동적 색상 테마
- 모든 의견이 있는 기본값을 처리하고 맞춤설정을 더 쉽게 할 수 있는
MaterialScope iconEdgeButton,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,buttonGroup- 모든 구성요소는 모든 SDK 수준과 ProtoLayout 렌더러 버전에서 작동하며, 해당하는 경우 적절한 대체 값을 제공합니다.
- 여기에는 다음 구성요소 및 기능에 더 많은 Compose와 유사한 API가 있는 Kotlin 전용
- 기본 ProtoLayout 요소를 위한 Kotlin 친화적 Compose 유사 API
- 수정자를 체인 함수 (
padding,contentDescription(clearSemantics포함),background,clip,opacity등)로 추가할 수 있는LayoutModifier. 기존Modifiers객체로 변환 가능 - 동적 필드와 제약 조건을 더 쉽게 사용할 수 있는 유형인
LayoutColors및LayoutString text및fontStyleAppDataKey객체를 더 쉽게 만들 수 있도록DynamicDataMap및intAppDataKey와 같은 팩토리 메서드를 포함한StateBuilder의 더 나은 지도 지원
- 수정자를 체인 함수 (
- Lottie 애니메이션은 레이아웃이 로드되거나 레이아웃이 표시되는 등 애니메이션이 시작되는 시점에 다른 트리거를 설정하는 옵션을 포함하도록 지원합니다.
- 그라데이션 지원 개선:
Box,Spacer등의 요소에Background수정자로 사용할 수 있는Brush의 일부인 선형 그라데이션 API- 선형 및 스윕 그라디언트에 사용되는
ColorStop에서 동적 색상 값 허용 - 이제 호 객체의 기존 스윕 그라데이션이 동적 색상과 시작 및 종료 각도를 지원합니다.
protolayout-expression의 플랫폼 데이터 바인딩을 사용하여 레이아웃의 공개 상태가 변경될 때마다 정보를 수신합니다. 예를 들어 타일을 스와이프하는 동안 레이아웃의 특정 부분을 숨기는 데 사용할 수 있습니다.- 테스트 라이브러리(
protolayout-testing)가 추가되어 ProtoLayout 요소의 단위 테스트 범위를 더 쉽게 지원합니다. - 기존
ArcLine과 달리 선에 대시가 있을 수 있도록 기능이 개선된 새 요소DashedArcLine ArcSpacer이 길이를 도 대신 DP 단위로 설정하도록 지원- 일부 글꼴에 적용되는 둥근 모양
FontSetting축 추가
버전 1.3.0-alpha10
2025년 3월 12일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha10이 출시되었습니다. 버전 1.3.0-alpha10에는 이 커밋이 포함되어 있습니다.
새로운 기능
- Kotlin 배경 수정자에서 브러시 도우미 추가 (I995de)
- Material3 타일의 구성요소를 만드는 개발자 함수에서 더 쉽게 사용할 수 있도록 필수 Android 컨텍스트 필드가
MaterialScope에서 공개되었습니다. (I7df73)
API 변경사항
- API
platformVisibilityStatus의 이름을PlatformEventSources.isLayoutVisible로 변경하고 새로운 실험용 APIPlatformEventSources.isLayoutUpdatePending를 추가합니다. (Ie1e04)
버그 수정
- 이제
primaryLayout의 여백이 올바르게 반올림됩니다. 이로 인해 기본 슬롯의 공간이 최대 2dp 줄어드는 등 일부 레이아웃에 영향을 미칠 수 있습니다. (I8f5d3) ProtoLayoutMaterial3 구성요소의 기본 동적 색상 테마를 명확히 합니다. (Iff5f3)Typography.NUMERAL_*서체는 더 이상 기본적으로 표 형식/고정폭이 아닙니다. 텍스트가 애니메이션으로 처리되는 경우FontSetting.tabularNum()설정을 추가하는 것이 좋습니다. 다른 모든 경우에는 이 고정폭 옵션이 필요하지 않으며 사용하지 않으면 더 많은 문자를 사용할 수 있습니다. (Id3cd9)ProtoLayoutMaterial3 구성요소의 기본 동적 색상 테마를 명확히 합니다. (I9d831)
버전 1.3.0-alpha09
2025년 2월 26일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha09이 출시되었습니다. 버전 1.3.0-alpha09에는 이 커밋이 포함되어 있습니다.
새로운 기능
enterTransition및exitTransition용 실험용 수정자를 추가했습니다. (I4a4d6)- 전체 레이아웃의 가시성 상태가 변경될 때마다 이를 수신할 수 있도록 플랫폼 바인딩을 추가했습니다. (I250c3)
- 동적 값을 평가하기 위해 테스트 앱 상태와 플랫폼 데이터를
LayoutElementAssertionsProvider에 삽입하도록 허용 (Ib5fcb) - protolayout 테스트 라이브러리에 모서리 필터 추가 (Ie2361)
- 이제
ButtonColors,CardColors,ProgressIndicatorColors에서 일부 매개변수의 선택적 재정의와 함께 복사 메서드를 지원합니다. (Ie2054)
API 변경사항
- 테스트 라이브러리 (Ib98de)에 동적 데이터 결합 지원 추가
- 오버레이를 삭제하여
backgroundImage함수와 함께 사용할 때imageButton수정 또한backgroundImage함수를 사용하여 오버레이 색상을 null로 지정할 수 있도록 허용합니다. 즉, 오버레이가 적용되지 않습니다. (Ibec3c)
버그 수정
- 기본
hasValueOfType메서드가IllegalArgumentException대신UnsupportedOperationException을 발생시키도록 변경했습니다. (Ia36c3) - 최신 사양을 반영하도록 기본 색상 토큰 값이 업데이트되었습니다. (I75d44)
- AndroidX 타일 렌더러의 호 라인에 표시되는 앨리어싱 문제 수정 (I88190)
버전 1.3.0-alpha08
2025년 2월 12일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha08이 출시되었습니다. 버전 1.3.0-alpha08에는 이 커밋이 포함되어 있습니다.
새로운 기능
- Material3 텍스트의
FontSetting목록 매개변수 추가 (Ic102d) - 앱 상태 (I012ba)를 위한 더 나은 유형 안전 Kotlin API를 위해
StateBuilder에서 이제 지원하는DynamicDataMap클래스 추가 AppDataKey객체를 더 쉽게 생성할 수 있도록intAppDataKey와 같은 팩토리 메서드가 추가됨 (Icea2a)- 이제
DynamicDataValue에는hasInt/hasColor/.... 메서드 외에hasValueOfType(Class<?>)메서드가 있습니다. (I4f7a6) - 안전 알림과 같은 우선순위가 높은 오류나 긴급 조치를 위해 Material3 ProtoLayout
ColorScheme에errorDim를 추가했습니다. (Ia17bb) - 이 설정이 제공되지 않는 일부 플랫폼에서 트리거된 전역 reducemotion 설정에 액세스할 때 발생하는 비정상 종료에 대한 가드를 추가했습니다. (I01e2c)
API 변경사항
addKeyToValueMapping의 이름이addToStateMap로 변경되고DynamicDataMap.put메서드가 중복되어 삭제되었습니다. (Ibe9dd)- 이제 Material3 서체는 이 축을 지원하는 시스템 글꼴의 라운드 변수 축을 지원합니다. ProtoLayout
FontSetting는 이 축을 지원하는 글꼴의 둥근 정도 축을 지원합니다. (I33eb5) - Material3 텍스트 메서드에서
multilineAlignment의 이름을 alignment로 변경했습니다. (I2b66b) - 원형 진행 상태 표시기를 Box 유형으로 업데이트하고
constructGraphic의mainContent를 Box 유형으로 지정 (I5a3dc) - 그래프에서 원형 진행 상태 표시기 사용 지원 개선 (I039db)
버그 수정
ColorStop의 동적 값과SweepGradient의 시작/종료 각도도 허용 (I0146d)- Docs 수정 사항 (I4a63a)
weight확장 측정기준이 지원되지 않는 경우 (예: API 33 미만) 대체 기능을 제공하도록 Material 3 구성요소 (graphicCard및avatarButton)가 업데이트되었습니다. 렌더러에서TEXT_OVERFLOW_ELLIPSIZE를 지원하지 않는 경우TEXT_OVERFLOW_ELLIPSIZE_END로 대체되도록 텍스트 구성요소를 업데이트했습니다. (I19e2c)PrimaryLayoutMargins의 문서 업데이트 (Ibaf7b)
버전 1.3.0-alpha07
2025년 1월 29일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha07이 출시되었습니다. 버전 1.3.0-alpha07에는 이 커밋이 포함되어 있습니다.
새로운 기능
- Lottie 애니메이션의 다양한 트리거를 설정하는 API 옵션이 추가되었습니다. 또한 레이아웃이 표시될 때 트리거되는 트리거용 API를 추가했습니다 (I8272d).
border,visibility,opacity수정자를 추가했습니다. (I6d3dd)- ProtoLayout Material3 구성요소에 아바타 버튼이 추가되었습니다. (Idb5ae)
- 이제 Material3
primaryLayout에서 여백 (측면 및 경우에 따라 하단)을 맞춤설정할 수 있습니다. (Ib22f6) - 원형 진행률 표시기의 세그먼트 변형 추가 (I6a648)
- ProtoLayout Material3에 콤팩트 버튼 구성요소를 추가했습니다. (Ia3c5c)
- ProtoLayout Material3에 필 모양 버튼 및 이미지 버튼 구성요소를 추가했습니다. (Ifb88a)
API 변경사항
- 이제
LayoutModfier.foldIn가 예상되는 동작을 더 잘 반영하도록foldRight로 호출됩니다. (Idf242) VisibleOnce트리거가 이제 실험용입니다. (Ib2d26)- 그래픽 라이브러리 대안이 있으므로 공개 API에서
withOpacity삭제 (I030c2) LayoutString.kt및LayoutColor.kt의 최상위 메서드 이름을 Java 친화적인 이름으로 변경했습니다. (I7aff0)- Material3에서 ProtoLayout이 아닌 서체를 삭제했습니다. (Idd9ae)
- Material3의
*Colors클래스에 있는 필드에 접미사 Color 추가 (I2d114)
버그 수정
버전 1.3.0-alpha06
2025년 1월 15일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha06이 출시되었습니다. 버전 1.3.0-alpha06에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- 정적 및 동적 색상 유형을 모두 지원하도록
LayoutColor ProtoLayout Material3textButton 구성요소를 추가했습니다. (Id680d)iconButtonProtoLayout Material3 구성요소 추가 (Ica3f0)- ProtoLayout Material3 버튼 컨테이너 구성요소를 추가했습니다. (I17a38)
- 연결 가능한 시맨틱 수정자를 protolayout-material3에 지원 추가 (I4af62)
- ProtoLayout Material3 단일 세그먼트
CircularProgressIndicator추가 (I2c8a2) padding,metadata수정자를 추가했습니다. (I8720a)background,clip,clickable수정자를 추가했습니다. (I35478)- 브러시에
LinearGradient를 추가하고 배경 수정자에서 사용할 수 있도록 허용 (Ic4dea) - appCard 및
titleCard에 작은 크기 추가 (I91f98) - ProtoLayout Material3
graphicDataCard구성요소를 추가했습니다. (I92be7) - ProtoLayout Material3
iconDataCard및textDataCard구성요소를 추가했습니다. (I4e1e4) - ProtoLayout Material3
appCard구성요소를 추가했습니다. (Id4c57) EdgeButtonColors을ButtonColors로 추상화 (I83624)- ProtoLayout Material3
titleCard구성요소를 추가했습니다. (I2dc72)
API 변경사항
- 이제 ProtoLayout Material3 API는 정적 텍스트와 동적 텍스트를 모두 지원하기 위해
LayoutString를 허용합니다. (I9c24a)
버그 수정
버전 1.3.0-alpha05
2024년 12월 11일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha05이 출시되었습니다. 버전 1.3.0-alpha05에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 바인딩 가능한 레이아웃 문자열 필드를 지원하는
LayoutString추가 (Ida650) ProtoLayout Material3카드 컨테이너 구성요소를 추가했습니다. (Ic985a)
버그 수정
- 이제 이 라이브러리는 유형 사용인 JSpecify nullness 주석을 사용합니다. Kotlin 개발자는 다음 컴파일러 인수를 사용하여 올바른 사용을 강제해야 합니다.
-Xjspecify-annotations=strict(Kotlin 컴파일러 버전 2.1.0부터 기본값임) (Id1f9b, b/326456246)
버전 1.3.0-alpha04
2024년 11월 13일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha04이 출시되었습니다. 버전 1.3.0-alpha04에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- Material3 모양이 Wear Compose와 마찬가지로 실제 Corner 값을 보유하는 필드가 있는 클래스로 업데이트되었습니다. (Ied8cd)
- Wear Compose와 마찬가지로
ColorScheme개념을 포함하도록 Material3 색상을 업데이트했습니다. (If645e) - 테스트 라이브러리에 일반적으로 사용되는 매처를 여러 개 추가 (Ie5cec)
버전 1.3.0-alpha03
2024년 10월 30일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha03이 출시되었습니다. 버전 1.3.0-alpha03에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- 테스트 라이브러리에
LayoutElementAssertionsProvider,LayoutElementAssertion,LayoutElementMatcher추가 (Id1110)
버전 1.3.0-alpha02
2024년 10월 16일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha02이 출시되었습니다. 버전 1.3.0-alpha02에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- Material 3 라이브러리의 초기 버전입니다.
text,edgeButton,buttonGroup,primaryLayout구성요소를 포함합니다.
보안 수정사항
- 이 변경사항에 따라 androidx는 CVE-2024-7254를 해결하기 위해 protobuf 4.28.2에 대해 컴파일됩니다. 취약점 위험을 해결하려면
androidx.wear.protolayout:protolayout-proto및androidx.wear.protolayout:protolayout-external-protobuf의 버전 1.3.0-alpha01에 대한 종속 항목을 1.3.0-alpha02로 업그레이드하세요.
외부 기여
버전 1.3.0-alpha01
2024년 10월 2일
androidx.wear.protolayout:protolayout-*:1.3.0-alpha01이 출시되었습니다. 버전 1.3.0-alpha01에는 이 커밋이 포함되어 있습니다.
버그 수정
- Roboto 및 Roboto Flex 글꼴 모음 이름의 사용 가능 여부가 기기에 따라 다르다고 명시했습니다. (I193be)
- AndroidX 타일 렌더러에서 Roboto Flex 글꼴 모음을 사용 설정했습니다. (I08e94)
버전 1.2
버전 1.2.1
2024년 10월 16일
androidx.wear.protolayout:protolayout-*:1.2.1이 출시되었습니다. 버전 1.2.1에는 이 커밋이 포함되어 있습니다.
보안 수정사항
- 이 변경사항에 따라 androidx는 CVE-2024-7254를 해결하기 위해 protobuf 4.28.2에 대해 컴파일됩니다.
androidx.wear.protolayout:protolayout-proto및androidx.wear.protolayout:protolayout-external-protobuf버전 1.2.0의 종속 항목을 1.2.1로 업그레이드하여 취약점 위험을 해결하세요.
버전 1.2.0
2024년 8월 7일
androidx.wear.protolayout:protolayout-*:1.2.0이 출시되었습니다. 버전 1.2.0에 포함된 커밋을 확인하세요.
1.1.0 이후 중요 변경사항
FontStyle가 가변 축에 대한 추가 글꼴 지원과 향후 Flex 글꼴을 지원하기 위한 더 나은 글꼴 선택 API를 갖도록 업데이트되었습니다.- 추가 수정자 지원:
- 애니메이션 유무와 관계없이 변환, 회전, 크기 조정을 제공하는 변환 수정자입니다.
- 각 모서리 반지름에 다른 값 (가로 및 세로)을 지정합니다.
- Clickable 수정자를 사용하는 요소의 탭 가능 영역을 최소
48dpx48dp로 확장하여 모든 터치 타겟의 접근성 개선 - 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 잘 지원하고 타일 일관성을 개선하기 위해
setResponsiveContentInsetEnabled를 추가하여PrimaryLayout및EdgeContentLayout를 개선했습니다. - Android 14의 비선형 글꼴 크기 조정을 위해 Material Text의 크기 조정/비조정 개선
- 모든 호 요소에서 RTL 레이아웃 방향 지원이 개선되었습니다.
기타 변경사항
- 버전 1.1.0에 도입된 변경사항의 전체 목록은 beta01 출시 노트를 참고하세요.
버전 1.2.0-rc01
2024년 7월 24일
androidx.wear.protolayout:protolayout-*:1.2.0-rc01이 출시되었습니다. 버전 1.2.0-rc01에는 이 커밋이 포함되어 있습니다.
버그 수정
- 기본 또는 보조 라벨이 전달되지 않는 경우에만 아이콘으로 사용할 수 있도록 표준 Material 칩을 수정했습니다. (Iceef9)
- 레이아웃을 더 쉽게 이해할 수 있도록 관련 페이지의 시각 자료를 포함하도록 Material 레이아웃 관련 문서가 업데이트되었습니다. (I0256a)
버전 1.2.0-beta01
2024년 7월 10일
androidx.wear.protolayout:protolayout-*:1.2.0-beta01이 출시되었습니다. 버전 1.2.0-beta01에는 이 커밋이 포함되어 있습니다.
새로운 기능
Wear ProtoLayout 1.2.0-beta01 버전은 이 라이브러리 버전의 기능이 완전하고 API가 잠겨 있음을 나타냅니다 (실험용으로 표시된 경우 제외). Wear ProtoLayout 1.2에는 다음과 같은 새로운 기능과 API가 포함되어 있습니다.
FontStyle이 다음과 같이 추가 글꼴 지원을 포함하도록 업데이트되었습니다.FontSetting.weight및FontSetting.width과 같은 다양한 글꼴 변형 설정- 모든 숫자 문자의 너비를 동일하게 설정 - 표 형식 숫자 (
FontSetting.tnum글꼴 기능 설정) - 사용할 기본 글꼴 모음 이름을 지정하여 곧 출시될 플렉스 글꼴을 지원하도록 글꼴 선택 API가 개선되었습니다.
- 비대칭 모서리가 있는 요소를 빌드할 수 있도록 별도의 가로 및 세로 값으로 각
CornerRadius를 지정할 수 있도록Corner수정자를 확장했습니다. LayoutElement의 변환, 회전, 크기 조정을 제공하는 새로운Transformation수정자를 추가했습니다. 동적 값을 사용하여 이러한 변환에 애니메이션을 적용할 수 있습니다.- 다양한 레이아웃 방향 (예: LTR 및 RTL)을 더 잘 지원하기 위해 모든 호 요소 (
Arc,ArcLine,ArcText)에Clockwise,CounterClockwise,Normal옵션이 있는setArcDirection를 추가했습니다. Clickable수정자를 사용하는 요소의 탭 가능 영역을48dpx48dp이상으로 확장하여 모든 터치 대상의 접근성 개선- 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 잘 지원하고 타일 일관성을 개선하기 위해
setResponsiveContentInsetEnabled를 추가하여PrimaryLayout및EdgeContentLayout를 개선했습니다. 빠른 수정으로 이러한 API 사용을 제안하는 린터 경고가 추가되었습니다. - Android 14의 비선형 글꼴 크기 조정을 위해 Material
Text의 크기 조정/크기 조정 안 함 개선
API 변경사항
preferredFontFamiliesAPI를 사용하지 않는 것으로 암시되므로 기본 글꼴 패밀리 이름 (DEFAULT_SYSTEM_FONT)이 삭제됩니다. (I39dab)FontSetting.width에 전달된 매개변수는 양수여야 합니다. (I1266f)
버전 1.2.0-alpha05
2024년 6월 26일
androidx.wear.protolayout:protolayout-*:1.2.0-alpha05이 출시되었습니다. 버전 1.2.0-alpha05에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 텍스트 콘텐츠가 설정되었는지 확인하기 위해
hasText메서드를Material.CompactChip에 추가 (I6e8fc)
API 변경사항
FontFamily상수가 빌더 클래스가 아닌FontStyle에 있도록 이동되었습니다. (I06ced)- 범위 주석을 포함하도록
FontSetting.weight및FontSetting.widthAPI를 업데이트하고 가중치 매개변수를 int로 변경합니다. (Ia726c)
버그 수정
- 이제 Material 라이브러리의 크기 조정 불가능한 텍스트가 Android 14의 비선형 글꼴 크기 조정과 올바르게 작동합니다. (I6601e)
버전 1.2.0-alpha04
2024년 5월 29일
androidx.wear.protolayout:protolayout-*:1.2.0-alpha04이 출시되었습니다. 버전 1.2.0-alpha04에는 이 커밋이 포함되어 있습니다.
API 변경사항
- 2개의 값으로 각 모서리의 반지름을 별도로 지정할 수 있도록 비대칭 모서리 API가 추가되었습니다. (Icbd69)
- 다음 항목을 포함하도록
FontSettingAPI가 확장되었습니다. - 사용해야 하는 글꼴 모음의 순서 목록을 지정할 수 있도록
FontStyle에 글꼴 모음 API가 추가되었습니다. (Iba9f5) PrimaryLayout과EdgeContentLayout모두에 적용할 수 있으므로 처음에는 'Edge content'로 시작했던 Material의LayoutDefaults에 있는 콘텐츠와 보조 라벨 사이의 공간 높이 상수의 이름을 더 일반적인 이름으로 변경했습니다. (I4dc32)
버그 수정
- 가변 글꼴 축의 이름이
axisName에서axisTag으로 변경되었습니다. (I02ba3)
버전 1.2.0-alpha03
2024년 5월 14일
androidx.wear.protolayout:protolayout-*:1.2.0-alpha03이 출시되었습니다. 버전 1.2.0-alpha03에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
FontStyle의 맞춤 가중치 값을 설정하는 API를 추가했습니다. (I7390a)
버그 수정
- 빈 타겟 맵으로 인해
getTouchDelegateInfo에서 발생하는 실패 수정 (I2accf)
버전 1.2.0-alpha02
2024년 5월 1일
androidx.wear.protolayout:protolayout-*:1.2.0-alpha02이 출시되었습니다. 버전 1.2.0-alpha02에는 이러한 커밋이 포함되어 있습니다.
API 변경사항
- 클릭 가능한 개별 요소에서 리플 피드백을 사용 중지하는 지원이 추가되었습니다. (If1ede)
- 변환 API가
ArcModifiers에서 삭제되었습니다. 이 기능이 지원되지 않기 때문입니다 (Ic0827). - 이제
ArcDirectionProp빌더가 생성자에서 값을 예상합니다. (I76ada) PlatformDataValues.Builder.putAll메서드를 사용하면 하나의PlatformDataValue를 다른PlatformDataValue에 병합할 수 있습니다. (I50ba3)Text#setIsScalable에서Text#setScalable로 이름이 변경되었습니다. (If920e)- Material Text는 확장 가능한 크기 (사용자 글꼴 크기가 변경되면 커짐)를 사용할지 여부를 설정할 수 있습니다. (Ibc849)
- 콘텐츠 설명을
TitleChip로 설정하는 옵션이 추가되었습니다. (I5d21f) - 아이콘만으로 올바르게 작동하도록
CompactChip를 수정하고 이 옵션을 허용하도록 API를 업데이트했습니다. (I6589e)
버그 수정
- 초기화 중에 잠재적으로 중복되는 플랫폼 데이터 문제가 수정되었습니다. (Iba0fd)
- 노드 비용을 가져오기 위해
DynamicDataNode에 새로운 getter 도입 이 비용은 동적 노드 할당량을 획득할 때 사용됩니다. 현재 고정 값이 있는 노드의 비용은 0이고 다른 모든 노드의 비용은 1입니다. (Ia33e1) NO_OP_QUOTA_MANAGER에서 카운팅 로직을 삭제합니다. (Ib50b8)setResponsiveContentInsetEnabled없이PrimaryLayout를 사용하는 경우 경고를 보고하고 빠른 수정을 제공하는 린트 규칙이 추가되었습니다. (I12025)- 동적 표현식 노드 수에는 제한이 있습니다. (Iffae8)
버전 1.2.0-alpha01
2024년 3월 6일
androidx.wear.protolayout:protolayout-*:1.2.0-alpha01이 출시되었습니다. 버전 1.2.0-alpha01에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 이제
ProtoLayout Arc요소에ArcDirection(Clockwise,Counterclockwise또는Normal)을 추가할 수 있습니다.Arc,ArcLine또는ArcText에 이 동작을 추가하면 RTL 레이아웃에서 동작이 수정됩니다. (I90699) EdgeContentLayout가 새로운setResponsiveContentInsetEnabled설정기로 업데이트되어 UX 가이드라인과의 정렬이 개선되고, 기본 라벨이 상단의 고정된 위치에 있고 라벨의 인셋이 반응형이므로 타일의 일관성이 유지됩니다. (I60175)- 콘텐츠가 화면 가장자리에서 벗어나지 않도록 이 레이아웃의 기본 라벨, 보조 라벨, 하단 칩에 반응형 인셋을 추가하는
PrimaryLayout.setResponsiveContentInsetEnabled를 추가했습니다. (I0c457) CircularProgressIndicator에서 외부 여백을 삭제하는 메서드를 추가하여 더 작은 구성요소로 사용할 수 있도록 합니다. (I55c06)
API 변경사항
- 이제 타일 렌더러는 포함 옵션 없이 기본적으로 모든 텍스트 요소에서 글꼴 패딩을 제외합니다. (I3e300)
버그 수정
- 텍스트에 줄임표, 글자 간격, 가운데 정렬이 모두 사용될 때 텍스트 정렬 문제가 수정되었습니다. (I716c7)
- Skia 호 그리기 문제의 해결 방법 추가 (I08f09)
- RTL 레이아웃의
ArcLine그리기 방향 수정 (I6c141)
버전 1.1
버전 1.1.0
2024년 2월 7일
androidx.wear.protolayout:protolayout-*:1.1.0이 출시되었습니다. 버전 1.1.0에 포함된 커밋을 확인하세요.
1.0.0 이후 중요 변경사항
ArcLine에서 그라데이션 지원 및 360도보다 큰 길이의 더 나은 표현- 날짜-시간 형식은 동적 데이터 유형에 대해 다양한 시간대를 지원합니다.
- 잘린 텍스트를 처리하기 위한 텍스트 자동 크기 조절 및 줄임표 옵션 개선
- 스페이서는 선택적 가중치와 함께 확장된 크기를 지원합니다.
- 모든
ProtoLayoutAPI에 스키마 버전 요구사항 주석을 추가합니다. - 접근성 요구사항을 충족하기 위해
Clickable요소의 타겟 영역을 48dp x 48dp로 확장했습니다. - 글꼴 패딩은 기본적으로 사용 중지되어 있으며 텍스트가 포함된 모든 텍스트 요소와 Material 구성요소에서 유일하게 적용되는 동작입니다.
기타 변경사항
- 버전 1.1.0에 도입된 변경사항의 전체 목록은 beta01 출시 노트를 참고하세요.
버전 1.1.0-rc01
2024년 1월 24일
androidx.wear.protolayout:protolayout-*:1.1.0-rc01이 출시되었습니다. 버전 1.1.0-rc01에 포함된 커밋을 확인하세요.
버그 수정
- 업데이트를 사용 설정한 후
PlatformTimeUpdateNotifierImpl가 즉시 틱합니다. (I77145) CircularProgressIndicator이 RTL 레이아웃에 대해 수정되었습니다. 이제부터는 모든 경우에 시계 방향으로 이동합니다. (I95ee3)- Skia 호 그리기 문제의 해결 방법 추가 (I08f09)
버전 1.1.0-beta01
2024년 1월 10일
androidx.wear.protolayout:protolayout-*:1.1.0-beta01이 출시되었습니다. 버전 1.1.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
Wear ProtoLayout 1.1.0-beta01 버전은 이 라이브러리 버전의 기능이 완전하고 API가 잠겨 있음을 나타냅니다 (실험용으로 표시된 경우 제외). Wear ProtoLayout 1.1에는 다음과 같은 새로운 기능과 API가 포함되어 있습니다.
- 이제
ArcLine는SweepGradient로Brush를 추가하고 기존StrokeCap에Shadow를 추가하여 360도를 초과하는 길이를 더 잘 나타내기 위해 캡에 그림자를 추가하여 그라데이션을 지원합니다. DynamicInstant은(는) 시간대가 지정된 날짜-시간 형식 지정을 지원합니다.DynamicInstant및DynamicDuration은 상태 또는 플랫폼 데이터 유형으로 사용할 수 있습니다.- 텍스트 크기의 자동 크기 조절 기능으로, 텍스트 크기가 상위 요소 내의 공간에 따라 자동으로 조정되는
FontStyle.setSizes에 여러 크기를 설정할 수 있습니다. 또한TEXT_OVERFLOW_ELLIPSIZE를 추가하고TEXT_OVERFLOW_ELLIPSIZE_END를 지원 중단하여 오버플로되는 텍스트의 줄임표 옵션을 개선했습니다. - 이제
Spacer에서 선택적 가중치가 있는 확장된 측정기준을 지원합니다.ExpandedDimensionProp빌드를 위해 도우미 메서드DimensionBuilders.weight를 추가했습니다. Modifier.visible를 사용하여 레이아웃 요소를 동적으로 숨기거나 숨김 해제하는 기능 지원 여기에는BoolProp에 동적 값이 있는 경우가 포함됩니다.- 이제 모든
ProtoLayoutAPI에 스키마 버전 요구사항 주석이 있으며 최신 API를 호출하기 전에 버전을 확인할 수 있습니다. - 이제
Clickable가 있는 모든 요소의 타겟 영역이 접근성 요구사항을 더 잘 지원하기 위해 렌더러에서 최소 48x48로 확장됩니다. - 다른 Material 구성요소 및 Compose 이니셔티브에 따라 이제 모든
Text요소에서 기본적으로 글꼴 패딩이 사용 중지되었습니다. 또한AndroidTextStyle및 관련 설정자가 공개 API에서 삭제되었습니다. 다음 버그가 수정되었습니다. - 다른 콘텐츠 앞에 배치할 수 있도록
EdgeContentLayout에서 가장자리 콘텐츠를 배치하는 설정자를 추가했습니다. - 인식할 수 없는 열거형 값을 만날 때 일관되게 예외를 발생시킵니다.
- 표현식에서 잘못된 숫자 값 (NaN 또는 무한대)이 생성되거나
ArithmeticException이 발생하면 표현식의 결과를 무효화합니다.
API 변경사항
- 생성자에서 색상 또는
ColorStops를 허용하도록SweepGradientAPI 업데이트 (I6676f)
버그 수정
- 호 요소가 그려지는 방향을 설정하기 위한 제한된 API 및 렌더러 지원 추가 (Idef5a)
RoundMode는 지정되지 않은 경우FloatToInt32Node에서Floor로 기본 설정됩니다. 제공된RoundMode이 인식되지 않으면 노드에서 예외가 발생합니다. (I1b2d8)
버전 1.1.0-alpha04
2023년 12월 13일
androidx.wear.protolayout:protolayout-*:1.1.0-alpha04이 출시되었습니다. 버전 1.1.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
VersionInfo클래스가Comparable인터페이스를 구현하지 않습니다. (I8d13c)- 이제 렌더러에서
TEXT_OVERFLOW_ELLIPSIZE옵션을 지원합니다. (I7f085)
API 변경사항
- 텍스트 오버플로 옵션
TEXT_OVERFLOW_ELLIPSIZE_END이 이제 지원 중단됩니다. 동작이 매우 유사한 새 APITEXT_OVERFLOW_ELLIPSIZE를 사용하세요. (I822d8) - 다른 Material 구성요소 및 Compose 이니셔티브에 따라 이제 모든 텍스트 요소에서 기본적으로 글꼴 패딩이 사용 중지되었습니다. 또한
AndroidTextStyle및 관련 setter가 공개 API에서 삭제되었습니다. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3) Modifier.hidden이Modifier.visible로 대체되었습니다. (I56902)- 이제
FontStyle#setSizes는SpProp인수 대신 int를 허용합니다. (I02b37)
버그 수정
- 정의되지 않았거나 인식할 수 없는 enum 값을 발견하면 예외를 발생시킵니다. (I9d2cf)
DynamicTypeBindingRequest리팩터링 (I27b57)- 표현식에서 잘못된 숫자 값 (NaN 또는 무한대)이 생성되거나
ArithmeticException이 발생하면 표현식의 결과를 무효화합니다. (I681ae)
버전 1.1.0-alpha03
2023년 11월 29일
androidx.wear.protolayout:protolayout-*:1.1.0-alpha03이 출시되었습니다. 버전 1.1.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- 레이아웃 요소를 동적으로 숨기거나 숨김 해제하는 실험적 지원 추가 (I64a78)
BoolProp에 동적 값 지원 추가 (I2fe96)ProtoLayoutAPI에 스키마 버전 요구사항 주석 추가 (I0f03c)- 최대 줄 수에 도달하지 않았지만 텍스트를 위한 공간이 충분하지 않은 경우에도 고정된 상위 컨테이너에서 텍스트를 줄임표로 표시하기 위해
TextOverflow에 새로운 옵션을 추가하여 API를 확장합니다. (I110a9) - 가중치로
ExpandedDimensionProp를 빌드하기 위한 도우미 메서드DimensionBuilders.weight추가 (I4f72b) DynamicInstant및DynamicDuration은 상태 또는 플랫폼 데이터 유형으로 사용할 수 있습니다. (I6819f)
API 변경사항
DynamicZonedDateTime를 숨기고 모든 작업을DyanamicInstant로 이동하도록 API 업데이트 (I34b94)- 이제 스페이서가 너비/높이에 대해 확장된 측정기준을 지원합니다. (Ie7c94)
- 렌더러에서 클릭 타겟 영역 확장 지원 (I39c79)
버전 1.1.0-alpha02
2023년 11월 15일
androidx.wear.protolayout:protolayout-*:1.1.0-alpha02이 출시되었습니다. 버전 1.1.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
- API에
ArcLineStrokeCapShadow필드를 추가했습니다. (I830ec) - 확장할 스페이서의 너비 또는 높이를 지정할 수 있도록 API 확장 (I757ca)
- 상위 요소 내의 공간에 따라 텍스트 크기를 자동으로 조정하는 실험용 API가 추가되었습니다. (Ibbe63)
- 최소 클릭 가능 크기 지원 (I178e3)
StrokeCapShadow의 렌더러 지원이 추가되었습니다. (I48b17)ArcLine에 스위프 그라데이션 렌더러 지원 추가 (I4d5bb)
버전 1.1.0-alpha01
2023년 10월 18일
androidx.wear.protolayout:protolayout-*:1.1.0-alpha01이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
SweepGradient지원과 함께Arcline에 브러시 옵션을 추가했습니다. (Ie7ce3)- 시간대 지정 날짜 및 시간 형식 지정 지원이 추가되었습니다. (Ibfae0)
- 시간대별 날짜-시간 형식 지정에 필요한 프로토콜과 Java 래퍼가 추가되었습니다. (I97126)
DynamicDataValue에 저장된 값을 다시 읽어오는 getter가 추가되었습니다. (Ie6cea)- 다른 콘텐츠 앞에 배치할 수 있도록
EdgeContentLayout에서 가장자리 콘텐츠를 배치하는 setter를 추가했습니다. (Ie8e8a)
버그 수정
- 여러 시간 데이터 소스 등록이 있는 표현식이 즉시 업데이트되지 않는 문제가 해결되었습니다. (I8e1a8)
- 차이 업데이트 중에 루트 요소를 중앙에 배치하는 버그가 수정되었습니다. (Ie48f7)
- 설정되지 않은 (또는 비어 있는) 레이아웃 제약 조건 값이 더 이상 무시되지 않습니다. (Ibc785)
- 레이아웃이 표시되고 파이프라인 노드가 초기화되는 사이의 지연 시간이 줄었습니다. (I38d4e)
버전 1.0
버전 1.0.0
2023년 8월 9일
androidx.wear.protolayout:protolayout-*:1.0.0이 출시되었습니다. 버전 1.0.0에 포함된 커밋을 확인하세요.
1.0.0의 주요 기능
ProtoLayout 라이브러리는 다양한 Wear OS 표시 경로에서 사용할 수 있는 레이아웃과 표현식을 만들기 위한 API를 도입합니다. 예를 들어 카드 라이브러리는 이러한 API를 사용하여 플랫폼 데이터 결합 (더 빠른 카드 데이터 업데이트)과 애니메이션을 지원합니다.
버전 1.0.0-rc01
2023년 7월 26일
androidx.wear.protolayout:protolayout-*:1.0.0-rc01이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.
- 타일에서
ProtoLayout로 이전하려면 여기의 안내를 따르세요.
API 변경사항
- Arc 요소에서
setLayoutConstraintForDynamicAnchorAngle및getLayoutConstraintForDynamicAnchorAngle메서드가 삭제되었습니다. 이러한 메서드는 실수로 추가되었으며 제공된 레이아웃에 영향을 미치지 않았습니다. (If7d01) ProtoLayout의 레이아웃이 가질 수 있는 최대 깊이를 중첩된LayoutElements30개로 제한했습니다. (I8a74b)
버그 수정
SpanText에DynamicColor이 설정된 경우 예외를 발생시키는 검사를 추가했습니다. (I0e5bc)DAILY_CALORIES데이터 소스 단위가 kcal로 명시됩니다. (Iaa785)
버전 1.0.0-beta01
2023년 6월 21일
androidx.wear.protolayout:protolayout-*:1.0.0-beta01이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
- 시간 바인딩 테스트를 위해 시계 설정 허용 (I05622)
API 변경사항
- 이제
PlatformDataReceiver.onData()및StateBuilders.Builder.addKeyToValueMapping은 안전하지 않은 제네릭이 아닌DynamicDataKey에서DynamicDataValue로의 타입 안전 매핑을 허용합니다. 즉, 이제DynamicDataValue이DynamicType로 입력됩니다.HEART_RATE_ACCURACY_X상수가 다른 Android 상수 위치와 일치하도록PlatformHealthSources의 루트로 이동했습니다. 이제 값 상수 대신HEART_RATE_ACCURACY_Xint 상수가DynamicHeartRateAccuracy.constant()및DynamicHeartRateAccuracy.dynamicDataValueOf()에서 직접 사용됩니다. (I82ff5) PlatformHealthSources.Constants클래스가 실수로 인스턴스화될 수 있었습니다. 이제 이 문제가 해결되었습니다. (Icb849)- 이제
PlatformTimeUpdateNotifier#setReceiver는Supplier함수와Executor대신Runnable를 수신하여 알림을 받습니다. (I9d938) PlatformTimeUpdateNotifier#setReceiver의 매개변수 유형을Callable에서Supplier로 변경했습니다. (I664bf)- 이제
CompactChip및TitleChip에서 아이콘 추가를 지원합니다. (I5a01e)
버그 수정
- 하나를 대신 사용하도록 동적 필드로 Prop 메시지 업데이트 (I81739)
- 설정자가 있는 오버로드의 설정자 구현 재사용 (Ied70c)
- 오버로드가 있는 setter에서 지문을 올바르게 기록 (I86ed2)
버전 1.0.0-alpha11
2023년 6월 7일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha11이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.
새로운 기능
- 심박수 정확성을 위한
PlatformDataKey가 추가되었습니다. (I7f9b8)
API 변경사항
StateBuilders#getIdToValueMapping의 이름을getKeyToValueMapping로 바꾸고 반환 유형을Map<<AppDataKey<?>,DynamicDataValue>로 변경합니다. (Iaa7ae)StateStore를 최종 클래스로 설정 (I408ca)TimeGateway인터페이스가protolayout-expression-pipeline라이브러리의PlatformTimeUpdateNotifier로 대체되었습니다.PlatformTimeUpdateNotifier는 시간 데이터 업데이트에 원하는 빈도를 제공합니다. (I60869)PlatformDataProvider에서register/unregisterForData의 이름을set/clearReceiver로 바꿈 (I14b02)- Material Text에서
getExcludeFontPadding의 이름이hasExcludeFontPadding로 변경되었습니다. (Iea01d) - 라벨을 완벽하게 정렬하기 위한 설정기가 모든 칩 구성요소에 추가되었습니다. 이제 모든 칩에 탭 가능한 최소 타겟이 적용됩니다. (I8ae92)
LayoutDefaults#BUTTON_MAX_NUMBER에서MAX_BUTTONS로 이름을 바꿨습니다. (I84788)DAILY_DISTANCE에서DAILY_DISTANCE_M로 이름이 변경되었습니다. (I4f758)
버그 수정
- 정적 값이 적용되는 이유를 명확히 하기 위해 Prop 유형 문서를 업데이트합니다. 정적 값이 제공되지 않은 경우 사용되는 기본값을 지정합니다. (I155aa)
PlatformDataKey네임스페이스는 Java 스타일 이름 지정을 따라야 합니다. (I47bda)
버전 1.0.0-alpha10
2023년 5월 24일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha10이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
새로운 기능
- 앱 푸시 상태 액세스를 위해
AppDataKey추가, 플랫폼 데이터 액세스를 위해PlatformDataKey추가,StateStore에 네임스페이스 지원 추가 (I7985e) DynamicBool의Equal및NotEqual작업 지원 (I6a0c1)
API 변경사항
FontStyles클래스가 이제 최종입니다. (Iaa2ea)LayoutElementBuilders#FontStyles가 지원 중단되었습니다.androidx.wear.protolayout.Typography를 사용하거나 직접FontStyle를 만드세요. (Ic929b)Action인터페이스에서Action#Builder중첩 인터페이스를 숨깁니다. 빌더 구현은 이미LoadAction및LaunchAction클래스에서 제공됩니다. (I1d70c)FloatProp와 함께DynamicFloat를 사용할 수 있도록 허용FloatProp은 레이아웃 변경 속성으로 사용되지 않으므로 레이아웃 제약 조건이 필요하지 않습니다. (I286ac)LoalAction및SetStateAction작업은 아직 제대로 지원되지 않으므로 삭제되었습니다. (I5d6a6)- 인라인 이미지 리소스에 ARGB_8888 형식 지원이 추가되었습니다. (I8a07c)
StateEntryValue를DynamicDataValue로 이름을 바꾸고DynamicDataKey를 사용하도록 상태 API 업데이트 (If1c01)- 메모리 사용량과 상태 업데이트 시간이 각
StateStore인스턴스에 대해 잘 포함되고 제어되도록StateStore에서 허용되는 항목 수를 제한하고 있습니다. 따라서 개발자는 지도에MAX_STATE_ENTRY_COUNT항목이 초과되지 않도록 해야 합니다. 그렇지 않으면StateStore를 만들거나 업데이트할 때IllegalStateException가 표시됩니다. (Ibadb3) OnLoadTrigger및OnConditionMetTrigger클래스를 숨기고OnConditionMetTrigger의 경우setTrigger의 이름을setCondition로 바꿉니다. (Ibf629)- 성능 및 호환성 문제로 인해
ProtoLayout렌더러는AnimatedVectorDrawable리소스의 전체 기능 집합을 지원하지 않습니다. 지원되는 세트를 정의할 수 있을 때까지 이러한 API는 실험용으로 표시됩니다. (Ic6daf) - 일일 이동 거리, 일일 칼로리, 일일 오른 층 수에 동적 유형 추가 플랫폼 상태 소스의 키가 이제
PlatformHealthSources.Keys(Ib7637) 아래에 있습니다. Easing.cubicBezier메서드가CubicBezierEasing.Builder을 대체합니다. 이에 따라EasingFunction클래스가 삭제되고 해당 클래스의 이징 상수는 이제Easing인터페이스에서 직접 액세스할 수 있습니다. 또한setInfiniteRepeatable이INFINITE_REPEATABLE_WITH_RESTART및INFINITE_REPEATABLE_WITH_REVERSE로 대체되었습니다 (Ib41e7).PlatformDataProvider를 구현하여 심박수와 일일 걸음수를 제공합니다.SensorGateway인터페이스가 공개 API에서 삭제되었습니다. (I55b84)PlatformDataProvider를 추가하고 표현식 파이프라인의 노드에서 제공자의 지원되는 키가 필요한 경우PlatformDataProvider에 등록하도록StateStore를 업데이트합니다. (Ib616a)SensorGateway는 더 이상 상태를 유지하지 않으므로 더 이상Closeable가 아닙니다. (I6b4f7)CircularProgressIndicator에서 진행 상황을 위해DynamicFloat와 함께FloatProp사용 허용 버전 1.2를 지원하는 렌더러에서 지원됩니다. 이전 렌더러는 제공된 경우staticValue로 대체되고, 그렇지 않으면 0으로 대체됩니다 (I0d91b).MultiButtonLayout상수가LayoutDefaults.MultiButtonLayoutDefaults클래스로 리팩터링되었습니다. 이제 레이아웃의 버튼 수에 따라 버튼 크기가 포함됩니다. (I13973)- Material Text에서
DynamicString와 함께StringProp사용 지원 버전 1.2를 지원하는 렌더러에서 지원됩니다. 이전 렌더러는 제공된 정적 값으로 대체됩니다.Text#getText반환 유형을String에서StringProp로 업데이트 (I7275b)
버전 1.0.0-alpha09
2023년 5월 10일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha09이 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
새로운 기능
- 실험용 확장 프로그램 레이아웃 요소를 추가했습니다. 이 기능은 기본적으로 사용할 수 없으며 레이아웃 요소를 이해할 수 있는 렌더러 확장 프로그램이 필요합니다. (I6581d)
ArcLine에StrokeCap지원이 추가되었습니다. (I94951)- 조건부 인스턴트 작업 지원이 추가되었습니다. (I489a7)
- 조건부 기간 작업에 대한 지원이 추가되었습니다. (Iab469)
- 초에서 기간을 생성하는 지원이 추가되었습니다. (Ib5fa1)
API 변경사항
enable/disablePlatformSource메서드가DynamicTypeEvaluator에서 삭제되었습니다. 호출자가 업데이트를 담당해야 합니다. (I78c6d)- 바인딩된 데이터 유형의 크기 제한 허용 (Ie2966)
protolayout-material에 동적 콘텐츠 설명 지원 추가 (I62c8e)- AnimationParameters의 기간 및 지연에 long 및
@IntRange사용 (I388b6)
버전 1.0.0-alpha08
2023년 4월 19일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha08이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
새로운 기능
- 연락처(
AndroidTextStyle)가LayoutElementBuilders그룹에 추가되었습니다. (I8d967) ProtoLayoutMaterial Text에서 글꼴 패딩을 제외하도록 설정하는 지원을 추가했습니다. (I17f5d)- 이제 인라인 이미지에 ARGB_8888이 지원됩니다. (I18c1e)
- 이제
DynamicColor에서onCondition작업을 지원합니다. (I10927)
API 변경사항
- 역방향 애니메이션의 맞춤 지속 시간 지원 (I3251f)
SemanticDescription수정자를 추가했습니다. 또한ContentDescription는 바인딩할 수 없습니다. (I3f1d)- 이제
DynamicBool.isFalse()메서드가DynamicBool.negate()로 대체되고DynamicBool.isTrue()가 삭제됩니다. 또한 NaNDynamicFloat값과DynamicInt32을DynamicFloat로 좁히면 이제 잘못된 동적 결과가 방출됩니다. (I6ac1e) - 이제 int 및 float 포매터가 빌더 패턴을 사용합니다. (Ieb213)
버그 수정
- 애니메이션 가능한 필드에서 대체 정적 값이 삭제되었습니다. (Ifcb01)
DynamicTypeValueReceiver#onPreUpdate를 삭제했습니다. (I2dc35)- 이제 동적 표현식의 문자열 길이가 제한됩니다. (I4c93)
- 이제 필요한 경우 Gradle 종속 항목이
implementation대신api로 올바르게 설정됩니다. (I40503)
버전 1.0.0-alpha07
2023년 4월 5일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
새로운 기능
API 변경사항
sensorGateway#registerSensorGatewayConsumer는 Consumer의 메서드 대신 데이터 유형을 매개변수로 사용합니다. (Icf314)ObservableStateStore에서StateStore로 이름을 바꿨습니다. (Ieb0e2)- 생성자 인수 대신
DynamicTypeEvaluator.Builder를 추가하여 이제 빈 저장소로 기본 설정되는ObservableStateStore를 비롯한 선택적 인수를 더 많이 허용했습니다. (I6f832) DynamicTypeEvaluator의 매개변수 순서를 리팩터링했습니다. (Ic1ba4)
버그 수정
- 플랫폼 센서 소스의 신호를 다운스트림 노드로 올바르게 전파 (I5a922)
버전 1.0.0-alpha06
2023년 3월 22일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.
새로운 기능
- 동적 표현식에서 심박수와 일일 걸음 수를 사용하기 위한 실험용 API를 추가했습니다 (Ifd711).
- 애니메이션의 역방향 및 순방향 지연 지원이 추가되었습니다. (Ic25f7)
- 테두리 및 배경에
DynamicColor지원 추가 DimensionBuilder의 유형에 동적 값 지원 추가tiles-material의 레이아웃과 구성요소가protolayout-material으로 이동되었습니다.
API 변경사항
- 연락처(
LoadActionListener)가ProtoLayoutViewInstance그룹에 추가되었습니다. (If7806)
버그 수정
FloatNodesTest를 추가했습니다. (Id7281)- 구조화된 비트맵을 로드할 수 없는 경우 렌더러 비정상 종료 수정
버전 1.0.0-alpha05
2023년 3월 8일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha05이 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
새로운 기능
- 실험용 '콘텐츠 업데이트' 애니메이션을
Modifiers객체에 추가했습니다. 이 애니메이션은 레이아웃 업데이트 중에 이 수정자가 있는 요소 또는 하위 요소 중 하나가 변경될 때마다 트리거됩니다. (bd03e5d)
API 변경사항
Repeatable에forwardRepeatDelayMillis및reverseRepeatDelayMillis을 추가했습니다. 또한AnimationSpec의delayMillis이름을startDelayMillis로 바꿨습니다. (Ifb266)- 이제
DynamicTypeEvaluator.bind메서드에서 Executor를 허용합니다. (I346ab) - 동적 유형이 바인딩된 후 평가를 트리거하기 위해
BoundDynamicType에startEvaluation메서드를 추가했습니다. (I19908)
버그 수정
- Animator 객체는 단일 요소의 후속 애니메이션에 재사용됩니다. (Ia3be9)
버전 1.0.0-alpha04
2023년 2월 22일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
- 이제 키가 삭제될 때도
ObservableStateStore가 리스너에게 알립니다. - 다양한 버전과 글꼴 설정에 따라 조건부로 레이아웃을 만드는 데 사용할 수 있는 렌더러 스키마 버전과 글꼴 크기를
DeviceParameters에 추가했습니다. DynamicInt32값에 애니메이션을 적용하는 지원이 추가되었습니다 (I05485).OnLoad및OnConditionalMet트리거가 추가되었습니다. 이를 사용하여 트리거를 지원하는 애니메이션을 시작할 수 있습니다.- 확장된 측정기준의 레이아웃 가중치와 래핑된 측정기준의 최소 크기가 추가되었습니다.
- 기간 및 인스턴트 동적 유형이 추가되었습니다. 이러한 함수는 동적 표현식에서 시간 인스턴트 또는 기간을 나타내는 데 사용할 수 있습니다.
AnimatedVectorDrawable및SeekableAnimatedVectorDrawable을 레이아웃 리소스로 지원하도록 추가했습니다.
API 변경사항
- 센서 데이터에는 API 29 이상이 필요합니다(I8099e).
- 활동 실행을 위한
launchAction도우미 메서드 두 개를 추가했습니다.
버그 수정
- 타일 애니메이션에서
set/getSpec을set/getAnimationSpec으로 이름 변경 (I3d74b)
버전 1.0.0-alpha03
2023년 2월 8일
androidx.wear.protolayout:protolayout-*:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- protolayout-express 라이브러리의 동적 유형에
toByteArray()및fromByteArray()를 추가했습니다. - protolayout-expression 라이브러리의 동적 유형에
toString()을 추가했습니다. - 동적 유형에 관한 평가 지원을 추가했습니다. protolayout-expression-pipeline 라이브러리의
DynamicTypeEvaluator클래스는 이전에 만든 동적 유형(DynamicString,DynamicFloat등)을 평가하고 업데이트된 값을 수신하는 데 사용할 수 있습니다. - 애니메이션을 재생할 수 없는 경우(평가자에 의해 사용 중지되었거나 실행 중인 애니메이션의 수가 설정 한도에 도달하여) 애니메이션 가능한 노드에 설정된 정적 값이 애니메이션을 대체하도록 사용됩니다.
버전 1.0.0-alpha02
2023년 1월 25일
androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02, androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
새로운 기능
androidx.wear.tiles:tiles의 레이아웃 빌더가androidx.wear.protolayout:protolayout으로 이동되었습니다.androidx.wear.tiles:tiles의 레이아웃 빌더는 다음번 알파 출시 버전 중 하나에서 지원 중단될 예정입니다.
버전 1.0.0-alpha01
2023년 1월 11일
androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01, androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 이 출시에서는 동적 변수에서 표현식을 만드는 새로운 라이브러리 'ProtoLayout Expression'을 도입했습니다.