Wear Compose

  
웨어러블 전용 기기, 크기, 모양 및 탐색 제스처를 지원하는 기능을 제공하여 웨어러블 기기용 Jetpack Compose 애플리케이션을 작성합니다.
최근 업데이트 현재 안정화 버전 다음 버전 후보 베타 버전 알파 버전
2021년 9월 29일 - - - 1.0.0-alpha07

종속 항목 선언

Wear의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    implementation "androidx.wear.compose:compose-foundation:1.0.0-alpha07"

    // For Wear Material Design UX guidelines and specifications
    implementation "androidx.wear.compose:compose-material:1.0.0-alpha07"

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation "androidx.wear.compose:compose-navigation:1.0.0-alpha07"

    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

Kotlin

dependencies {
    implementation("androidx.wear.compose:compose-foundation:1.0.0-alpha07")

    // For Wear Material Design UX guidelines and specifications
    implementation("androidx.wear.compose:compose-material:1.0.0-alpha07")

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation("androidx.wear.compose:compose-navigation:1.0.0-alpha07")

    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 의견을 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.0.0

버전 1.0.0-alpha07

2021년 9월 29일

androidx.wear.compose:compose-foundation:1.0.0-alpha07, androidx.wear.compose:compose-material:1.0.0-alpha07, androidx.wear.compose:compose-navigation:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.

새로운 기능

  • 머티리얼에 CurvedText 구성요소를 추가했습니다. 이 구성요소를 통해 개발자는 원의 곡선(일반적으로 원형 화면의 가장자리)에 따라 구부러진 텍스트를 쉽게 쓸 수 있습니다. (I19593)

API 변경사항

  • TimeText용 테스트를 추가했습니다. (Idfead)
  • ArcPaddingValues를 인터페이스로 변환합니다. (Iecd4c)
  • SwipeToDismissBox에 애니메이션을 추가했습니다. (I9ad1b)
  • 표시할 백그라운드 콘텐츠가 없을 때 스와이프 동작을 사용 중지할 수 있도록 SwipeToDismissBox API에 hasBackground 매개변수를 추가했습니다. (I313d8)
  • 이제 rememberNavController()는 반환된 NavController에 추가될 선택적 Navigator 인스턴스 집합을 사용하여 선택적 탐색기(예: Accompanist 탐색 머티리얼의 탐색기)를 더 효율적으로 지원합니다. (I4619e)
  • navigation-common에서 NamedNavArgument를 참조하고 wear.compose.navigation에서 사본을 삭제합니다. (I43af6)

버그 수정

  • 소형 기기에서 CurvedRow 테스트 결함을 수정했습니다. (If7941)
  • 콘텐츠가 업데이트될 때 CurvedRow에서 있을 수 있는 깜박임을 수정했으며 곡선 행이 다시 측정되도록 합니다. (Ie4e06)
  • ChipDefaults.gradientBackgroundChipColors()가 UX 사양 변경에 따라 업데이트되었습니다. 이제 그라데이션이 MaterialTheme.colors.primary(알파 32.5%)로 시작되고 MaterialTheme.colors.surface(알파 75%) 배경에서 MaterialTheme.colors.surface(알파 0%)로 끝납니다. (Id1548)
  • 선택 상태일 때의 ToggleChips의 색상이 최신 Wear 머티리얼 디자인 UX 사양 가이드와 일치하도록 업데이트했습니다. 이제 선택 상태일 때 ToggleChips의 그라데이션 배경은 왼쪽 상단 MaterialTheme.color.surface(알파 0%)로 시작하고 MaterialTheme.color.surface(알파 75%) 배경에서 오른쪽 하단 MaterialTheme.color.primary(알파 32%)로 끝납니다. 이에 따라 ToggleChip의 선택 및 선택 해제 사이에 더 미묘한 차이가 발생합니다. (Idd40b)

버전 1.0.0-alpha06

2021년 9월 15일

androidx.wear.compose:compose-foundation:1.0.0-alpha06, androidx.wear.compose:compose-material:1.0.0-alpha06androidx.wear.compose:compose-navigation:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.

새로운 기능

  • Scaffold를 추가했습니다. 최상위 수준 애플리케이션 컴포저블로, 스크롤 또는 볼륨 등 PositionIndicators 위치를 처리하는 구조와 시간 및 애플리케이션 상태를 표시하는 화면 상단의 영역을 제공하고 스크롤 가능한 콘텐츠를 위해 화면 상단과 하단 가장자리를 흐리게 처리하는 비네트도 지원합니다. Scaffold의 기본 영역은 애플리케이션 콘텐츠가 배치되는 위치입니다. (I5e0bf)
  • Wear Compose용 TimeText 구현을 추가했습니다. (I5654c)

Wear Compose Navigation 라이브러리

  • Wear Compose Navigation 라이브러리의 첫 번째 버전을 추가했습니다. Wear Compose와 Androidx Navigation 라이브러리 간의 통합을 제공하고 애플리케이션의 대상으로 @Composable 함수 간에 이동하는 간단한 방법을 제공합니다.

  • 이번 최초 출시에서는 다음 기능을 제공합니다.

    • 탐색 그래프를 호스팅하고 스와이프 동작을 통해 뒤로 탐색을 제공하는 SwipeDismissableNavHost 컴포저블
    • 탐색 그래프 구성을 지원하는 NavGraphBuilder.composable 확장 프로그램
    • 상태 호이스팅을 허용하는 rememberSwipeDismissableNavController()
  • 두 화면을 만들고 화면 간에 이동하는 사용 예는 다음과 같습니다.

    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "start"
    ) {
        composable("start") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Button(onClick = { navController.navigate("next") }) {
                    Text("Go")
                }
            }
        }
        composable("next") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Text("Swipe to go back")
            }
        }
    }
    
  • Wear Compose Navigation은 별도의 라이브러리로 패키징됩니다. 따라서 자체 수동 탐색을 구현하는 간단한 WearCompose 애플리케이션이 Androidx Navigation 라이브러리에 종속될 필요가 없습니다.

API 변경사항

  • 백그라운드 및 콘텐츠의 키 ID를 설정하여 rememberSaveable을 지원하도록 SwipeDismissableNavHost를 업데이트했습니다. (I746fd)
  • LazyListState를 처리할 수 있는 PositionIndicator 어댑터를 추가했습니다. (I21b88)
  • rememberSaveable을 지원하도록 SwipeToDismissBox를 업데이트했습니다. (Ie728b)
  • ScalingLazyColumn에 reverseLayout 지원을 추가했습니다. 이를 통해 스크롤 및 레이아웃 방향을 반대로 할 수 있습니다. (I9e2fc)
  • performGestureGestureScope은 지원 중단되었으며 performTouchInputTouchInjectionScope으로 대체되었습니다. (Ia5f3f, b/190493367)
  • VignetteValue를 VignettePosition으로, VignetteValue.Both를 VignettePosition.TopAndBottom으로 이름을 바꿨습니다. (I57ad7)
  • 향후 ScalingLazyRow 구현을 추가할 경우에 대비하여 ScalingLazyColumnState를 ScalingLazyListState로, ScalingLazyColumnItemInfo를 ScalingLazyListItemInfo로, ScalingLazyColumnLayoutInfo를 ScalingLazyListLayoutInfo로, ScalingLazyColumnScope를 ScalingLazyListScope로 이름을 바꿨습니다. (I22734)

버그 수정

  • 아이콘과 라벨이 모두 제공되지 않으면 발생하는 내용을 설명하도록 CompactChip 문서를 업데이트했습니다. (I4ba88)
  • Wear 카드 구성요소를 일부 수정했습니다. (I6b3d0)
    1. 제목과 본문 사이의 TitleCard 간격을 8.dp에서 2.dp로 줄였습니다.
    2. TitleCard 헤더 글꼴을 본문에서 title3으로 변경했습니다.
    3. 카드 배경 그라데이션을 배경이 더 어두워 보이도록 변경했습니다.

버전 1.0.0-alpha05

2021년 9월 1일

androidx.wear.compose:compose-foundation:1.0.0-alpha05androidx.wear.compose:compose-material:1.0.0-alpha05가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

API 변경사항

  • ArcPaddingValues를 @Stable로 표시합니다. (I57deb)
  • 이제 ScalingLazyColumnState가 ScrollableState 인터페이스를 구현하여 개발자에게 구성요소를 스크롤할 수 있는 프로그래매틱 액세스 권한을 제공합니다. (I47dbc)

버그 수정

  • 칩과 ToggleChip에서 아이콘과 텍스트 사이 간격을 줄여 UX 사양 업데이트와 일치하도록 했습니다. (I83802)

버전 1.0.0-alpha04

2021년 8월 18일

androidx.wear.compose:compose-foundation:1.0.0-alpha04androidx.wear.compose:compose-material:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.

새로운 기능

  • 왼쪽에서 오른쪽으로 스와이프하여 닫기 동작을 지원하는 데 사용할 수 있는 SwipeToDismissBox와 스와이프할 수 있는 수정자를 추가했습니다. 탐색 구성요소와는 관계가 없지만 한 화면을 종료하고 다른 화면으로 이동하는 데 사용될 것으로 예상됩니다. 스와이프하여 닫기 데모에 통합 테스트를 추가했습니다. (I7bbaa)
  • 개발자가 크기 조정이 적용된 후 ScalingLazyColumn에 있는 항목의 실제 위치와 크기를 알 수 있도록 ScalingLazyColumnItemInfo 및 ScalingLazyColumnLayoutInfo 인터페이스를 ScalingLazyColumnState 클래스에 추가했습니다. '상단' 콘텐츠 패딩이 ScalingLazyColumn에 적용될 때 크기 조정이 계산되는 방식과 관련된 버그를 수정했습니다. (I27c07)

API 변경사항

  • CurvedTextStyle 클래스를 추가하여 곡선 텍스트 스타일 지정 옵션을 지정합니다. TextStyle과 비슷하지만 현재 색상, 글꼴 크기, 배경만 지원합니다. 향후 더 많은 스타일 지정 옵션이 추가될 예정입니다. (I96ac3)
  • 개발자가 크기 조정이 적용된 후 ScalingLazyColumn에 있는 항목의 실제 위치와 크기를 알 수 있도록 ScalingLazyColumnItemInfo 및 ScalingLazyColumnLayoutInfo 인터페이스를 ScalingLazyColumnState 클래스에 추가했습니다. '상단' 콘텐츠 패딩이 ScalingLazyColumn에 적용될 때 크기 조정이 계산되는 방식과 관련된 버그를 수정했습니다. (I27c07)
  • SwipeToDismissBox API의 일부인 SwipeDismissTarget enum에 @ExperimentalWearMaterialApi를 추가했습니다. (I48b5e)

버그 수정

  • SwipeToDismissBox의 테스트 자료를 추가했습니다. (I9febc)

버전 1.0.0-alpha03

2021년 8월 4일

androidx.wear.compose:compose-foundation:1.0.0-alpha03androidx.wear.compose:compose-material:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.

API 변경사항

  • 개발자가 원의 곡선(일반적으로 원형 화면의 가장자리)을 따라 쉽게 텍스트를 쓸 수 있는 CurvedText 구성요소를 추가했습니다. (Id1267)
  • 배경 이미지 위에 스크림이 그려져 있음을 명확히 하도록 CardDefaults.imageBackgroundPainter()CardDefaults.imageWithScrimBackgroundPainter()로 이름을 바꿨습니다. (I53206)
  • 구성요소의 가장자리를 향해 확장될 때 목록 콘텐츠의 크기가 축소되고 투명해지는 어안 뷰를 제공하는 Wear Material의 목록 구성요소를 제공하는 ScalingLazyColumn 구성요소를 추가했습니다. (I7070c)

버그 수정

  • UX 사양 업데이트에 따라 AppCard에서 appName 콘텐츠의 기본 색상을 변경했습니다. appName의 기본 색상은 이제 MaterialTheme.colors.onSurfaceVariant입니다. 또한 제목 슬롯의 누락된 매개변수 문서 설명을 추가했습니다. (Ic4ad1)

버전 1.0.0-alpha02

2021년 7월 21일

androidx.wear.compose:compose-foundation:1.0.0-alpha02androidx.wear.compose:compose-material:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • 호에 컴포저블을 배치하기 위해 새 클래스 CurvedRow를 추가했습니다. (I29941)
  • 애플리케이션에서 사용할 수 있는 새로운 유형의 카드(TitleCard)가 추가되었으며, 카드 배경으로 이미지를 사용하여 콘텐츠를 강조하기 위한 지원이 추가되었습니다. (I53b0f)

API 변경사항

  • CurvedRow에 방사형 정렬 지원을 추가합니다(행의 세로 정렬과 유사함). (Id9de5)
  • 호에 컴포저블을 배치하기 위해 새 클래스 CurvedRow를 추가했습니다. (I29941)
  • 애플리케이션에서 사용할 수 있는 새로운 유형의 카드(TitleCard)가 추가되었으며, 카드 배경으로 이미지를 사용하여 콘텐츠를 강조하기 위한 지원이 추가되었습니다. (I53b0f)
  • ToggleChipDefaults으로의 전환 아이콘(체크박스, 스위치, 라디오 버튼)을 추가하여 개발자가 ToggleChip 및 SplitToggleChips를 구성하기가 더 쉬워졌습니다. (I7b639)
  • 칩에 아이콘이 있는지 여부와 관계없이 일관되게 14.dp이므로(이전에는 아이콘이 존재하면 12.dp, 존재하지 않으면 14.dp였음) 칩에 대한 시작 및 종료 콘텐츠 패딩이 업데이트되었습니다. (I34c86)

버그 수정

  • CurvedRow 테스트를 추가합니다. (I93cdb)
  • Wear Compose 종속 항목을 Compose 1.0.0-rc01에 연결합니다. (Ie6bc9)
  • 이미지 비율을 유지하기 위해 이미지가 늘어나지 않고 잘리도록 카드 및 칩의 배경 이미지 페인팅 손동작을 변경했습니다. (I29b41)
  • Button과 ToggleButton을 위한 데모 및 통합 테스트를 더 많이 추가했습니다. (5e27ed2)
  • imageBackgroundChips의 콘텐츠 색상을 처리하기 위해 더 많은 칩 테스트가 추가되었습니다. (Ia9183)

버전 1.0.0-alpha01

2021년 7월 1일

androidx.wear.compose:compose-foundation:1.0.0-alpha01androidx.wear.compose:compose-material:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

Wear Compose는 Kotlin을 사용하는 Compose 기반 라이브러리로 WearOS 웨어러블 기기용 머티리얼 디자인의 확장인 Wear 머티리얼 디자인을 지원합니다. 이 첫 번째 알파 버전에는 다음의 초기 기능 구현이 포함되어 있습니다.

  • 머티리얼 테마 - 이 라이브러리에서 사용되는 구성요소 전체에 걸쳐 색상, 서체, 도형을 일관되게 구성합니다.
  • Chip, CompactChip - 칩은 경기장 모양이고 변형은 아이콘, 라벨 및 보조 라벨 콘텐츠를 사용할 수 있습니다.
  • - ToggleChip, SplitToggleChip - 라디오 버튼 또는 체크박스와 같은 두 가지 상태 전환 아이콘에 관한 슬롯을 포함하는 특수한 유형의 칩입니다. 또한, SplitToggleChip은 탭 가능한 영역이 두 개 있는데, 하나는 클릭 가능하고 하나는 전환 가능합니다.
  • Button, CompactButton - 버튼은 원형이며 아이콘에 관한 단일 콘텐츠 슬롯 또는 최소한의 텍스트(최대 3자)를 포함합니다.
  • ToggleButton - 작업을 사용 설정하거나 중지하는 버튼으로 아이콘에 관한 단일 슬롯 또는 최소한의 텍스트(최대 3자)를 포함합니다.
  • Card, AppCard - 모서리가 둥근 직사각형으로, 앱 아이콘, 시간, 제목, 본문 등의 콘텐츠에 관한 슬롯을 제공합니다.

향후 출시 버전에서는 Wear 머티리얼 디자인 선택 도구, 슬라이더, 목록, 페이지 표시기, 대화상자, 스크롤 RSB 표시기, 토스트 메시지 등을 위한 지원이 추가된 위젯 세트가 확장됩니다.

또한, 개발자가 웨어러블 앱/오버레이를 쉽게 빌드할 수 있도록 하는 것과 함께 곡선 레이아웃 및 텍스트와 같은 다른 웨어러블 전용 기능에 관련된 지원을 제공합니다.

Wear Compose Material은 웨어러블을 대상으로 하지만, Compose Material과 동일한 원칙으로 설계되었습니다. 웨어러블 기기용으로 빌드할 때는 Compose Material 라이브러리 대신 Wear Compose Material 라이브러리를 사용해야 합니다.

두 'Material' 라이브러리는 상호 배타적인 것으로 간주해야 하며 하나의 앱에서 혼합해서는 안 됩니다. 개발자가 종속 항목 중에 Compose Material 라이브러리가 포함된 것을 발견했다면 이는 a) Wear Compose Material 라이브러리에서 누락된 구성요소가 있거나(이 경우 필요한 구성요소를 Google에 알려야 함) b) 웨어러블 기기에 권장하지 않는 구성요소를 사용하고 있는 것입니다.