Android Jetpack
Jetpack은 개발자가 중요한 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 감소, 여러 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 묶음입니다.
Jetpack 사용 방법 알아보기
기초 교육
Compose 사용 시 알아야 하는 Android 기본사항 과정에서 필수 Jetpack 라이브러리를 알아보고 앱의 상용구를 줄이세요.
실습 튜토리얼
데이터 레이어를 간소화하는 세 가지 Jetpack 라이브러리, LiveData, ViewModel, Room을 사용하여 실습해 보세요.
Now in Android 샘플 앱
최신 Android 아키텍처가 실제 앱에 구현되는 방식을 살펴보세요.
Jetpack 라이브러리 모든 라이브러리 탐색
* 인기 있고 자주 사용하는 라이브러리가 먼저 나열됩니다.
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 * | 지연 가능한 제약 조건 기반 백그라운드 작업을 예약하고 실행합니다. |
ads | Play 서비스 유무에 관계없이 광고 ID를 가져옵니다. |
annotation | 도구 및 다른 개발자가 앱의 코드를 이해하는 데 도움이 되는 메타데이터를 노출합니다. |
arch.core | LiveData와 함께 사용할 수 있는 JUnit 테스트 규칙을 포함한 다른 arch 종속 항목의 도우미입니다. |
asynclayoutinflater | 레이아웃을 비동기식으로 확장하여 UI에서 버벅거림을 방지합니다. |
autofill | 확장 힌트를 통해 자동 완성 정확도를 개선합니다. |
benchmark | Android 스튜디오 내에서 코드 성능을 정확하게 측정합니다. |
biometric | 생체 인식 또는 기기 사용자 인증 정보로 인증하고 암호화 작업을 실행합니다. |
블루투스 | 하위 호환 API를 사용하여 Android 플랫폼의 블루투스 기능을 사용합니다. |
browser | 사용자의 기본 브라우저에 웹페이지를 표시합니다. |
camera.media3 | TODO |
camera.viewfinder | 카메라용 뷰파인더용 컴포저블 및 뷰 기반 뷰파인더' |
car-app | Android Auto 및 Android Automotive OS용 템플릿 형식 앱을 빌드합니다. |
cardview | 둥근 모서리와 그림자로 Material Design 카드 패턴을 구현합니다. |
collection | 크기가 작은 기존 컬렉션 및 새로운 컬렉션이 메모리에 미치는 영향을 줄입니다. |
compose.animation | Jetpack Compose 애플리케이션에서 애니메이션을 빌드하여 풍부한 사용자 경험을 제공합니다. |
compose.compiler | Kotlin 컴파일러 플러그인으로 최적화를 사용 설정하고 @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.adaptive | Material 3 적응형 라이브러리를 사용하여 창 크기 클래스 또는 기기 상태와 같은 현재 창 구성에 따라 자동으로 조정되는 적응형 UI를 만듭니다. 이 라이브러리는 자체 맞춤 환경을 만들기 위한 기본 스캐폴드 구현과 필요한 빌딩 블록 컴포저블을 모두 제공합니다. |
compose.runtime | Compose의 프로그래밍 모델과 상태 관리를 위한 기본 구성요소이며, Compose 컴파일러 플러그인이 타겟팅하는 핵심 런타임입니다. |
compose.ui | 레이아웃, 그리기, 입력 등 기기와 상호작용할 때 필요한 Compose UI의 기본적인 구성요소입니다. |
concurrent | 코루틴을 사용하여 작업을 기본 스레드 외부로 이동하고 ListenableFuture를 활용합니다. |
constraintlayout | 상대 위치에 따라 유연한 방식으로 위젯의 위치와 크기를 지정합니다. |
contentpager | 백그라운드 스레드에서 ContentProvider 데이터를 로드하고 페이징합니다. |
coordinatorlayout | AppBarLayout 및 FloatingActionButton과 같은 최상위 애플리케이션 위젯을 배치합니다. |
core | 최신 플랫폼 기능과 API를 타겟팅하는 동시에 이전 기기도 지원합니다. |
core.uwb | 지원되는 기기에 UWB(초광대역)를 구현합니다. |
사용자 인증 정보 | 이 라이브러리는 사용자 인증 정보에 대한 통합 액세스를 제공합니다. 여기에는 비밀번호, 패스키, 제휴 사용자 인증 정보가 포함될 수 있습니다. 이 라이브러리는 원활하고 안전한 로그인 환경을 제공하는 데 사용해야 합니다. |
credentials.registry | 이를 해결하기 위해 앱이 개인 정보를 보호하는 방식으로 디지털 사용자 인증 정보를 제공할 수 있는 새로운 레지스트리 메커니즘을 추가하고 있습니다. 대략적으로 공급자 앱은 모든 후보 디지털 사용자 인증 정보를 인증 관리자에 미리 등록합니다. 인증 관리자가 특정 디지털 사용자 인증 정보에 대한 앱 요청을 수신하면 샌드박스에서 사용자 인증 정보 일치 및 사용자 선택기 UI를 실행합니다. |
cursoradapter | ListView 위젯에 커서 데이터를 노출합니다. |
customview | 맞춤 뷰를 구현합니다. |
Datastore | 비동기적이고 일관된 트랜잭션 방식으로 데이터를 저장하여 SharedPreferences의 일부 단점을 극복합니다. |
documentfile | 파일 문서를 확인합니다. |
draganddrop | 다른 앱 또는 앱 내에서 드래그 앤 드롭 데이터를 허용하고 일관된 드롭 타겟 어포던스를 표시합니다. |
drawerlayout | Material Design 창 위젯을 구현합니다. |
dynamicanimation | 물리학 기반 Animation API를 사용하여 자연스러운 애니메이션을 만듭니다. |
emoji | 현재 및 이전 기기에 이모티콘을 표시합니다. |
emoji2 | 현재 및 이전 기기에 이모티콘을 표시합니다. |
enterprise | 엔터프라이즈 지원 애플리케이션을 만듭니다. |
exifinterface | 이미지 파일 EXIF(데이터) 태그를 읽고 씁니다. |
games | 앱에서 기본적으로 Android 게임 SDK를 사용하여 프레임 페이싱과 같은 복잡한 게임 작업을 실행합니다. |
glance | Jetpack Compose 스타일의 API를 사용하여 원격 노출 영역의 레이아웃을 빌드합니다. |
graphics | 여러 Android 플랫폼 출시에서 그래픽 기능을 활용합니다. |
gridlayout | 그리드 레이아웃을 구현합니다. |
health | 플랫폼에 구애받지 않는 방식으로 효율적인 건강 관리 애플리케이션을 만듭니다. |
health.connect | 개발자가 사용자의 건강/피트니스 기록을 읽거나 쓸 수 있습니다. |
heifwriter | Android 기기에서 사용 가능한 코덱을 사용하여 이미지 또는 이미지 컬렉션을 HEIF 형식으로 인코딩합니다. |
ink | 동급 최고의 펜 앱을 위한 영감을 얻으세요. 고성능의 아름다운 잉크 환경을 위한 개발자 진입 장벽을 낮춥니다. |
input | 향후 MotionEvents를 예측하여 입력 상호작용의 지연 시간을 줄입니다. |
interpolator | 이전 플랫폼에서 애니메이션 보간기를 사용합니다. |
javascriptengine | 자바스크립트를 평가하도록 Android 앱을 사용 설정합니다. |
jetifier | 지원 중단된 지원 라이브러리의 종속 항목을 그에 대응하는 AndroidX 종속 항목으로 이전하는 독립형 도구입니다. |
leanback | 이 아티팩트 대신 TV용 Compose를 사용하세요. |
legacy | 이 아티팩트와 아티팩트의 클래스는 지원 중단되었습니다. Android 8부터는 백그라운드 확인 제한이 있어 이 클래스가 더 이상 유용하지 않습니다. |
lint | Gradle API 사용을 확인하는 린트 검사 |
loader | 구성 변경 후에도 유지되는 UI 데이터를 로드합니다. |
localbroadcastmanager | 이 아티팩트와 아티팩트의 클래스는 지원 중단되었습니다. 대신 LiveData 또는 반응형 스트림을 사용하세요. |
media | 다른 앱과 미디어 콘텐츠 및 컨트롤을 공유합니다. media3로 대체되었습니다. |
media2 | 다른 앱과 미디어 콘텐츠 및 컨트롤을 공유합니다. |
media3* | 미디어 사용 사례를 위한 지원 라이브러리입니다. |
mediarouter | 일반 사용자 인터페이스를 사용하여 원격 수신 기기에서 미디어 표시 및 재생을 사용 설정합니다. |
multidex | Android 5 이전 기기에 여러 dex 파일이 있는 애플리케이션을 배포합니다. |
metrics | 애플리케이션의 다양한 런타임 측정항목을 추적 및 보고합니다. |
palette | 이미지에서 대표적인 색상 팔레트를 추출합니다. |
앱 내에 PDF 보기 기능을 추가하는 라이브러리입니다. | |
percentlayout | 이 아티팩트와 아티팩트의 클래스는 지원 중단되었습니다. 대신 ConstraintLayout 및 연결된 레이아웃을 사용하세요. |
preference | 기기 저장소와 상호작용하거나 UI를 관리할 필요 없이 대화형 설정 화면을 빌드합니다. |
앱에서 사진, 문서, 기타 그래픽과 이미지를 인쇄합니다. | |
privacysandbox.activity | TODO |
privacysandbox.ads | 이 라이브러리를 사용하면 Android의 개인 정보 보호 샌드박스의 일부인 개인 정보 보호 API와 통합할 수 있습니다. |
privacysandbox.plugins | Android 개인 정보 보호 샌드박스 Sdk 라이브러리 Gradle 플러그인 |
privacysandbox.sdkruntime | 이 라이브러리는 SdkRuntime을 인식하는 사용자를 위한 구성요소를 제공합니다. |
privacysandbox.tools | Android의 개인 정보 보호 샌드박스 기능을 활용하는 라이브러리입니다. |
privacysandbox.ui | TODO |
profileinstaller | ART에서 읽을 Ahead Of Time 컴파일 트레이스를 라이브러리가 자동 입력할 수 있습니다. |
recommendation | Android TV 런처 홈 화면에 콘텐츠를 홍보합니다. |
recyclerview | 메모리 사용량을 최소화하면서 UI에 많은 양의 데이터를 표시합니다. |
remotecallback | 개발자가 PendingIntent를 더 쉽게 제공할 수 있는 래퍼를 만듭니다. |
resourceinspection | Android 스튜디오의 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 디자인 기능을 제공합니다. |
tvprovider | Android TV 채널을 제공합니다. |
xr.arcore | 인식 기능으로 디지털 콘텐츠를 실제 세계로 가져옵니다. |
xr.compose | Android XR의 공간 기능을 활용하는 공간 UI 레이아웃을 선언적으로 빌드합니다. |
xr.compose.material3 | XR에 맞게 조정되는 Material 구성요소 및 레이아웃으로 빌드 |
xr.runtime | 네이티브 런타임으로 맞춤 AR 또는 3D 세션을 시작하세요. |
xr.scenecore | 3D 콘텐츠로 Android XR 장면 그래프를 빌드하고 조작합니다. |
vectordrawable | 벡터 그래픽을 렌더링합니다. |
versionedparcelable | 프로세스 간에 전달되거나 안전하게 유지될 수 있는 안정적이고 간단한 바이너리 직렬화 형식을 제공합니다. |
viewpager | 스와이프할 수 있는 형식으로 뷰 또는 프래그먼트를 표시합니다. 가능하면 viewpager2를 대신 사용하세요. |
viewpager2 | 스와이프할 수 있는 형식으로 뷰 또는 프래그먼트를 표시합니다. |
wear | Wear OS by Google 스마트시계용 애플리케이션을 만듭니다. |
wear.compose | 웨어러블용 기기, 크기, 모양, 탐색 동작을 지원하는 기능을 제공하여 웨어러블 기기용 Jetpack Compose 애플리케이션을 작성합니다. |
wear.protolayout | 이 라이브러리를 사용하면 원격 노출 영역에서 렌더링되고 평가될 UI 레이아웃과 비 UI 표현식을 정의할 수 있습니다. |
wear.tiles | Wear OS by Google 스마트시계용 애플리케이션을 만듭니다. |
wear.watchface | Wear OS by Google 스마트시계용 애플리케이션을 만듭니다. |
webkit | Android 5 이상에서 최신 WebView API와 함께 사용할 수 있습니다. |
window | 폴더블 기기와 같은 다양한 기기 폼 팩터를 지원할 수 있습니다. |
window.extensions.core | Window Manager 라이브러리 확장 프로그램의 핵심 API입니다. |