Versi 1.0 Jetpack Navigation 3 sudah stabil 🎉. Lanjutkan dan gunakan di aplikasi produksi Anda sekarang. JetBrains sudah menggunakannya di aplikasi KotlinConf mereka.
Navigation 3 adalah library navigasi baru yang dibangun dari awal untuk mendukung status Jetpack Compose. API ini memberi Anda kontrol penuh atas data sebelumnya, membantu Anda mempertahankan status navigasi, dan memungkinkan Anda membuat tata letak adaptif dengan mudah (seperti detail daftar). Bahkan ada versi lintas platform dari JetBrains.
Mengapa perlu library baru?
Library Jetpack Navigation asli (sekarang Nav2) didesain 7 tahun yang lalu dan, meskipun memenuhi tujuan aslinya dengan baik dan telah ditingkatkan secara iteratif, cara aplikasi dibangun kini telah berubah secara mendasar.
Pemrograman reaktif dengan UI deklaratif kini menjadi standar. Nav3 mengadopsi pendekatan ini. Misalnya, NavDisplay (komponen UI Nav3 yang menampilkan layar Anda) hanya mengamati daftar kunci (setiap kunci mewakili layar) yang didukung oleh status Compose dan memperbarui UI-nya saat daftar tersebut berubah.
Nav2 juga dapat mempersulit Anda untuk memiliki satu sumber tepercaya untuk status navigasi karena memiliki status internalnya sendiri. Dengan Nav3, Anda menyediakan status Anda sendiri, sehingga Anda memiliki kontrol penuh.
Terakhir, Anda meminta lebih banyak fleksibilitas dan kemampuan penyesuaian. Daripada memiliki satu API monolitik, Nav3 menyediakan API yang lebih kecil dan tidak terikat (atau "blok bangunan") yang dapat digabungkan untuk membuat fungsi yang kompleks. Nav3 sendiri menggunakan blok penyusun ini untuk memberikan default yang wajar untuk kasus penggunaan navigasi yang terdefinisi dengan baik.
Dengan pendekatan ini, Anda dapat:
- Menyesuaikan animasi layar di tingkat global dan individual
- Menampilkan beberapa panel secara bersamaan, dan membuat tata letak 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 melakukannya, ada panduan migrasi. Langkah-langkah utamanya adalah:
- Tambahkan dependensi navigation 3.
- Perbarui rute navigasi Anda untuk menerapkan NavKey. Rute Anda tidak harus menerapkan antarmuka ini untuk menggunakan Nav3, tetapi jika melakukannya, Anda dapat memanfaatkan fungsi rememberNavBackStack Nav3 untuk membuat back stack persisten.
- Buat class untuk menyimpan dan mengubah status navigasi Anda - di sinilah tumpukan kembali Anda 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 dengan menggunakan agen AI untuk membaca panduan migrasi dan melakukan langkah-langkah di project Anda. Untuk mencobanya dengan Agent Mode Gemini di Android Studio:
- Simpan panduan versi markdown ini ke dalam project Anda.
- Tempel perintah ini ke agen (tetapi jangan tekan enter): "Migrasikan project ini ke Navigation 3 menggunakan ".
- Ketik @migration-guide.md - ini akan memberikan panduan sebagai konteks kepada agen.
Seperti biasa, pastikan Anda meninjau dengan cermat perubahan yang dilakukan oleh agen AI - agen AI dapat membuat kesalahan.
Kami ingin mendengar pendapat Anda tentang performa Anda atau agen Anda. Kirimkan masukan Anda di sini.
Resep navigasi yang efektif untuk skenario umum
Untuk kasus penggunaan umum tetapi bernuansa, kami memiliki repositori resep. Bagian ini menunjukkan cara menggabungkan Nav3 API dengan cara tertentu, sehingga Anda dapat memilih atau mengubah resep sesuai kebutuhan Anda. Jika resep ternyata populer, kami akan mempertimbangkan untuk "meluluskan" bagian yang tidak bernuansa ke pustaka Nav3 inti atau pustaka 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 menurut peristiwa dan menurut status bersama
Kami saat ini sedang mengerjakan resep link dalam, serta integrasi Koin, dan telah merencanakan banyak hal lainnya. Engineer dari JetBrains juga telah memublikasikan resep versi Compose Multiplatform.
Jika Anda memiliki kasus penggunaan umum yang ingin Anda lihat resepnya, ajukan permintaan resep.
Ringkasan
Untuk mulai menggunakan Nav3, lihat dokumentasi dan resepnya. Selain itu, nantikan konten teknis selama seminggu penuh, termasuk:
- Video pembahasan mendalam tentang API yang mencakup modularisasi, animasi, dan tata letak adaptif.
- Sesi Tanya Jawab Langsung (AMA) dengan engineer yang membangun Nav3.
Nav3 Spotlight Week dimulai 1 Desember 2025.
Seperti biasa, jika Anda menemukan masalah, harap laporkan di sini.
Lanjutkan membaca
-
Berita Produk
Pada 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 Produk
Setiap developer memiliki alur kerja dan kebutuhan AI yang unik, dan penting untuk dapat memilih cara AI membantu pengembangan Anda. Pada bulan Januari, kami memperkenalkan kemampuan untuk memilih model AI lokal atau jarak jauh guna mendukung fungsi AI di Android Studio
Matthew Warner • Waktu baca: 2 menit
-
Berita Produk
Android Studio Panda 3 kini stabil dan siap digunakan dalam produksi. Rilis ini memberi Anda lebih banyak kontrol dan penyesuaian atas alur kerja yang didukung AI, sehingga mempermudah pembuatan aplikasi Android berkualitas tinggi.
Matt Dyor • Waktu baca 3 menit
Terus dapatkan informasi
Dapatkan insight pengembangan Android terbaru yang dikirim ke kotak masuk Anda setiap minggu.