Jetpack Navigation 3 versi 1.0 sudah stabil 🎉. Gunakan sekarang juga di aplikasi produksi Anda. JetBrains sudah menggunakannya di aplikasi KotlinConf mereka.
Navigation 3 adalah library navigasi baru yang dibuat dari awal untuk mendukung status Jetpack Compose. Library ini memberi Anda kontrol penuh atas data sebelumnya, membantu Anda mempertahankan status navigasi, dan memungkinkan Anda membuat tata letak adaptif (seperti daftar-detail) dengan mudah. Bahkan ada versi lintas platform dari JetBrains.
Mengapa library baru?
Library Jetpack Navigation yang asli (sekarang Nav2) dirancang 7 tahun lalu dan, meskipun berfungsi dengan baik untuk tujuan awalnya dan telah ditingkatkan secara berulang, cara aplikasi dibuat sekarang telah berubah secara mendasar.
Pemrograman reaktif dengan UI deklaratif kini menjadi standar. Nav3 menggunakan pendekatan ini. Misalnya, NavDisplay (komponen UI Nav3 yang menampilkan layar Anda) hanya mengamati daftar kunci (masing-masing mewakili layar) yang didukung oleh status Compose dan memperbarui UI-nya saat daftar tersebut berubah.
Nav2 juga dapat menyulitkan Anda untuk memiliki satu sumber tepercaya untuk status navigasi karena memiliki status internalnya sendiri. Dengan Nav3, Anda menyediakan status Anda sendiri, yang memberi Anda kontrol penuh.
Terakhir, Anda meminta lebih banyak fleksibilitas dan kemampuan penyesuaian. Daripada memiliki satu API monolitik, Nav3 menyediakan API yang lebih kecil dan terpisah (atau "elemen penyusun") yang dapat digabungkan untuk membuat fungsi yang kompleks. Nav3 sendiri menggunakan elemen penyusun ini untuk memberikan setelan default yang sesuai untuk kasus penggunaan navigasi yang jelas.
Pendekatan ini memungkinkan Anda:
- Menyesuaikan animasi layar di tingkat global dan individual
- Menampilkan beberapa panel secara bersamaan, dan membuat tata letak yang fleksibel menggunakan Scenes API
- Ganti komponen Nav3 dengan mudah menggunakan implementasi Anda sendiri jika Anda menginginkan perilaku kustom
Baca selengkapnya tentang desain dan fiturnya di blog peluncuran.
Bermigrasi dari Navigation 2
Jika Anda sudah menggunakan Nav2, khususnya Navigation Compose, sebaiknya pertimbangkan untuk bermigrasi ke Nav3. Untuk membantu Anda, tersedia panduan migrasi. Langkah-langkah utamanya adalah:
- Tambahkan dependensi navigation 3.
- Perbarui rute navigasi Anda untuk menerapkan NavKey. Rute Anda tidak harus mengimplementasikan antarmuka ini untuk menggunakan Nav3, tetapi jika mengimplementasikannya, Anda dapat memanfaatkan fungsi rememberNavBackStack Nav3 untuk membuat data sebelumnya yang persisten.
- Buat class untuk menyimpan dan mengubah status navigasi Anda - di sinilah data sebelumnya disimpan.
- Ganti NavController dengan class ini.
- Pindahkan tujuan Anda dari NavGraph NavHost ke entryProvider.
- Ganti NavHost dengan NavDisplay.
Bereksperimen dengan migrasi agen AI
Anda dapat bereksperimen menggunakan agen AI untuk membaca panduan migrasi dan melakukan langkah-langkahnya pada project Anda. Untuk mencobanya dengan Agent Mode Gemini di Android Studio:
- Simpan panduan versi markdown ini ke dalam project Anda.
- Tempelkan perintah ini ke agen (tetapi jangan tekan enter): "Migrate this project to Navigation 3 using ".
- Ketik @migration-guide.md - tindakan ini akan memberikan panduan sebagai konteks kepada agen.
Seperti biasa, pastikan Anda meninjau dengan cermat perubahan yang dibuat oleh agen AI karena agen AI dapat membuat kesalahan.
Kami ingin mendengar performa Anda atau agen Anda, harap kirimkan masukan Anda di sini.
Resep navigasi yang menarik untuk skenario umum
Untuk kasus penggunaan yang umum, tetapi bernuansa, kami memiliki repositori resep. Contoh ini menunjukkan cara menggabungkan Nav3 API dengan cara tertentu, sehingga Anda dapat memilih atau mengubah resep sesuai kebutuhan tertentu. Jika resep terbukti populer, kami akan mempertimbangkan untuk "memasukkan" bagian non-nuansa ke dalam library Nav3 inti atau library add-on.
Saat ini ada 19 resep, termasuk untuk:
- Beberapa data sebelumnya
- Modularisasi dan injeksi dependensi
- Meneruskan argumen navigasi ke ViewModel (termasuk menggunakan Koin)
- Menampilkan hasil dari layar berdasarkan peristiwa dan status bersama
Kami sedang mengerjakan resep deep link, serta integrasi Koin, dan memiliki banyak rencana lainnya. Engineer dari JetBrains juga telah memublikasikan versi Compose Multiplatform dari resep.
Jika Anda memiliki kasus penggunaan umum yang ingin Anda lihat resepnya, ajukan permintaan resep.
Ringkasan
Untuk mulai menggunakan Nav3, lihat dokumentasi dan resep. Selain itu, nantikan konten teknis selama seminggu penuh, termasuk:
- Video pembahasan mendalam tentang API yang membahas modularisasi, animasi, dan tata letak adaptif.
- Sesi Tanyakan Apa Saja (AMA) live bersama engineer yang membangun Nav3.
Nav3 Spotlight Week dimulai pada 1 Desember 2025.
Seperti biasa, jika Anda menemukan masalah, harap laporkan di sini.
-
Berita ProdukPada tahun 2025, ekosistem Android telah berkembang jauh melampaui ponsel. Saat ini, developer memiliki peluang untuk menjangkau lebih dari 500 juta perangkat aktif, termasuk perangkat foldable, tablet, XR, Chromebook, dan mobil yang kompatibel.
Fahd Imtiaz • Waktu baca: 2 menit -
Berita ProdukMulai dari pengalaman imersif penuh di rumah hingga pengalaman sekilas saat bepergian, membangun aplikasi di Android XR memungkinkan Anda menjangkau pengguna kapan saja di seluruh spektrum aplikasi spasial. Di Android Developer Summit, kami menandai pencapaian yang menarik dengan peluncuran XREAL AURA.
Amy Zeppenfeld, Vinny DaSilva • Waktu baca: 3 menit -
Berita ProdukDi era kecerdasan, pengguna tidak lagi hanya mengetuk aplikasi, mereka mengekspresikan sasaran tingkat tinggi dan mengharapkan agen AI seperti Gemini untuk menyelesaikan alur kerja multilangkah, terkadang di beberapa aplikasi di perangkat mereka.
Jingyu Shi • Waktu baca: 4 menit
Dapatkan insight pengembangan Android terbaru yang dikirim ke kotak masuk Anda setiap minggu.