wear protolayout
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
2025년 9월 24일 | 1.3.0 | - | - | 1.4.0-alpha01 |
종속 항목 선언
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-alpha01
2025년 9월 24일
androidx.wear.protolayout:protolayout-*:1.4.0-alpha01
이 출시되었습니다. 버전 1.4.0-alpha01에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- 타일이 표시될 때 요소가 서서히 나타나도록 하는
LayoutModifier
도우미 메서드를 추가했습니다. (I38531, b/390345969) - 자동 리소스 등록도 처리하는 M3
MaterialScope
개념을 지원하기 위해materialScopeWithResources
가 추가되었습니다. 내부에서 사용 시onTileResourceRequest
에 리소스를 수동으로 등록할 필요가 없는 이미지 (backgroundImage
avatarImage
및 아이콘)용 새로운 도우미 메서드를 추가했습니다. (I525bd, b/428692714) ProtoLayoutScope
및 자동 리소스 등록과 함께 사용하기 위한Image
및ImageResources
용ProtoLayout
Kotlin 도우미 (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) ProtoLayout
Material3MaterialScope
는 이제 범위를 벗어나지 않고 메서드에서 사용할 수 있도록Context
필드를 공개로 노출합니다. (I0e5cc, b/414559956)- 제목 시맨틱 API를 공개로 설정 (I75299, b/413653475)
Arc/ArcLine/ArcText/DashedArcLine
에서 사용할 수 있도록ARC_DIRECTION_*
상수를 공개로 노출 (I83959, b/427556439)
API 변경사항
onTileResourcesRequest
를 재정의할 필요가 없는Image.Builder(ProtoLayoutScope)
및Image.Builder.setImageResource
API에서 사용할 수 있는 새로운 자동 리소스 등록 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
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- 모든 구성요소는 모든 SDK 수준과
ProtoLayout
렌더러 버전에서 작동하며, 해당하는 경우 적절한 대체 기능을 제공합니다.
- 여기에는 다음 구성요소 및 기능에 더 많은 Compose와 유사한 API가 있는 Kotlin 전용
- 기본 ProtoLayout 요소를 위한 Kotlin 친화적 Compose 유사 API
- 수정자를 체인 함수 (
padding
,contentDescription
(clearSemantics
포함),background
,clip
,opacity
등)로 추가할 수 있는LayoutModifier
. 기존Modifiers
객체로 변환 가능 - 동적 필드와 제약 조건을 더 쉽게 사용할 수 있는 유형인
LayoutColors
및LayoutString
text
및fontStyle
AppDataKey
객체를 더 쉽게 만들 수 있도록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
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- 모든 구성요소는 모든 SDK 수준과 ProtoLayout 렌더러 버전에서 작동하며, 해당하는 경우 적절한 대체 값을 제공합니다.
- 여기에는 다음 구성요소 및 기능에 더 많은 Compose와 유사한 API가 있는 Kotlin 전용
- 기본 ProtoLayout 요소를 위한 Kotlin 친화적 Compose 유사 API
- 수정자를 체인 함수 (
padding
,contentDescription
(clearSemantics
포함),background
,clip
,opacity
등)로 추가할 수 있는LayoutModifier
. 기존Modifiers
객체로 변환 가능 - 동적 필드와 제약 조건을 더 쉽게 사용할 수 있는 유형인
LayoutColors
및LayoutString
text
및fontStyle
AppDataKey
객체를 더 쉽게 만들 수 있도록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) ProtoLayout
Material3 구성요소의 기본 동적 색상 테마 명확화 (Iff5f3)Typography.NUMERAL_*
서체는 더 이상 기본적으로 표 형식/고정폭이 아닙니다. 텍스트가 애니메이션으로 처리되는 경우FontSetting.tabularNum()
설정을 추가하는 것이 좋습니다. 다른 모든 경우에는 이 고정폭 옵션이 필요하지 않으며 사용하지 않으면 더 많은 문자를 사용할 수 있습니다. (Id3cd9)ProtoLayout
Material3 구성요소의 기본 동적 색상 테마 명확화 (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 Material3
textButton 구성요소를 추가했습니다. (Id680d)iconButton
ProtoLayout 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 수정자를 사용하는 요소의 탭 가능 영역을 최소
48dp
x48dp
로 확장하여 모든 터치 타겟의 접근성을 개선했습니다. - 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 잘 지원하고 타일 일관성을 개선하기 위해
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
수정자를 사용하는 요소의 탭 가능 영역을48dp
x48dp
이상으로 확장하여 모든 터치 대상의 접근성 개선- 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 잘 지원하고 타일 일관성을 개선하기 위해
setResponsiveContentInsetEnabled
를 추가하여PrimaryLayout
및EdgeContentLayout
를 개선했습니다. 빠른 수정으로 이러한 API 사용을 제안하는 린터 경고가 추가되었습니다. - Android 14의 비선형 글꼴 크기 조정을 위해 Material
Text
의 크기 조정/크기 조정 안 함 개선
API 변경사항
preferredFontFamilies
API를 사용하지 않는 것으로 암시되므로 기본 글꼴 패밀리 이름 (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.width
API를 업데이트하고 가중치 매개변수를 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)
- 다음 항목을 포함하도록
FontSetting
API가 확장되었습니다. - 사용해야 하는 글꼴 모음의 순서 목록을 지정할 수 있도록
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도보다 큰 길이의 더 나은 표현- 날짜-시간 형식은 동적 데이터 유형에 대해 다양한 시간대를 지원합니다.
- 잘린 텍스트를 처리하기 위한 텍스트 자동 크기 조절 및 줄임표 옵션 개선
- 스페이서는 선택적 가중치와 함께 확장된 크기를 지원합니다.
- 모든
ProtoLayout
API에 스키마 버전 요구사항 주석을 추가합니다. - 접근성 요구사항을 충족하기 위해
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
에 동적 값이 있는 경우가 포함됩니다.- 이제 모든
ProtoLayout
API에 스키마 버전 요구사항 주석이 있으며 최신 API를 호출하기 전에 버전을 확인할 수 있습니다. - 이제
Clickable
가 있는 모든 요소의 타겟 영역이 접근성 요구사항을 더 잘 지원하기 위해 렌더러에서 최소 48x48로 확장됩니다. - 다른 Material 구성요소 및 Compose 이니셔티브에 따라 이제 모든
Text
요소에서 기본적으로 글꼴 패딩이 사용 중지되었습니다. 또한AndroidTextStyle
및 관련 설정자가 공개 API에서 삭제되었습니다. 다음 버그가 수정되었습니다. - 다른 콘텐츠 앞에 배치할 수 있도록
EdgeContentLayout
에서 가장자리 콘텐츠를 배치하는 설정자를 추가했습니다. - 인식할 수 없는 열거형 값을 만날 때 일관되게 예외를 발생시킵니다.
- 표현식에서 잘못된 숫자 값 (NaN 또는 무한대)이 생성되거나
ArithmeticException
이 발생하면 표현식의 결과를 무효화합니다.
API 변경사항
- 생성자에서 색상 또는
ColorStops
를 허용하도록SweepGradient
API 업데이트 (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)ProtoLayout
API에 스키마 버전 요구사항 주석 추가 (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에
ArcLine
StrokeCap
Shadow
필드를 추가했습니다. (I830ec) - 확장할 스페이서의 너비 또는 높이를 지정할 수 있도록 API 확장 (I757ca)
- 상위 요소 내의 공간에 따라 텍스트 크기를 자동으로 조정하는 실험용 API가 추가되었습니다. (Ibbe63)
- 최소 클릭 가능 크기 지원 (I178e3)
StrokeCap
Shadow
의 렌더러 지원이 추가되었습니다. (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
에서 가장자리 콘텐츠를 배치하는 설정자를 추가했습니다. (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
의 레이아웃이 가질 수 있는 최대 깊이를 중첩된LayoutElements
30개로 제한했습니다. (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
의 루트로 이동했습니다. 이제 값 상수 대신DynamicHeartRateAccuracy.constant()
및DynamicHeartRateAccuracy.dynamicDataValueOf()
에서HEART_RATE_ACCURACY_X
int 상수가 직접 사용됩니다. (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
항목이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) ProtoLayout
Material 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'을 도입했습니다.