wear protolayout

  
이 라이브러리를 사용하면 원격 노출 영역에서 렌더링되고 평가될 UI 레이아웃과 비 UI 표현식을 정의할 수 있습니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 11월 13일 1.2.1 - - 1.3.0-alpha04

종속 항목 선언

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-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-protoandroidx.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-protoandroidx.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가 추가되었습니다.
  • 추가 수정자 지원:
    • 애니메이션 유무와 관계없이 변환, 회전, 크기 조정을 제공하는 변환 수정자입니다.
    • 각 모서리 반경에 서로 다른 값 (가로 및 세로)을 지정합니다.
  • 클릭 가능 수정자를 사용하는 요소의 탭 가능한 영역을 48dpx48dp 이상으로 확장하여 모든 터치 영역의 접근성을 개선했습니다.
  • setResponsiveContentInsetEnabled를 추가하여 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 효과적으로 지원하고 카드 일관성을 개선하여 PrimaryLayoutEdgeContentLayout를 개선했습니다.
  • 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.weightFontSetting.width와 같은 다양한 글꼴 변형 설정
    • 모든 숫자 문자에 동일한 너비 설정 - 표 형식 숫자 (FontSetting.tnum 글꼴 기능 설정)
    • 향후 출시될 Flex 글꼴을 지원하도록 글꼴 선택 API를 개선하여 사용하려는 기본 글꼴 모음 이름을 지정할 수 있습니다.
  • 비대칭 모서리가 있는 요소를 빌드할 수 있도록 각 CornerRadius를 별도의 가로 및 세로 값으로 지정할 수 있도록 Corner 수정자를 확장했습니다.
  • LayoutElement의 변환, 회전, 크기 조정을 제공하는 새로운 Transformation 수정자를 추가했습니다. 이러한 변환은 동적 값을 사용하여 애니메이션할 수 있습니다.
  • 다양한 레이아웃 방향 (예: LTR 및 RTL)을 더 효과적으로 지원하기 위해 모든 원호 요소 (Arc, ArcLine, ArcText)에 Clockwise, CounterClockwise, Normal 옵션이 있는 setArcDirection를 추가했습니다.
  • Clickable 수정자를 사용하는 요소의 터치 가능한 영역을 최소 48dpx48dp로 확장하여 모든 터치 영역의 접근성을 개선했습니다.
  • setResponsiveContentInsetEnabled를 추가하여 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 효과적으로 지원하고 카드 일관성을 개선하여 PrimaryLayoutEdgeContentLayout를 개선했습니다. 빠른 수정과 함께 이러한 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.weightFontSetting.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를 확장했습니다.
    • 글꼴을 표 형식으로 설정하는 등 글꼴 기능 설정 (If12b7)
    • 글꼴 변형 설정(예: 가변 글꼴의 맞춤 너비 설정) (I2b36d)
  • 사용할 글꼴 모음의 순서 목록을 지정할 수 있도록 FontStyle에 font family API를 추가했습니다. (Iba9f5)
  • Material의 LayoutDefaults에서 콘텐츠와 보조 라벨 사이의 공간 높이에 관한 상수의 이름을 변경했습니다. 처음에는 PrimaryLayoutEdgeContentLayout에 모두 적용할 수 있으므로 더 일반적이 되도록 '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 Text는 확장 가능한 크기 (사용자 글꼴 크기가 변경될 때 커짐)를 사용할지 여부를 설정할 수 있습니다. (Ibc849)
  • 콘텐츠 설명을 TitleChip로 설정하는 옵션이 추가되었습니다. (I5d21f)
  • 아이콘으로만 올바르게 작동하도록 CompactChip를 수정하고 이 옵션을 허용하도록 API를 업데이트했습니다. (I6589e)

버그 수정

  • 초기화 중에 플랫폼 데이터가 중복될 수 있는 문제가 수정되었습니다. (Iba0fd)
  • 노드 비용을 검색하는 새 getter를 DynamicDataNode에 도입합니다. 이 비용은 동적 노드 할당량을 획득할 때 사용됩니다. 현재 고정 값이 있는 노드는 비용이 0이고 다른 모든 노드는 비용이 1입니다. (Ia33e1)
  • NO_OP_QUOTA_MANAGER에서 계산 로직을 삭제합니다. (Ib50b8)
  • PrimaryLayoutsetResponsiveContentInsetEnabled 없이 사용될 때 경고를 보고하고 빠른 수정을 제공하는 린트 규칙이 추가되었습니다. (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가 포함되어 있습니다.

  • 이제 ArcLineSweepGradient와 함께 Brush를 추가하여 그라데이션을 지원하고, 기존 StrokeCapShadow를 추가하여 360도보다 큰 길이를 더 잘 표현하기 위해 캡에 그림자를 적용합니다.
  • DynamicInstant는 시간대별 날짜-시간 형식을 지원합니다. DynamicInstantDynamicDuration는 상태 또는 플랫폼 데이터 유형으로 사용할 수 있습니다.
  • 텍스트 크기의 자동 크기 조절 기능으로, 여러 크기를 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이 지원 중단되었습니다. 매우 유사한 동작을 하는 새 API TEXT_OVERFLOW_ELLIPSIZE를 사용하세요. (I822d8)
  • 다른 Material 구성요소 및 Compose 이니셔티브에 따라 이제 모든 텍스트 요소에서 기본적으로 글꼴 패딩이 사용 중지되었습니다. 또한 AndroidTextStyle 및 관련 setter가 공개 API에서 삭제되었습니다. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Modifier.hiddenModifier.visible로 대체되었습니다. (I56902)
  • 이제 FontStyle#setSizesSpProp 인수 대신 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)
  • DynamicInstantDynamicDuration는 상태 또는 플랫폼 데이터 유형으로 사용할 수 있습니다. (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)
  • 차이점 업데이트 중에 루트 요소를 가운데로 배치하는 버그를 수정했습니다. (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 변경사항

  • 원 요소에서 setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle 메서드가 삭제되었습니다. 이러한 메서드는 실수로 추가되었으며 제공된 레이아웃에 영향을 미치지 않았습니다. (If7d01)
  • ProtoLayout 레이아웃의 최대 깊이를 중첩된 LayoutElements 30개로 제한했습니다. (I8a74b)

버그 수정

  • SpanTextDynamicColor이 설정된 경우 발생하는 검사를 추가했습니다. (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로의 유형 안전 매핑을 허용합니다. 즉, 이제 DynamicDataValueDynamicType로 입력됩니다. 다른 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)
  • 이제 CompactChipTitleChip에서 아이콘 추가를 지원합니다. (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)
  • PlatformDataProviderregister/unregisterForDataset/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)
  • DynamicBoolEqualNotEqual 작업을 지원합니다. (I6a0c1)

API 변경사항

  • FontStyles 클래스가 이제 최종입니다. (Iaa2ea)
  • LayoutElementBuilders#FontStyles가 지원 중단되었습니다. androidx.wear.protolayout.Typography를 사용하거나 자체 FontStyle를 만드세요. (Ic929b)
  • Action 인터페이스에서 Action#Builder 중첩 인터페이스를 숨깁니다. 빌더의 구현은 이미 LoadActionLaunchAction 클래스에서 제공합니다. (I1d70c)
  • FloatProp와 함께 DynamicFloat를 사용하도록 허용합니다. FloatProp는 레이아웃 변경 속성으로 사용되지 않으므로 레이아웃 제약조건이 필요하지 않습니다. (I286ac)
  • LoalActionSetStateAction 작업은 아직 실제로 지원되지 않았으므로 삭제되었습니다. (I5d6a6)
  • 인라인 이미지 리소스에 ARGB_8888 형식 지원을 추가했습니다. (I8a07c)
  • StateEntryValue의 이름을 DynamicDataValue로 바꾸고 DynamicDataKey를 사용하도록 상태 API를 업데이트했습니다. (If1c01)
  • StateStore의 각 인스턴스에서 메모리 사용량과 상태 업데이트 시간이 잘 포함되고 제어되도록 StateStore에서 허용되는 항목 수를 제한하고 있습니다. 따라서 개발자는 지도에 MAX_STATE_ENTRY_COUNT개가 넘는 항목이 없어야 합니다. 그러지 않으면 StateStore를 만들거나 업데이트할 때 IllegalStateException이 발생합니다. (Ibadb3)
  • OnLoadTriggerOnConditionMetTrigger 클래스를 숨기고 OnConditionMetTriggersetTrigger 이름을 setCondition로 바꿉니다. (Ibf629)
  • 성능 및 호환성 문제로 인해 ProtoLayout 렌더러는 AnimatedVectorDrawable 리소스의 모든 기능을 지원하지 않습니다. 지원되는 세트를 정의할 수 있을 때까지 이러한 API는 실험용으로 표시됩니다. (Ic6daf)
  • 일일 거리, 일일 칼로리, 일일 층수의 동적 유형을 추가했습니다. 플랫폼 상태 소스의 키가 이제 PlatformHealthSources.Keys에 있습니다. (Ib7637)
  • Easing.cubicBezier 메서드는 CubicBezierEasing.Builder를 대체합니다. 이렇게 하면 EasingFunction 클래스가 삭제되고 이제 해당 클래스의 이중 값 상수는 Easing 인터페이스에서 직접 액세스할 수 있습니다. 또한 setInfiniteRepeatableINFINITE_REPEATABLE_WITH_RESTARTINFINITE_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)
  • ArcLineStrokeCap 지원을 추가했습니다. (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()가 삭제되었습니다. 또한 NaN DynamicFloat 값과 DynamicInt32DynamicFloat로 좁히는 작업이 이제 잘못된 동적 결과를 내보냅니다. (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에 포함된 커밋을 확인하세요.

새로운 기능

  • StringProp에 동적 값 지원을 추가했습니다. (I04342)
  • 바인딩 가능한 레이아웃 요소 표시 (Ia110b)

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 변경사항

  • forwardRepeatDelayMillisreverseRepeatDelayMillisRepeatable에 추가했습니다. 또한 AnimationSpecdelayMillisstartDelayMillis로 이름을 바꿨습니다. (Ifb266)
  • 이제 DynamicTypeEvaluator.bind 메서드가 Executor를 허용합니다. (I346ab)
  • 동적 유형이 바인딩된 후 평가를 트리거하도록 BoundDynamicTypestartEvaluation 메서드를 추가했습니다. (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)
  • OnLoadOnConditionalMet 트리거를 추가했습니다. 트리거를 지원하는 애니메이션을 시작하는 데 사용할 수 있습니다.
  • 확장된 크기의 레이아웃 가중치와 래핑된 크기의 최소 크기를 추가했습니다.
  • 시간 및 인스턴트 동적 유형이 추가되었습니다. 이러한 표현식을 사용하면 동적 표현식에서 시간 순간이나 시간을 나타낼 수 있습니다.
  • AnimatedVectorDrawableSeekableAnimatedVectorDrawable를 레이아웃 리소스로 지원합니다.

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'을 도입했습니다.