Compose Material 3

차세대 Material Design인 Material Design 3 구성요소로 Jetpack Compose UI를 빌드합니다. Material 3은 업데이트된 테마 설정 및 구성요소, Material You 맞춤설정 기능(동적 색상 등)을 포함하며 새로운 Android 12의 시각적 스타일 및 시스템 UI와 일관되도록 설계되었습니다.
최근 업데이트 공개 버전 출시 후보 베타 버전 알파 버전
2022년 6월 1일 - - - 1.0.0-alpha13

구조

Compose는 androidx 내의 Maven 그룹 ID 7개의 조합입니다. 각 그룹에는 타겟팅된 일부 기능이 포함되고 각 기능에는 자체 출시 노트 조합이 있습니다.

다음 표에서는 그룹에 관한 설명과 각 출시 노트 조합의 링크를 제시합니다.

그룹설명
compose.animationJetpack Compose 애플리케이션에서 애니메이션을 빌드하여 사용자 환경에 풍부함을 더합니다.
compose.compilerKotlin 컴파일러 플러그인으로 최적화를 사용 설정하고 @Composable 함수를 변환합니다.
compose.foundation즉시 사용 가능한 기본 구성요소를 사용해 Jetpack Compose 애플리케이션을 작성하고 토대를 확장해 나만의 디자인 시스템을 구축하세요.
compose.material즉시 사용 가능한 Material Design 구성요소로 Jetpack Compose UI를 빌드합니다. 이는 Compose를 고급 수준에서 사용하는 첫 단계이며, www.material.io에 설명된 것과 동일한 구성요소를 제공합니다.
compose.material3차세대 Material Design인 Material Design 3 구성요소로 Jetpack Compose UI를 빌드합니다. Material 3은 업데이트된 테마 설정 및 구성요소, Material You 맞춤설정 기능(동적 색상 등)을 포함하며 새로운 Android 12의 시각적 스타일 및 시스템 UI와 일관되도록 설계되었습니다.
compose.runtimeCompose의 프로그래밍 모델과 상태 관리를 위한 기본 구성요소 및 타겟팅용 Compose 컴파일러 플러그인 핵심 런타임입니다.
compose.ui레이아웃, 그리기, 입력 등 기기와 상호작용할 때 필요한 Compose UI의 기본적인 구성요소입니다.

종속 항목 선언

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

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

Groovy

dependencies {
    implementation "androidx.compose.material3:material3:1.0.0-alpha13"
    implementation "androidx.compose.material3:material3-window-size-class:1.0.0-alpha13"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-alpha08"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material3:material3:1.0.0-alpha13")
    implementation("androidx.compose.material3:material3-window-size-class:1.0.0-alpha13")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-alpha08"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

의견

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

새로운 문제 제출하기

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

버전 1.0

버전 1.0.0-alpha13

2022년 6월 1일

androidx.compose.material3:material3:1.0.0-alpha13androidx.compose.material3:material3-window-size-class:1.0.0-alpha13이 출시되었습니다. 버전 1.0.0-alpha13에 포함된 커밋을 확인하세요.

API 변경사항

  • 구성 변경 시 상단 앱 바 위치를 유지하도록 지원합니다(I10459, b/216160958).

버전 1.0.0-alpha12

2022년 5월 18일

androidx.compose.material3:material3:1.0.0-alpha12androidx.compose.material3:material3-window-size-class:1.0.0-alpha12가 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.

버그 수정

  • 슬라이더 상위 요소의 너비가 이제 0이 될 수 있습니다(b/231707291).

버전 1.0.0-alpha11

2022년 5월 11일

androidx.compose.material3:material3:1.0.0-alpha11androidx.compose.material3:material3-window-size-class:1.0.0-alpha11이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.

새로운 기능

  • Material 3에 RangeSlider를 추가했습니다(I18e38).
  • Material3 AssistChipInputChip 지원을 추가합니다(I0d25a).
  • Material3 FilterChipSuggestionChip 지원을 추가합니다(I9fdf3).

API 변경사항

  • OutlinedTextField의 테두리 획을 그리는 TextFieldDefaults.BorderStroke 컴포저블의 이름이 TextFieldDefaults.BorderBox로 변경되었습니다(I5f295).
  • m3 시각적 변경사항을 전환했습니다(Iab30e).
  • 표준 아이콘 버튼에 색상을 전달하도록 허용합니다(Ia2445).

버그 수정

  • 내부 패딩이 사용되었는지 확인하기 위하여 material3/Scaffold에 린트 검사를 추가합니다(I72293, b/226951418).

버전 1.0.0-alpha10

2022년 4월 20일

androidx.compose.material3:material3:1.0.0-alpha10androidx.compose.material3:material3-window-size-class:1.0.0-alpha10이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.

새로운 기능

  • material3-window-size-class는 창 크기 클래스를 지원하는 새로운 라이브러리입니다. 크기 조절이 가능한 체계적인 표시 영역 중단점 세트를 통해 크기 조절이 가능한 애플리케이션 레이아웃을 디자인하고 개발 및 테스트할 수 있습니다. calculateWindowSizeClass을 사용하여 창 크기 클래스 인스턴스를 검색할 수 있습니다. 이 클래스는 더 큰 창 크기에 관한 하단 탐색 대신 탐색 레일을 표시하는 등 UI가 표시되는 방식을 결정하는 데 사용할 수 있습니다. 자세한 내용 및 샘플 사용법은 WindowSizeClass의 API 참조 문서를 확인하세요. 창 크기 클래스 정의에 관한 자세한 내용은 다양한 화면 크기 지원에 관한 공개 가이드를 참고하세요.

API 변경사항

  • BottomAppBar의 기본 FAB 고도를 추가하고 FAB를 사용하여 BottomAppBar의 후행 람다를 추가합니다(I92c47).
  • Material 3 FilledIconButton, FilledTonalIconButton, OutlinedIconButton을 추가합니다(Ib2bda).
  • 선택적 작업과 닫기 작업의 색상 값을 수락하도록 Material 3 Snackbar API를 업데이트했습니다(Ibe4b4).
  • PointerInputChange에서 부분 소비(아래쪽 OR 위치)를 지원 중단했습니다. consume()을 사용하여 변경사항을 완전히 사용할 수 있습니다. isConsumed를 사용하여 다른 사용자가 이전에 변경사항을 사용했는지 확인할 수 있습니다.
  • 이제 PointerInputChange::copy()가 항상 얕은 복사본을 만듭니다. 즉, 사본 중 하나가 소비되면 PointerInputChange의 사본이 사용됩니다. 결합되지 않은 PointerInputChange를 만들려면 생성자를 대신 사용하세요(Ie6be4, b/225669674).
  • CardColors 인터페이스를 통해 컨테이너 및 콘텐츠 색상을 수신하고 클릭 가능한 카드의 사용 중지 상태를 지원하도록 Card API를 변경했습니다(I927df).
  • 다른 구성요소와의 일관성을 향상하도록 Material 3 텍스트 필드의 매개변수 backgroundColor의 이름을 containerColor로 바꾸었습니다(I6fbd9).

버그 수정

  • 표준 IconButton을 Material 3 사양에 맞게 업데이트합니다(I09eab).
  • Material 3 스캐폴드의 상단 표시줄 높이를 콘텐츠에 전달된 패딩으로 이동하여 콘텐츠가 상단 앱 바 아래로 렌더링되도록 합니다. PaddingValues가 무시되면 상단 표시줄로 콘텐츠가 가려질 수 있습니다(I83cbc, b/217776202).

버전 1.0.0-alpha09

2022년 4월 6일

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

새로운 기능

  • Material 3 Switch API를 추가했습니다(I2c3ad).

API 변경사항

  • 텍스트 필드가 있는 드롭다운 메뉴('노출된 드롭다운 메뉴' 또는 '콤보 상자') 지원을 추가했습니다(I1b832).
  • MaterialTheme 및 Shape 하위 시스템에 도형 매개변수를 추가했습니다(I37426).
  • 각 상태 사이에 애니메이션을 사용하여 FAB를 펼치거나 접을지 제어할 수 있도록 ExtendedFloatingActionButton에 확장 매개변수를 추가했습니다. 아이콘이 없는 ExtendedFAB의 후행 텍스트가 있는 확장 FAB용 확장 FAB 오버로드를 추가했습니다(Iba7f1).

버전 1.0.0-alpha08

2022년 3월 23일

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

새로운 기능

API 변경사항

  • 메뉴의 기본 구분선을 추가합니다(I01374).
  • surfaceTint 색상 매개변수를 ColorScheme 클래스에 추가했습니다(I2f558).

버그 수정

  • Material3 버튼에서 수정하여 MaterialTheme에서 기본 텍스트 스타일 값을 읽습니다(Ie62fc).

버전 1.0.0-alpha07

2022년 3월 9일

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

API 변경사항

  • 클릭 가능한 노출 영역의 오버로드된 함수를 다시 가져오고, 선택 가능하고 전환 가능한 노출 영역을 지원하는 함수를 추가하는 Material 3 Surface API를 업데이트했습니다(I4bf18).
  • 이제 LazyVerticalGridLazyHorizontalGrid가 공개 버전으로 출시됩니다(I307c0).
  • LazyVerticalGrid/LazyHorizontalGrid 및 모든 관련 API를 .grid 하위 패키지로 이동했습니다. 가져오기를 androidx.compose.foundation.lazy에서 androidx.compose.foundation.lazy.grid로 업데이트하세요(I2d446).
  • WindowInsetsControllerCompat 뷰에만 의존하는 이전 변경사항을 되돌렸으며 일부 창 플래그를 관리하는 데 필요한 창이 다시 요구됩니다. 적절한 창이 사용되도록(예: 뷰가 대화상자에 있는 경우) ViewCompat.getWindowInsetsController를 지원 중단하고 WindowCompat.getInsetsController로 대체했습니다. (I660ae, b/219572936)
  • 교차 축 크기를 정의하는 새 LazyVerticalGrid API를 추가했습니다. (I17723)

버그 수정

  • Surface API의 변경사항을 따르도록 Card API를 업데이트했습니다. (I3c8b9)

버전 1.0.0-alpha06

2022년 2월 23일

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

API 변경사항

  • 창 내부의 단일 대상을 나타내는 NavigationDrawerItem이 추가되었습니다. (Ic396f, b/218286829)
  • PermanentNavigationDrawerDismissibleNavigationDrawer가 실험용 API로 추가되었습니다. 이 API는 대형 화면 기기에 적합한 창입니다. (I5f8ab, b/218286829)
  • Material 3 하단 앱 바 지원을 추가했습니다(Ic432a).
  • NavigationDrawer에서 ModalNavigationDrawer로 이름이 변경되었습니다. (I1807d, b/218286829)
  • Material 3 슬라이더 클래스 및 토큰을 추가했습니다(I1ccee).
  • 탭 구현을 추가했습니다. 샘플 사용에 관한 문서를 참고하세요(Ie0146).

버그 수정

  • TalkBack 스크린 리더의 순차적 탐색에서 빈 상단 앱 바 제목이 선택되는 문제가 해결되었습니다. (Id4690)
  • FloatingActionButtonDefaultsIconSize를 추가했습니다. (Ia71cf)
  • 긴 텍스트가 LazyColumn과 함께 추가될 때 AlertDialog 버튼이 숨겨지는 버그를 수정했습니다. (Ib2cc9, b/216663029)

버전 1.0.0-alpha05

2022년 2월 9일

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

새로운 기능

Material Design 3 구성요소를 추가했습니다.

API 변경사항

  • onClick 콜백을 사용하는 Surface 함수가 지원 중단되었습니다. 클릭 가능한 노출 영역은 InteractionSourceModifier.clickable()로 만들어야 합니다. (I211c6)
  • FAB에 관해 누르고 포커스가 설정된 고도 지원을 추가했습니다. (Ibb584)
  • 다양한 상태에서 모양을 제어할 수 있는 InteractionSource를 받도록 Surface API를 변경했습니다. (Iafbc8)

버그 수정

  • 누락된 3차 색상을 동적 색 구성표에 추가했습니다. (I456c4, b/214588434)

버전 1.0.0-alpha04

2022년 1월 26일

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

API 변경사항

  • 복잡한 로직 없이 기존 메서드의 오버로드인 메서드에 NonRestartableComposable을 추가했습니다. 이렇게 하면 호출된 내부 함수에서 반복되는 매개변수 전체를 대상으로 하는 컴파일러 생성 메모이제이션 검사(동일)가 줄어듭니다. (I90490)
  • Material 3 구분선을 추가했습니다. (Ica5fc)
  • 실험용 API 주석으로 Checkbox와 RadioButton을 표시합니다. (Ie44bb)
  • Material 3 진행률 표시기 지원을 추가했습니다. (Iff232, b/205023841)

버그 수정

  • 사용 중지된 TextButton's 컨테이너 색상을 투명하게 업데이트합니다. (I6b248, b/213339737)

버전 1.0.0-alpha03

2022년 1월 12일

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

버그 수정

  • Material 3의 MaterialThemeLocalIndication을 추가했습니다. (I7ce4e)
  • 체크박스에 적용되는 모서리 반지름을 수정했습니다. (I38b03, b/175198975, b/202309440)

종속 항목 업데이트

  • 이제 Kotlin 1.6.10에 종속됩니다.

버전 1.0.0-alpha02

2021년 12월 1일

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

새로운 기능

  • 체크박스 및 라디오 버튼 지원이 추가됩니다.
  • Kotlin 1.6.0과 호환되도록 업데이트했습니다.

API 변경사항

  • Material 3의 스캐폴드에서 창이 삭제됩니다. (I04f51)
  • Material 3 Checkbox 지원이 추가됩니다. (Id5542)
  • Material 3 RadioButton 지원이 추가됩니다. (I20334)

버그 수정

  • IconButton 물결 효과 반경이 40dp에서 20dp로 줄어듭니다. (I68bbe, b/206674345)
  • Text 변경사항의 빠른 문자열 경로가 compose.material에서 포팅됩니다. (I30b03)
  • 하드코딩된 버튼을 항상 사용 설정하도록 수정했습니다. (Iea832, b/205335456)

버전 1.0.0-alpha01

2021년 10월 27일

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

새로운 기능

Material Design 3 테마 설정 및 Material You 동적 색상

Material Design 3 구성요소

자세한 내용은 Compose의 Material 테마 설정 가이드에서 Material Design 3 및 Material You 섹션을 참고하세요.