wear protolayout

  
이 라이브러리를 사용하면 원격 노출 영역에서 렌더링되고 평가될 UI 레이아웃과 비 UI 표현식을 정의할 수 있습니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
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 및 자동 리소스 등록과 함께 사용하기 위한 ImageImageResourcesProtoLayout 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 Material3 MaterialScope는 이제 범위를 벗어나지 않고 메서드에서 사용할 수 있도록 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)

버그 수정

버전 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 렌더러 버전에서 작동하며, 해당하는 경우 적절한 대체 기능을 제공합니다.
  • 기본 ProtoLayout 요소를 위한 Kotlin 친화적 Compose 유사 API
    • 수정자를 체인 함수 (padding, contentDescription (clearSemantics 포함), background, clip, opacity 등)로 추가할 수 있는 LayoutModifier. 기존 Modifiers 객체로 변환 가능
    • 동적 필드와 제약 조건을 더 쉽게 사용할 수 있는 유형인 LayoutColorsLayoutString
    • textfontStyle
    • AppDataKey 객체를 더 쉽게 만들 수 있도록 DynamicDataMapintAppDataKey와 같은 팩토리 메서드를 포함한 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 렌더러 버전에서 작동하며, 해당하는 경우 적절한 대체 값을 제공합니다.
  • 기본 ProtoLayout 요소를 위한 Kotlin 친화적 Compose 유사 API
    • 수정자를 체인 함수 (padding, contentDescription (clearSemantics 포함), background, clip, opacity 등)로 추가할 수 있는 LayoutModifier. 기존 Modifiers 객체로 변환 가능
    • 동적 필드와 제약 조건을 더 쉽게 사용할 수 있는 유형인 LayoutColorsLayoutString
    • textfontStyle
    • AppDataKey 객체를 더 쉽게 만들 수 있도록 DynamicDataMapintAppDataKey와 같은 팩토리 메서드를 포함한 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로 변경하고 새로운 실험용 API PlatformEventSources.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에는 이 커밋이 포함되어 있습니다.

새로운 기능

  • enterTransitionexitTransition용 실험용 수정자를 추가했습니다. (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 ColorSchemeerrorDim를 추가했습니다. (Ia17bb)
  • 이 설정이 제공되지 않는 일부 플랫폼에서 트리거된 전역 reducemotion 설정에 액세스할 때 발생하는 비정상 종료에 대한 가드를 추가했습니다. (I01e2c)

API 변경사항

  • addKeyToValueMapping의 이름이 addToStateMap로 변경되고 DynamicDataMap.put 메서드가 중복되어 삭제되었습니다. (Ibe9dd)
  • 이제 Material3 서체는 이 축을 지원하는 시스템 글꼴의 라운드 변수 축을 지원합니다. ProtoLayout FontSetting는 이 축을 지원하는 글꼴의 둥근 정도 축을 지원합니다. (I33eb5)
  • Material3 텍스트 메서드에서 multilineAlignment의 이름을 alignment로 변경했습니다. (I2b66b)
  • 원형 진행 상태 표시기를 Box 유형으로 업데이트하고 constructGraphicmainContent를 Box 유형으로 지정 (I5a3dc)
  • 그래프에서 원형 진행 상태 표시기 사용 지원 개선 (I039db)

버그 수정

  • ColorStop의 동적 값과 SweepGradient의 시작/종료 각도도 허용 (I0146d)
  • Docs 수정사항 (I4a63a)
  • weight 확장 측정기준이 지원되지 않는 경우 (예: API 33 미만) 대체 기능을 제공하도록 Material 3 구성요소 (graphicCardavatarButton)가 업데이트되었습니다. 렌더러에서 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.ktLayoutColor.kt의 최상위 메서드 이름을 Java 친화적인 이름으로 변경했습니다. (I7aff0)
  • Material3에서 ProtoLayout이 아닌 서체를 삭제했습니다. (Idd9ae)
  • Material3의 *Colors 클래스에 있는 필드에 접미사 Color 추가 (I2d114)

버그 수정

  • 비대칭 모서리 지원이 없는 이전 렌더러를 위한 EdgeButton 대체 구현 추가 (I63364)
  • 이전 렌더러를 사용하여 원형 진행률 표시기의 대체 구현 추가 (I0f134)

버전 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 iconDataCardtextDataCard 구성요소를 추가했습니다. (I4e1e4)
  • ProtoLayout Material3 appCard 구성요소를 추가했습니다. (Id4c57)
  • EdgeButtonColorsButtonColors로 추상화 (I83624)
  • ProtoLayout Material3 titleCard 구성요소를 추가했습니다. (I2dc72)

API 변경사항

  • 이제 ProtoLayout Material3 API는 정적 텍스트와 동적 텍스트를 모두 지원하기 위해 LayoutString를 허용합니다. (I9c24a)

버그 수정

  • DashedArcLine를 인플레이션하기 위한 렌더러 구현 추가 (I0c700)
  • ArcSpacer가 dp 길이를 가져올 수 있도록 렌더러 변경 (I1437b)

버전 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-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를 갖도록 업데이트되었습니다.
  • 추가 수정자 지원:
    • 애니메이션 유무와 관계없이 변환, 회전, 크기 조정을 제공하는 변환 수정자입니다.
    • 각 모서리 반지름에 다른 값 (가로 및 세로)을 지정합니다.
  • Clickable 수정자를 사용하는 요소의 탭 가능 영역을 최소 48dpx48dp로 확장하여 모든 터치 타겟의 접근성을 개선했습니다.
  • 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 잘 지원하고 타일 일관성을 개선하기 위해 setResponsiveContentInsetEnabled를 추가하여 PrimaryLayoutEdgeContentLayout를 개선했습니다.
  • 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.weightFontSetting.width과 같은 다양한 글꼴 변형 설정
    • 모든 숫자 문자의 너비를 동일하게 설정 - 표 형식 숫자 (FontSetting.tnum 글꼴 기능 설정)
    • 사용할 기본 글꼴 모음 이름을 지정하여 곧 출시될 플렉스 글꼴을 지원하도록 글꼴 선택 API가 개선되었습니다.
  • 비대칭 모서리가 있는 요소를 빌드할 수 있도록 별도의 가로 및 세로 값으로 각 CornerRadius를 지정할 수 있도록 Corner 수정자를 확장했습니다.
  • LayoutElement의 변환, 회전, 크기 조정을 제공하는 새로운 Transformation 수정자를 추가했습니다. 동적 값을 사용하여 이러한 변환에 애니메이션을 적용할 수 있습니다.
  • 다양한 레이아웃 방향 (예: LTR 및 RTL)을 더 잘 지원하기 위해 모든 호 요소 (Arc, ArcLine, ArcText)에 Clockwise, CounterClockwise, Normal 옵션이 있는 setArcDirection를 추가했습니다.
  • Clickable 수정자를 사용하는 요소의 탭 가능 영역을 48dpx48dp 이상으로 확장하여 모든 터치 대상의 접근성 개선
  • 다양한 화면 크기에서 이러한 레이아웃의 반응형 동작을 더 잘 지원하고 타일 일관성을 개선하기 위해 setResponsiveContentInsetEnabled를 추가하여 PrimaryLayoutEdgeContentLayout를 개선했습니다. 빠른 수정으로 이러한 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.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에 글꼴 모음 API가 추가되었습니다. (Iba9f5)
  • PrimaryLayoutEdgeContentLayout 모두에 적용할 수 있으므로 처음에는 '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가 포함되어 있습니다.

  • 이제 ArcLineSweepGradientBrush를 추가하고 기존 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 및 관련 설정자가 공개 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이 이제 지원 중단됩니다. 동작이 매우 유사한 새 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)
  • 확장할 스페이서의 너비 또는 높이를 지정할 수 있도록 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 요소에서 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로 입력됩니다. HEART_RATE_ACCURACY_X 상수가 다른 Android 상수 위치와 일치하도록 PlatformHealthSources의 루트로 이동했습니다. 이제 값 상수 대신 DynamicHeartRateAccuracy.constant()DynamicHeartRateAccuracy.dynamicDataValueOf()에서 HEART_RATE_ACCURACY_X int 상수가 직접 사용됩니다. (I82ff5)
  • PlatformHealthSources.Constants 클래스가 실수로 인스턴스화될 수 있었습니다. 이제 이 문제가 해결되었습니다. (Icb849)
  • 이제 PlatformTimeUpdateNotifier#setReceiverSupplier 함수와 Executor 대신 Runnable를 수신하여 알림을 받습니다. (I9d938)
  • PlatformTimeUpdateNotifier#setReceiver의 매개변수 유형을 Callable에서 Supplier로 변경했습니다. (I664bf)
  • 이제 CompactChipTitleChip에서 아이콘 추가를 지원합니다. (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)
  • 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)
  • StateEntryValueDynamicDataValue로 이름을 바꾸고 DynamicDataKey를 사용하도록 상태 API 업데이트 (If1c01)
  • 메모리 사용량과 상태 업데이트 시간이 각 StateStore 인스턴스에 대해 잘 포함되고 제어되도록 StateStore에서 허용되는 항목 수를 제한하고 있습니다. 따라서 개발자는 지도에 MAX_STATE_ENTRY_COUNT 항목이 MAX_STATE_ENTRY_COUNT개 이상 없어야 합니다. 그렇지 않으면 StateStore를 만들거나 업데이트할 때 IllegalStateException가 표시됩니다. (Ibadb3)
  • OnLoadTriggerOnConditionMetTrigger 클래스를 숨기고 OnConditionMetTrigger의 경우 setTrigger의 이름을 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를 추가하고 표현식 파이프라인의 노드에서 제공자의 지원되는 키가 필요한 경우 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)
  • ArcLineStrokeCap 지원이 추가되었습니다. (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()가 삭제됩니다. 또한 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 변경사항

  • RepeatableforwardRepeatDelayMillisreverseRepeatDelayMillis을 추가했습니다. 또한 AnimationSpecdelayMillis 이름을 startDelayMillis로 바꿨습니다. (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 도우미 메서드 두 개를 추가했습니다.

버그 수정

  • 타일 애니메이션에서 set/getSpecset/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'을 도입했습니다.