Android Jetpack
Jetpack adalah serangkaian library untuk membantu developer mengikuti praktik terbaik, mengurangi kode boilerplate, serta menulis kode yang berfungsi secara konsisten di seluruh versi dan perangkat Android, sehingga developer dapat berfokus pada kode yang menurut mereka penting.
Jetpack Compose
Mengembangkan UI dengan Compose
Toolkit modern untuk membangun UI native yang memungkinkan Anda menyederhanakan dan mempercepat pengembangan UI di Android.
Mengapa menggunakan Android Jetpack?
Ikuti praktik terbaik
Dibuat berdasarkan praktik desain modern, Library Android Jetpack memungkinkan lebih sedikit error dan kebocoran memori dengan kompatibilitas mundur.
Menghapus kode boilerplate
Android Jetpack mengelola aktivitas yang menjemukan seperti tugas latar belakang, navigasi, dan pengelolaan siklus proses, sehingga Anda dapat berfokus pada fitur yang menjadikan aplikasi Anda menarik.
Mengurangi fragmentasi
Kurangi kompleksitas dengan library yang berfungsi secara konsisten di berbagai versi dan perangkat Android.
Library Jetpack Pelajari semua library
* Library yang populer dan sering digunakan akan dicantumkan terlebih dahulu
activity * | Mengakses API composable yang dibuat dari Activity. |
appcompat * | Mengizinkan akses ke API baru pada versi API platform yang lebih lama (sebagian besar menggunakan Desain Material). |
appsearch * | Membuat kemampuan penelusuran dalam aplikasi khusus untuk pengguna Anda. |
camera * | Membuat aplikasi kamera seluler. |
compose * | Menentukan UI Anda secara terprogram dengan fungsi composable yang mendeskripsikan bentuk dan dependensi datanya. |
databinding * | Mengikat komponen UI di tata letak ke sumber data di aplikasi Anda menggunakan format deklaratif. |
fragment * | Membagi aplikasi Anda menjadi beberapa layar mandiri yang dihosting dalam Activity. |
hilt * | Memperluas fungsionalitas Dagger Hilt untuk mengaktifkan injeksi dependensi class tertentu dari library androidx. |
lifecycle * | Membuat komponen berbasis siklus proses yang dapat menyesuaikan perilaku berdasarkan status siklus proses saat ini dari suatu aktivitas atau fragmen. |
Komponen Desain Material * | Komponen UI Desain Material modular dan dapat disesuaikan untuk Android. |
navigation * | Membuat dan menyusun UI dalam aplikasi, menangani deep link, dan menavigasi antar-layar. |
paging * | Memuat data dalam halaman dan menampilkannya di RecyclerView. |
room * | Membuat, menyimpan, dan mengelola data persisten yang didukung oleh database SQLite. |
test * | Pengujian di Android. |
work * | Menjadwalkan dan menjalankan tugas latar belakang berbasis batasan yang dapat ditangguhkan. |
ads | Mendapatkan ID iklan dengan atau tanpa Layanan Play. |
annotation | Mengekspos metadata yang memudahkan alat dan developer lain memahami kode aplikasi Anda. |
arch.core | Helper untuk dependensi arch lainnya, termasuk aturan pengujian JUnit yang dapat digunakan dengan LiveData. |
asynclayoutinflater | Meng-inflate tata letak secara asinkron untuk menghindari jank di UI. |
autofill | Meningkatkan akurasi isi otomatis melalui petunjuk yang diperluas. |
benchmark | Mengukur performa kode Anda secara akurat dalam Android Studio. |
biometric | Mengautentikasi dengan biometrik atau kredensial perangkat, dan melakukan operasi kriptografi. |
bluetooth | Menggunakan fitur Bluetooth platform Android dengan API yang kompatibel dengan versi lama. |
browser | Menampilkan halaman di browser default pengguna. |
camera.viewfinder | Jendela Bidik Berbasis Tampilan dan Composable Mandiri untuk Kamera" |
car-app | Membuat aplikasi template untuk Android Auto dan Android Automotive OS. |
cardview | Mengimplementasikan pola kartu Desain Material dengan sudut melengkung dan drop shadow. |
collection | Mengurangi dampak memori dari koleksi baru dan lama yang berukuran kecil. |
compose.animation | Mem-build animasi di aplikasi Jetpack Compose untuk memperkaya pengalaman pengguna. |
compose.compiler | Mentransformasi fungsi @Composable dan mengaktifkan pengoptimalan dengan plugin compiler Kotlin. |
compose.foundation | Menulis aplikasi Jetpack Compose dengan elemen penyusun siap pakai dan memperluas dasar untuk mem-build bagian sistem desain Anda sendiri. |
compose.material | Mem-build UI Jetpack Compose dengan Komponen Desain Material siap pakai. Ini adalah titik entri pada tingkat yang lebih tinggi untuk Compose, yang dirancang untuk menyediakan komponen yang cocok dengan yang dijelaskan di www.material.io. |
compose.material3 | Mem-build UI Jetpack Compose dengan Komponen Desain Material 3, evolusi berikutnya dari Desain Material. Material 3 menyertakan tema dan komponen yang diperbarui serta fitur personalisasi Material You, seperti warna dinamis. Material 3 juga didesain agar selaras dengan gaya visual dan UI sistem Android 12 yang baru. |
compose.material3.adaptive | Menggunakan library adaptif Material 3 untuk membuat UI adaptif yang akan secara otomatis menyesuaikan dengan jendela saat ini seperti class ukuran jendela atau postur perangkat. Library ini menyediakan penerapan scaffold default dan composable elemen penyusun yang diperlukan untuk membuat pengalaman kustom Anda sendiri. |
compose.runtime | Elemen penyusun yang penting untuk model pemrograman dan pengelolaan status Compose, serta runtime inti untuk ditargetkan oleh Plugin Compose Compiler. |
compose.ui | Komponen dasar compose UI yang diperlukan untuk berinteraksi dengan perangkat, termasuk tata letak, gambar, dan input. |
concurrent | Memindahkan tugas dari thread utama dengan coroutine dan memanfaatkan ListenableFuture. |
constraintlayout | Mengubah posisi dan ukuran widget secara fleksibel dengan posisi relatif. |
contentpager | Memuat dan memanggil semua data ContentProvider di thread latar belakang. |
coordinatorlayout | Menempatkan widget aplikasi level teratas, seperti AppBarLayout dan FloatingActionButton. |
core | Menargetkan API dan fitur platform terbaru sekaligus mendukung perangkat lama. |
core.uwb | Menerapkan UWB (ultra-wideband) pada perangkat yang didukung. |
credentials | Library ini memberikan akses terpadu ke kredensial pengguna. Hal ini dapat mencakup sandi, kunci sandi, dan kredensial gabungan. Library ini harus digunakan untuk memberikan pengalaman login yang lancar dan aman. |
cursoradapter | Mengekspos data Cursor ke widget ListView. |
customview | Mengimplementasikan tampilan kustom. |
datastore | Menyimpan data secara asinkron, konsisten, dan transaksional, yang mengatasi beberapa kelemahan SharedPreferences |
documentfile | Melihat dokumen file. |
draganddrop | Menerima data tarik lalu lepas dari aplikasi lain atau dalam aplikasi, dan menampilkan kemampuan target operasi lepas yang konsisten. |
drawerlayout | Mengimplementasikan widget panel samping Desain Material. |
dynamicanimation | Membuat animasi yang halus dengan API animasi berbasis fisika. |
emoji | Menampilkan emoji di perangkat saat ini dan yang lebih lama. |
emoji2 | Menampilkan emoji di perangkat saat ini dan yang lebih lama. |
enterprise | Membuat aplikasi yang siap digunakan perusahaan. |
exifinterface | Membaca dan menulis tag EXIF file gambar. |
games | Menggunakan Android Game SDK secara native di aplikasi Anda untuk melakukan tugas game yang kompleks, seperti Frame Pacing. |
glance | Membuat tata letak untuk platform jarak jauh menggunakan API khas Jetpack Compose. |
graphics | Memanfaatkan fasilitas grafis di beberapa rilis platform Android |
gridlayout | Mengimplementasikan tata letak berbentuk petak. |
health | Membuat aplikasi kesehatan berperforma tinggi dengan cara yang tidak bergantung pada platform. |
health.connect | Memungkinkan developer membaca atau menulis catatan kesehatan dan kebugaran pengguna. |
heifwriter | Mengenkode gambar atau kumpulan gambar dalam format HEIF menggunakan codec yang tersedia di perangkat Android. |
ink | Menginspirasi aplikasi pena terbaik di kelasnya. Turunkan hambatan developer dalam proses masuk untuk memberikan pengalaman tinta yang indah dan berperforma tinggi. |
input | Mengurangi latensi interaksi input dengan memprediksi MotionEvents di masa mendatang |
interpolator | Menggunakan interpolator animasi di platform yang lebih lama. |
javascriptengine | Mengaktifkan aplikasi Android Anda untuk mengevaluasi JavaScript. |
jetifier | Alat mandiri untuk memigrasikan dependensi library dari support library yang tidak digunakan lagi ke dependensi AndroidX yang setara. |
leanback | Gunakan Compose untuk TV, bukan artefak ini. |
legacy | Artefak ini beserta class-nya tidak digunakan lagi. Mulai Android 8, pembatasan pemeriksaan latar belakang membuat class ini tidak lagi berguna. |
lint | Pemeriksaan lint untuk memverifikasi penggunaan API Gradle |
loader | Memuat data untuk UI Anda yang tetap bertahan saat terjadi perubahan konfigurasi. |
localbroadcastmanager | Artefak ini beserta class-nya tidak digunakan lagi. Gunakan LiveData atau streaming reaktif saja. |
media | Membagikan konten dan kontrol media ke aplikasi lain. Digantikan oleh media2. |
media2 | Membagikan konten dan kontrol media ke aplikasi lain. |
media3 * | Mendukung library untuk kasus penggunaan media. |
mediarouter | Mengaktifkan tampilan dan pemutaran media pada perangkat penerima jarak jauh menggunakan antarmuka pengguna umum. |
multidex | Men-deploy aplikasi dengan beberapa file dex di perangkat sebelum Android 5. |
metrics | Melacak dan melaporkan berbagai metrik runtime untuk aplikasi Anda |
palette | Mengekstrak palet warna representatif dari gambar. |
Library untuk menambahkan kemampuan melihat PDF di dalam aplikasi. | |
percentlayout | Artefak ini beserta class-nya tidak digunakan lagi. Sebagai gantinya, gunakan ConstraintLayout dan tata letak terkait. |
preference | Membuat layar setelan yang interaktif tanpa perlu berinteraksi dengan penyimpanan perangkat atau mengelola UI. |
Mencetak foto, dokumen, serta gambar dan visual lainnya dari aplikasi Anda. | |
privacysandbox.activity | TODO |
privacysandbox.ads | Library ini memungkinkan integrasi dengan Privacy Preserving API, yang merupakan bagian dari Privacy Sandbox di Android. |
privacysandbox.plugins | Plugin Gradle Library Privacy Sandbox Sdk Android |
privacysandbox.sdkruntime | Library ini menyediakan komponen untuk konsumen yang mengetahui SdkRuntime |
privacysandbox.tools | Library untuk menggunakan fungsi Privacy Sandbox di Android |
privacysandbox.ui | TODO |
profileinstaller | Memungkinkan library mengisi otomatis rekaman aktivitas kompilasi terlebih dahulu sebelum dibaca oleh ART. |
recommendation | Mempromosikan konten ke layar utama Peluncur Android TV. |
recyclerview | Menampilkan set data dalam jumlah besar pada UI sambil meminimalkan penggunaan memori. |
remotecallback | Membuat wrapper yang memudahkan developer menyediakan PendingIntent. |
resourceinspection | Menampilkan atribut tampilan kustom di Live Layout Inspector Android Studio. |
savedstate | Menuliskan komponen yang dapat dicocokkan yang menyimpan status UI saat proses berhenti, dan memulihkannya saat proses dimulai ulang. |
security | Mengelola kunci dengan aman serta mengenkripsi file dan sharedpreferences. |
sharetarget | Memberikan kompatibilitas mundur untuk menggunakan pintasan sebagai target berbagi langsung. |
slice | Menampilkan elemen UI dengan template di luar aplikasi Anda. |
slidingpanelayout | Mengimplementasikan pola UI panel geser. |
startup | Mengimplementasikan cara yang praktis dan berperforma tinggi untuk melakukan inisialisasi komponen saat aplikasi dimulai. |
sqlite | Berfungsi dengan database SQLite lokal. Jika memungkinkan, gunakan Room. |
swiperefreshlayout | Mengimplementasikan pola UI geser untuk refresh. |
test.uiautomator | Framework untuk pengujian UI fungsional lintas aplikasi |
textclassifier | Mengidentifikasi percakapan, link, pilihan, dan konstruksi lain yang serupa dalam teks. |
tracing | Menulis peristiwa rekaman aktivitas ke buffering pelacakan sistem. |
transition | Menganimasikan gerakan di UI dengan tata letak awal dan akhir. |
tv | Menyediakan fungsi Compose dan Desain material kepada developer agar dapat menulis aplikasi untuk TV |
tvprovider | Menyediakan saluran Android TV. |
vectordrawable | Merender grafik vektor. |
versionedparcelable | Memberikan format serialisasi biner yang stabil dan ringkas yang dapat diteruskan di seluruh proses atau dipertahankan dengan aman. |
viewpager | Menampilkan View atau Fragment dalam format yang dapat digeser. Jika memungkinkan, gunakan viewpager2. |
viewpager2 | Menampilkan View atau Fragment dalam format yang dapat digeser. |
wear | Membuat aplikasi untuk smartwatch Wear OS by Google. |
wear.compose | Menulis aplikasi Jetpack Compose untuk perangkat Wearable dengan memberikan fungsi guna mendukung perangkat, ukuran, bentuk, dan gestur navigasi khusus perangkat wearable. |
wear.protolayout | Library ini memungkinkan penentuan serangkaian tata letak UI dan ekspresi non-UI dirender/dievaluasi pada platform jarak jauh. |
wear.tiles | Membuat aplikasi untuk smartwatch Wear OS by Google. |
wear.watchface | Membuat aplikasi untuk smartwatch Wear OS by Google. |
webkit | Berfungsi dengan WebView API modern di Android 5 dan versi yang lebih baru. |
window | Membantu mendukung berbagai faktor bentuk perangkat seperti perangkat foldable. |
window.extensions.core | Core API untuk Ekstensi Library Window Manager |
Yang baru
- Compose Agustus 2023
- Jetpack Compose 1.5.0 beralih ke stabil dan menghadirkan peningkatan performa utama, termasuk pemfaktoran ulang pengubah tingkat tinggi seperti `Clickable` yang dapat meningkatkan waktu komposisi sebesar 80%. Compose 23 Agustus juga memberikan peningkatan alokasi memori hingga 70% (terutama di stack grafis), yang akan mengurangi footprint memori compose di perangkat
- Wear Compose dan Kartu 1.2
- Wear Compose dan Kartu Wear telah beralih ke versi stabil untuk lebih meningkatkan pengalaman developer wearOS. Keduanya saling melengkapi, dengan Wear Compose dapat digunakan untuk mem-build layar aplikasi yang kompleks di perangkat Wear, dan kartu Wear dapat digunakan untuk membuat kartu aplikasi. Rilis Wear Compose baru berisi fungsi baru seperti Item yang Dapat Diperluas dan Geser untuk membukanya. Rilis Kartu Wear kini juga mendukung animasi widget, dan binding data platform (seperti sumber data kesehatan).
- Jendela 1.1
- 1.1 menstabilkan API penyematan aktivitas, sehingga aplikasi seperti WhatsApp, eBay, dan Temu dapat mengirimkan tata letak perangkat layar besar. API ini diperkaya dengan fitur, karena memungkinkan developer mengubah perilaku layar terpisah, memeriksa (dan mengubah) status pemisahan saat runtime, menerapkan pemisahan horizontal, dan memulai modal di jendela penuh.
- Catatan rilis
- Untuk mengetahui informasi lebih lanjut, buka catatan rilis kami.
Pelajari cara menggunakan Jetpack
Pelatihan dasar
Pelajari library Jetpack penting di kursus Dasar-Dasar Android dengan Compose dan kurangi boilerplate di aplikasi
Tutorial interaktif
Dapatkan pengalaman langsung menggunakan tiga library Jetpack yang menyederhanakan lapisan data: LiveData, ViewModel, dan Room
Aplikasi contoh Sunflower
Pelajari bagaimana library Jetpack yang paling populer digunakan bersama dalam aplikasi tingkat produksi