Jetpack은 개발자가 중요한 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 감소, 여러 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 묶음입니다.
Jetpack Compose
Android에서 UI 개발을 간소화하고 가속화할 수 있는 네이티브 UI를 빌드하기 위한 최신 도구 키트입니다.

Jetpack 사용 방법 알아보기

Compose 사용 시 알아야 하는 Android 기본사항 과정에서 필수 Jetpack 라이브러리를 알아보고 앱의 상용구를 줄이세요.
데이터 레이어를 간소화하는 세 가지 Jetpack 라이브러리, LiveData, ViewModel, Room을 사용하여 실습해 보세요.
최신 Android 아키텍처가 실제 앱에 구현되는 방식을 살펴보세요.

* 인기 있고 자주 사용하는 라이브러리가 먼저 나열됩니다.

activity *Activity에 기반하여 빌드된 구성 가능한 API에 액세스합니다.
appcompat *이전 API 버전의 플랫폼에서 새 API에 액세스할 수 있습니다(대부분 Material Design 사용).
appsearch *사용자를 위한 맞춤 인앱 검색 기능을 빌드합니다.
camera *모바일 카메라 앱을 빌드합니다.
compose *모양과 데이터 종속 항목을 설명하는 구성 가능한 함수를 사용하여 프로그래매틱 방식으로 UI를 정의합니다.
databinding *레이아웃의 UI 구성요소를 선언적 형식을 사용하여 앱의 데이터 소스에 결합합니다.
fragment *활동 내에서 호스팅되는 여러 개의 독립적인 화면으로 앱을 분류합니다.
hilt *Dagger Hilt의 기능을 확장하여 androidx 라이브러리에서 특정 클래스의 종속 항목 삽입을 사용 설정합니다.
lifecycle *활동이나 프래그먼트의 현재 수명 주기 상태를 기반으로 동작을 조정할 수 있는 수명 주기 인식 구성요소를 빌드합니다.
Material Design Components * Android용으로 맞춤설정이 가능한 모듈식 Material Design UI 구성요소입니다.
navigation *인앱 UI를 빌드 및 구조화하고 딥 링크를 처리하며 화면 간에 이동합니다.
paging *페이지에 데이터를 로드하여 RecyclerView에 표시합니다.
room *SQLite 데이터베이스에서 지원하는 영구 데이터를 생성, 저장, 관리합니다.
test *Android에서 테스트합니다.
work *지연 가능한 제약 조건 기반 백그라운드 작업을 예약하고 실행합니다.
adsPlay 서비스 유무에 관계없이 광고 ID를 가져옵니다.
annotation도구 및 다른 개발자가 앱의 코드를 이해하는 데 도움이 되는 메타데이터를 노출합니다.
arch.coreLiveData와 함께 사용할 수 있는 JUnit 테스트 규칙을 포함한 다른 arch 종속 항목의 도우미입니다.
asynclayoutinflater레이아웃을 비동기식으로 확장하여 UI에서 버벅거림을 방지합니다.
autofill확장 힌트를 통해 자동 완성 정확도를 개선합니다.
benchmarkAndroid 스튜디오 내에서 코드 성능을 정확하게 측정합니다.
biometric생체 인식 또는 기기 사용자 인증 정보로 인증하고 암호화 작업을 실행합니다.
블루투스하위 호환 API를 사용하여 Android 플랫폼의 블루투스 기능을 사용합니다.
browser사용자의 기본 브라우저에 웹페이지를 표시합니다.
camera.viewfinder카메라용 뷰파인더용 컴포저블 및 뷰 기반 뷰파인더'
car-appAndroid Auto 및 Android Automotive OS용 템플릿 형식 앱을 빌드합니다.
cardview둥근 모서리와 그림자로 Material Design 카드 패턴을 구현합니다.
collection크기가 작은 기존 컬렉션 및 새로운 컬렉션이 메모리에 미치는 영향을 줄입니다.
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.material3.adaptiveMaterial 3 적응형 라이브러리를 사용하여 창 크기 클래스 또는 기기 상태와 같은 현재 창 구성에 따라 자동으로 조정되는 적응형 UI를 만듭니다. 이 라이브러리는 자체 맞춤 환경을 만들기 위한 기본 스캐폴드 구현과 필요한 빌딩 블록 컴포저블을 모두 제공합니다.
compose.runtimeCompose의 프로그래밍 모델과 상태 관리를 위한 기본 구성요소이며, Compose 컴파일러 플러그인이 타겟팅하는 핵심 런타임입니다.
compose.ui레이아웃, 그리기, 입력 등 기기와 상호작용할 때 필요한 Compose UI의 기본적인 구성요소입니다.
concurrent코루틴을 사용하여 작업을 기본 스레드 외부로 이동하고 ListenableFuture를 활용합니다.
constraintlayout상대 위치에 따라 유연한 방식으로 위젯의 위치와 크기를 지정합니다.
contentpager백그라운드 스레드에서 ContentProvider 데이터를 로드하고 페이징합니다.
coordinatorlayoutAppBarLayout 및 FloatingActionButton과 같은 최상위 애플리케이션 위젯을 배치합니다.
core최신 플랫폼 기능과 API를 타겟팅하는 동시에 이전 기기도 지원합니다.
core.uwb지원되는 기기에 UWB(초광대역)를 구현합니다.
사용자 인증 정보 이 라이브러리는 사용자 인증 정보에 대한 통합 액세스를 제공합니다. 여기에는 비밀번호, 패스키, 제휴 사용자 인증 정보가 포함될 수 있습니다. 이 라이브러리는 원활하고 안전한 로그인 환경을 제공하는 데 사용해야 합니다.
credentials.registry이를 해결하기 위해 앱이 개인 정보를 보호하는 방식으로 디지털 사용자 인증 정보를 제공할 수 있는 새로운 레지스트리 메커니즘을 추가하고 있습니다. 대략적으로 공급자 앱은 모든 후보 디지털 사용자 인증 정보를 인증 관리자에 미리 등록합니다. 인증 관리자가 특정 디지털 사용자 인증 정보에 대한 앱 요청을 수신하면 샌드박스에서 사용자 인증 정보 일치 및 사용자 선택기 UI를 실행합니다.
cursoradapterListView 위젯에 커서 데이터를 노출합니다.
customview맞춤 뷰를 구현합니다.
Datastore비동기적이고 일관된 트랜잭션 방식으로 데이터를 저장하여 SharedPreferences의 일부 단점을 극복합니다.
documentfile파일 문서를 확인합니다.
draganddrop다른 앱 또는 앱 내에서 드래그 앤 드롭 데이터를 허용하고 일관된 드롭 타겟 어포던스를 표시합니다.
drawerlayoutMaterial Design 창 위젯을 구현합니다.
dynamicanimation물리학 기반 Animation API를 사용하여 자연스러운 애니메이션을 만듭니다.
emoji현재 및 이전 기기에 이모티콘을 표시합니다.
emoji2현재 및 이전 기기에 이모티콘을 표시합니다.
enterprise엔터프라이즈 지원 애플리케이션을 만듭니다.
exifinterface이미지 파일 EXIF(데이터) 태그를 읽고 씁니다.
games앱에서 기본적으로 Android 게임 SDK를 사용하여 프레임 페이싱과 같은 복잡한 게임 작업을 실행합니다.
glanceJetpack Compose 스타일의 API를 사용하여 원격 노출 영역의 레이아웃을 빌드합니다.
graphics여러 Android 플랫폼 출시에서 그래픽 기능을 활용합니다.
gridlayout그리드 레이아웃을 구현합니다.
health플랫폼에 구애받지 않는 방식으로 효율적인 건강 관리 애플리케이션을 만듭니다.
health.connect개발자가 사용자의 건강/피트니스 기록을 읽거나 쓸 수 있습니다.
heifwriterAndroid 기기에서 사용 가능한 코덱을 사용하여 이미지 또는 이미지 컬렉션을 HEIF 형식으로 인코딩합니다.
ink동급 최고의 펜 앱을 위한 영감을 얻으세요. 고성능의 아름다운 잉크 사용 환경을 위한 개발자 진입 장벽을 낮춥니다.
input향후 MotionEvents를 예측하여 입력 상호작용의 지연 시간을 줄입니다.
interpolator이전 플랫폼에서 애니메이션 보간기를 사용합니다.
javascriptengine자바스크립트를 평가하도록 Android 앱을 사용 설정합니다.
jetifier지원 중단된 지원 라이브러리의 종속 항목을 그에 대응하는 AndroidX 종속 항목으로 이전하는 독립형 도구입니다.
leanback이 아티팩트 대신 TV용 Compose를 사용하세요.
legacy이 아티팩트와 아티팩트의 클래스는 지원 중단되었습니다. Android 8부터는 백그라운드 확인 제한이 있어 이 클래스가 더 이상 유용하지 않습니다.
lintGradle API 사용을 확인하는 린트 검사
loader구성 변경 후에도 유지되는 UI 데이터를 로드합니다.
localbroadcastmanager이 아티팩트와 아티팩트의 클래스는 지원 중단되었습니다. 대신 LiveData 또는 반응형 스트림을 사용하세요.
media다른 앱과 미디어 콘텐츠 및 컨트롤을 공유합니다. media3로 대체되었습니다.
media2다른 앱과 미디어 콘텐츠 및 컨트롤을 공유합니다.
media3*미디어 사용 사례를 위한 지원 라이브러리입니다.
mediarouter일반 사용자 인터페이스를 사용하여 원격 수신 기기에서 미디어 표시 및 재생을 사용 설정합니다.
multidexAndroid 5 이전 기기에 여러 dex 파일이 있는 애플리케이션을 배포합니다.
metrics애플리케이션의 다양한 런타임 측정항목을 추적 및 보고합니다.
palette이미지에서 대표적인 색상 팔레트를 추출합니다.
pdf앱 내에 PDF 보기 기능을 추가하는 라이브러리입니다.
percentlayout이 아티팩트와 아티팩트의 클래스는 지원 중단되었습니다. 대신 ConstraintLayout 및 연결된 레이아웃을 사용하세요.
preference기기 저장소와 상호작용하거나 UI를 관리할 필요 없이 대화형 설정 화면을 빌드합니다.
print앱에서 사진, 문서, 기타 그래픽과 이미지를 인쇄합니다.
privacysandbox.activityTODO
privacysandbox.ads이 라이브러리를 사용하면 Android의 개인 정보 보호 샌드박스의 일부인 개인 정보 보호 API와 통합할 수 있습니다.
privacysandbox.pluginsAndroid 개인 정보 보호 샌드박스 Sdk 라이브러리 Gradle 플러그인
privacysandbox.sdkruntime이 라이브러리는 SdkRuntime을 인식하는 사용자를 위한 구성요소를 제공합니다.
privacysandbox.toolsAndroid의 개인 정보 보호 샌드박스 기능을 활용하는 라이브러리입니다.
privacysandbox.uiTODO
profileinstallerART에서 읽을 Ahead Of Time 컴파일 트레이스를 라이브러리가 자동 입력할 수 있습니다.
recommendationAndroid TV 런처 홈 화면에 콘텐츠를 홍보합니다.
recyclerview메모리 사용량을 최소화하면서 UI에 많은 양의 데이터를 표시합니다.
remotecallback개발자가 PendingIntent를 더 쉽게 제공할 수 있는 래퍼를 만듭니다.
resourceinspectionAndroid 스튜디오의 Live Layout Inspector에 맞춤 뷰 속성을 표시합니다.
savedstate프로세스가 종료되면 UI 상태를 저장하고 프로세스가 다시 시작되면 복원하는 플러그형 구성요소를 작성합니다.
security키를 안전하게 관리하고 파일 및 sharedpreference를 암호화합니다.
sharetarget바로가기를 직접 공유 타겟으로 사용하기 위해 이전 버전과의 호환성을 제공합니다.
slice앱 외부에 템플릿 UI 요소를 표시합니다.
slidingpanelayout슬라이딩 창 UI 패턴을 구현합니다.
startup앱을 시작할 때 구성요소를 초기화하는 간단하고 성능 기준에 부합하는 방법을 구현합니다.
sqlite로컬 SQLite 데이터베이스와 함께 사용할 수 있습니다. 가능하면 대신 Room을 사용하세요.
swiperefreshlayout스와이프하여 새로고침 UI 패턴을 구현합니다.
test.uiautomator교차 앱 기능 UI 테스트를 위한 프레임워크입니다.
textclassifier텍스트 내에서 대화, 링크, 선택 항목 및 기타 유사한 구조를 식별합니다.
tracing시스템 트레이스 버퍼에 트레이스 이벤트를 씁니다.
transition시작 및 종료 레이아웃에서 UI 모션에 애니메이션을 적용합니다.
tv개발자가 TV용 애플리케이션을 작성할 수 있도록 Compose 및 Material 디자인 기능을 제공합니다.
tvproviderAndroid TV 채널을 제공합니다.
vectordrawable벡터 그래픽을 렌더링합니다.
versionedparcelable프로세스 간에 전달되거나 안전하게 유지될 수 있는 안정적이고 간단한 바이너리 직렬화 형식을 제공합니다.
viewpager스와이프할 수 있는 형식으로 뷰 또는 프래그먼트를 표시합니다. 가능하면 viewpager2를 대신 사용하세요.
viewpager2스와이프할 수 있는 형식으로 뷰 또는 프래그먼트를 표시합니다.
wearWear OS by Google 스마트시계용 애플리케이션을 만듭니다.
wear.compose웨어러블용 기기, 크기, 모양, 탐색 동작을 지원하는 기능을 제공하여 웨어러블 기기용 Jetpack Compose 애플리케이션을 작성합니다.
wear.protolayout이 라이브러리를 사용하면 원격 노출 영역에서 렌더링되고 평가될 UI 레이아웃과 비 UI 표현식을 정의할 수 있습니다.
wear.tilesWear OS by Google 스마트시계용 애플리케이션을 만듭니다.
wear.watchfaceWear OS by Google 스마트시계용 애플리케이션을 만듭니다.
webkitAndroid 5 이상에서 최신 WebView API와 함께 사용할 수 있습니다.
window폴더블 기기와 같은 다양한 기기 폼 팩터를 지원할 수 있습니다.
window.extensions.coreWindow Manager 라이브러리 확장 프로그램의 핵심 API입니다.
Compose 2023년 8월
Jetpack Compose 1.5.0이 안정화 버전으로 전환되고 컴포지션 시간을 80% 개선할 수 있는 `Clickable`과 같은 상위 수정자의 리팩터링을 비롯한 주요 성능 개선사항이 도입되었습니다. 2023년 8월 Compose는 메모리 할당도 최대 70% 개선 (특히 그래픽 스택)하여 기기에서 Compose의 메모리 공간을 줄일 수 있습니다.
Wear Compose 및 Tiles 1.2
WearOS 개발자의 환경을 더욱 개선하기 위해 Wear Compose와 Wear Tiles가 모두 안정화 버전으로 이동했습니다. 둘 다 서로 보완적입니다. Wear Compose는 Wear 기기에서 복잡한 앱 화면을 빌드하는 데 사용할 수 있고 Wear Tiles은 앱 타일을 만드는 데 사용할 수 있습니다. 새로운 Wear Compose 출시에는 확장 가능한 항목, 스와이프하여 표시와 같은 새로운 기능이 포함되어 있습니다. Wear Tiles 출시에서는 이제 위젯 애니메이션과 플랫폼 데이터 결합 (예: 건강 데이터 소스)도 지원합니다.
Window 1.1
1.1은 활동 삽입 API를 안정화하여 WhatsApp, eBay, Temu와 같은 앱에서 대형 화면 레이아웃을 제공할 수 있도록 지원합니다. 이 API는 개발자가 스크린 분할 동작을 수정하고, 런타임에 분할 상태를 확인 및 변경하고, 가로 분할을 구현하고, 전체 창에서 모달을 시작할 수 있도록 하는 등 다양한 기능을 제공합니다.
출시 노트
자세한 내용은 출시 노트를 참조하세요.

Android Jetpack을 사용해야 하는 이유는 무엇인가요?

최신 설계 관행을 바탕으로 빌드된 Android Jetpack 라이브러리는 이전 버전과의 호환성 기능이 통합되어 비정상 종료와 메모리 누수를 줄여 줍니다.
Android Jetpack은 개발자가 뛰어난 앱을 만드는 데에만 집중할 수 있도록 백그라운드 작업, 탐색, 수명 주기 관리 등 지루한 작업을 관리해 줍니다.
여러 Android 버전과 기기에서 일관되게 작동하는 라이브러리를 사용하여 복잡성을 줄이세요.

뉴스 및 동영상