wear protolayout
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
2024년 12월 11일 | 1.2.1 | - | - | 1.3.0-alpha05 |
종속 항목 선언
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-alpha04" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.3
버전 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, -Xtype-enhancement-improvements-strict-mode
(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가 추가되었습니다.- 추가 수정자 지원:
- 애니메이션 유무와 관계없이 변환, 회전, 크기 조정을 제공하는 변환 수정자입니다.
- 각 모서리 반경에 서로 다른 값 (가로 및 세로)을 지정합니다.
- 클릭 가능 수정자를 사용하는 요소의 탭 가능한 영역을
48dp
x48dp
이상으로 확장하여 모든 터치 영역의 접근성을 개선했습니다. setResponsiveContentInsetEnabled
를 추가하여 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 효과적으로 지원하고 카드 일관성을 개선하여PrimaryLayout
및EdgeContentLayout
를 개선했습니다.- Android 14의 비선형 글꼴 크기 조정에 맞게 Material 텍스트의 크기 조정/비조정 기능을 개선했습니다.
- 모든 원호 요소의 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 Chip을 수정했습니다. (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
글꼴 기능 설정) - 향후 출시될 Flex 글꼴을 지원하도록 글꼴 선택 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 변경사항
- 기본 글꼴 모음 이름 (
DEFAULT_SYSTEM_FONT
)은preferredFontFamilies
API를 사용하지 않으면 암시적으로 삭제됩니다. (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
const가 빌더 클래스가 아닌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
에 font family API를 추가했습니다. (Iba9f5) - Material의
LayoutDefaults
에서 콘텐츠와 보조 라벨 사이의 공간 높이에 관한 상수의 이름을 변경했습니다. 처음에는PrimaryLayout
및EdgeContentLayout
에 모두 적용할 수 있으므로 더 일반적이 되도록 'Edge content'라는 접두사가 추가되었습니다. (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 텍스트는 확장 가능한 크기 (사용자 글꼴 크기가 변경될 때 커짐)를 사용할지 여부를 설정할 수 있습니다. (Ibc849)
- 콘텐츠 설명을
TitleChip
로 설정하는 옵션이 추가되었습니다. (I5d21f) - 아이콘으로만 올바르게 작동하도록
CompactChip
를 수정하고 이 옵션을 허용하도록 API를 업데이트했습니다. (I6589e)
버그 수정
- 초기화 중에 플랫폼 데이터가 중복될 수 있는 문제를 수정했습니다. (Iba0fd)
- 노드 비용을 검색하는 새 getter를
DynamicDataNode
에 도입합니다. 이 비용은 동적 노드 할당량을 획득할 때 사용됩니다. 현재 고정 값이 있는 노드의 비용은 0이고 다른 모든 노드의 비용은 1입니다. (Ia33e1) NO_OP_QUOTA_MANAGER
에서 계산 로직을 삭제합니다. (Ib50b8)PrimaryLayout
가setResponsiveContentInsetEnabled
없이 사용될 때 경고를 보고하고 빠른 수정을 제공하는 린트 규칙이 추가되었습니다. (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
setter로 업데이트되어 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)- RTL 레이아웃에서
CircularProgressIndicator
가 수정되었습니다. 이제 모든 케이스에서 시계 방향으로 진행됩니다. (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
및 관련 setter가 공개 API에서 삭제되었습니다. 다음과 같은 버그 수정사항이 포함되어 있습니다. - 다른 콘텐츠 앞에 배치할 수 있도록
EdgeContentLayout
에 가장자리 콘텐츠를 배치하는 setter를 추가했습니다. - 인식할 수 없는 enum 값이 발생할 때 일관되게 예외가 발생합니다.
- 표현식이 잘못된 숫자 값 (NaN 또는 무한)을 산출하거나
ArithmeticException
을 발생시키면 표현식의 결과를 무효화합니다.
API 변경사항
- 생성자에서 색상 또는
ColorStops
를 허용하도록SweepGradient
API를 업데이트했습니다. (I6676f)
버그 수정
- 원호 요소가 그려지는 방향을 설정하기 위한 제한된 API 및 렌더러 지원을 추가했습니다. (Idef5a)
- 지정되지 않은 경우
FloatToInt32Node
에서RoundMode
의 기본값은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) - 확장할 Spacer의 너비 또는 높이를 지정할 수 있도록 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)
- 시간대별 날짜/시간 형식 지정에 필요한 protos 및 Java 래퍼를 추가했습니다. (I97126)
DynamicDataValue
에 저장된 값을 다시 읽기 위한 getter를 추가했습니다. (Ie6cea)- 다른 콘텐츠 앞에 배치할 수 있도록
EdgeContentLayout
에 가장자리 콘텐츠를 배치하는 setter를 추가했습니다. (Ie8e8a)
버그 수정
- 시간 데이터 소스 등록이 여러 개인 표현식이 즉시 업데이트되지 않는 문제가 수정되었습니다. (I8e1a8)
- diff 업데이트 중에 루트 요소를 가운데로 배치하는 버그를 수정했습니다. (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 변경사항
- 원 요소에서
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
로 입력됩니다. 다른 Android 상수 배치와 일치하도록HEART_RATE_ACCURACY_X
상수가PlatformHealthSources
의 루트로 이동했습니다. 이제HEART_RATE_ACCURACY_X
int 상수가 값 상수 대신DynamicHeartRateAccuracy.constant()
및DynamicHeartRateAccuracy.dynamicDataValueOf()
에서 직접 사용됩니다. (I82ff5) PlatformHealthSources.Constants
클래스가 실수로 인스턴스화 가능했습니다. 이 문제는 이제 해결되었습니다. (Icb849)- 이제
PlatformTimeUpdateNotifier#setReceiver
는 알림을 전송할Supplier
함수와Executor
대신Runnable
를 수신합니다. (I9d938) PlatformTimeUpdateNotifier#setReceiver
의 매개변수 유형을Callable
에서Supplier
로 변경했습니다. (I664bf)- 이제
CompactChip
및TitleChip
에서 아이콘 추가를 지원합니다. (I5a01e)
버그 수정
- 대신 oneof를 사용하도록 동적 필드가 있는 Prop 메시지를 업데이트했습니다. (I81739)
- setter가 있는 오버로드에 setter 구현을 재사용합니다. (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)- 시간 데이터 업데이트에 원하는 빈도를 제공하는
protolayout-expression-pipeline
라이브러리에서TimeGateway
인터페이스가PlatformTimeUpdateNotifier
로 대체되었습니다. (I60869) PlatformDataProvider
의register
/unregisterForData
를set
/clearReceiver
로 이름을 바꿉니다. (I14b02)- Material 텍스트에서
getExcludeFontPadding
의 이름이hasExcludeFontPadding
로 변경되었습니다. (Iea01d) - 라벨을 완벽하게 정렬하기 위한 setter가 모든 칩 구성요소에 추가되었습니다. 이제 모든 칩에 최소 탭 가능한 타겟이 적용됩니다. (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
를 추가하고StateStore
를 업데이트하여PlatformDataProvider
에 등록합니다. (Ib616a) SensorGateway
는 더 이상 상태를 유지하지 않으므로 더 이상Closeable
가 아닙니다. (I6b4f7)CircularProgressIndicator
의 진행률을 위해DynamicFloat
와 함께FloatProp
를 사용하도록 허용합니다. 버전 1.2를 지원하는 렌더러에서 지원됩니다. 이전 렌더러는 제공된 경우staticValue
로 대체하고, 제공되지 않은 경우에는 0으로 대체합니다. (I0d91b)MultiButtonLayout
상수가LayoutDefaults.MultiButtonLayoutDefaults
클래스로 리팩터링되었으며, 이제 이 클래스에는 레이아웃의 버튼 수에 따라 버튼 크기에 관한 상수가 포함됩니다. (I13973)- Material 텍스트에서
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의 duration 및 delay에 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 텍스트에서 글꼴 패딩 제외 설정을 지원합니다. (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 변경사항
forwardRepeatDelayMillis
및reverseRepeatDelayMillis
을Repeatable
에 추가했습니다. 또한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
도우미 메서드 2개를 추가했습니다.
버그 수정
- 카드 애니메이션에서
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'을 도입했습니다.