Jetpack Navigation 3'ün 1.0 sürümü kararlı 🎉. Hemen üretim uygulamalarınızda kullanmaya başlayabilirsiniz. JetBrains, bu özelliği KotlinConf uygulamasında kullanıyor.
Navigation 3, Jetpack Compose durumunu benimsemek için sıfırdan oluşturulmuş yeni bir gezinme kitaplığıdır. Eski yığınınız üzerinde tam kontrol sahibi olmanızı sağlar, gezinme durumunu korumanıza yardımcı olur ve kolayca uyarlanabilir düzenler (ör. liste-ayrıntı düzeni) oluşturmanıza olanak tanır. JetBrains'in platformlar arası bir sürümü bile var.
Neden yeni bir kitaplık?
Orijinal Jetpack Navigation kitaplığı (artık Nav2) 7 yıl önce tasarlandı. Orijinal hedeflerine iyi hizmet etmesine ve kademeli olarak iyileştirilmesine rağmen uygulamaların oluşturulma şekli temelden değişti.
Bildirim temelli kullanıcı arayüzüyle reaktif programlama artık standart haline geldi. Nav3 bu yaklaşımı benimser. Örneğin, NavDisplay (ekranlarınızı gösteren Nav3 kullanıcı arayüzü bileşeni), Compose durumu tarafından desteklenen bir anahtar listesini (her biri bir ekranı temsil eder) gözlemler ve bu liste değiştiğinde kullanıcı arayüzünü günceller.
Nav2, kendi dahili durumuna sahip olduğundan gezinme durumunuz için tek bir doğruluk kaynağına sahip olmayı da zorlaştırabilir. Nav3 ile kendi durumunuzu sağlayarak tam kontrol sahibi olursunuz.
Son olarak, daha fazla esneklik ve özelleştirme olanağı istediniz. Nav3, tek ve monolitik bir API yerine, karmaşık işlevler oluşturmak için birleştirilebilen daha küçük, ayrılmış API'ler (veya "yapı taşları") sağlar. Nav3, iyi tanımlanmış gezinme kullanım alanları için mantıklı varsayılanlar sağlamak amacıyla bu yapı taşlarını kullanır.
Bu yaklaşım sayesinde:
- Hem genel hem de bireysel düzeyde ekran animasyonlarını özelleştirme
- Aynı anda birden fazla bölme görüntüleyin ve Scenes API'yi kullanarak esnek düzenler oluşturun.
- Özel davranış istiyorsanız Nav3 bileşenlerini kendi uygulamalarınızla kolayca değiştirebilirsiniz.
Tasarımı ve özellikleri hakkında daha fazla bilgi için lansman blogunu okuyun.
Navigation 2'den taşıma
Nav2'yi, özellikle de Navigation Compose'u kullanıyorsanız Nav3'e geçiş yapabilirsiniz. Bu konuda size yardımcı olacak bir geçiş rehberi de hazırladık. Temel adımlar şunlardır:
- navigation 3 bağımlılıklarını ekleyin.
- NavKey'i uygulamak için navigasyon rotalarınızı güncelleyin. Nav3'ü kullanmak için rotalarınızın bu arayüzü uygulaması gerekmez. Ancak uygularlarsa kalıcı bir eski yığın oluşturmak için Nav3'ün rememberNavBackStack işlevinden yararlanabilirsiniz.
- Gezinme durumunuzu tutmak ve değiştirmek için sınıflar oluşturun. Eski yığınlarınız burada tutulur.
- NavController'ı bu sınıflarla değiştirin.
- Hedeflerinizi NavHost'un NavGraph'ından bir entryProvider'a taşıyın.
- NavHost'u NavDisplay ile değiştirin.
Yapay zeka ajanı taşıma işlemini deneme
Geçiş rehberini okumak ve projenizdeki adımları uygulamak için bir yapay zeka ajanı kullanmayı deneyebilirsiniz. Bunu Android Studio'da Gemini'ın Temsilci Modu ile denemek için:
- Kılavuzun bu Markdown sürümünü projenize kaydedin.
- Bu istemi temsilciye yapıştırın (ancak Enter tuşuna basmayın): "Bu projeyi Navigation 3'e taşımak için şunu kullan: ".
- @migration-guide.md yazın. Bu, kılavuzu temsilciye bağlam olarak sağlar.
Her zaman olduğu gibi, yapay zeka ajanının yaptığı değişiklikleri dikkatlice inceleyin. Yapay zeka ajanı hata yapabilir.
Sizin veya temsilcinizin nasıl bir performans sergilediğini öğrenmek isteriz. Lütfen geri bildiriminizi buradan gönderin.
Yaygın senaryolar için lezzetli gezinme tarifleri
Yaygın ancak ayrıntılı kullanım alanları için tarifler depomuz bulunmaktadır. Bu örnekte, Nav3 API'lerinin belirli bir şekilde nasıl birleştirileceği gösterilmektedir. Bu sayede, tarifi kendi ihtiyaçlarınıza göre seçebilir veya değiştirebilirsiniz. Popüler olan tariflerin ayrıntılı olmayan kısımlarını temel Nav3 kitaplığına veya eklenti kitaplıklarına "mezun etmeyi" düşüneceğiz.
Şu anda 19 tarif bulunmaktadır. Bunlardan bazıları:
- Birden fazla eski yığın
- Modülerleştirme ve bağımlılık ekleme
- Gezinme bağımsız değişkenlerini ViewModel'lere iletme (Koin kullanımı dahil)
- Etkinliklere ve paylaşılan duruma göre ekranlardan sonuç döndürme
Şu anda derin bağlantılarla ilgili bir tarif ve Koin entegrasyonu üzerinde çalışıyoruz. Ayrıca planladığımız daha birçok tarif var. JetBrains'den bir mühendis de tariflerin Compose Multiplatform sürümünü yayınladı.
Tarifini görmek istediğiniz yaygın bir kullanım alanınız varsa lütfen tarif isteğinde bulunun.
Özet
Nav3'ü kullanmaya başlamak için belgelere ve tariflere göz atın. Ayrıca, bir hafta boyunca teknik içerikler de paylaşılacak:
- Modülerleştirme, animasyonlar ve uyarlanabilir düzenleri kapsayan API hakkında ayrıntılı inceleme videosu.
- Nav3'ü geliştiren mühendislerle canlı "İstediğinizi Sorun" (AMA) oturumu.
Nav3 Spotlight Week, 1 Aralık 2025'te başlayacak.
Her zaman olduğu gibi, herhangi bir sorunla karşılaşırsanız lütfen buradan bildirin.
-
Ürün Haberleri2025'te Android ekosistemi telefonun çok ötesine geçti. Günümüzde geliştiriciler; katlanabilir cihazlar, tabletler, XR, Chromebook'lar ve uyumlu arabalar dahil olmak üzere 500 milyondan fazla etkin cihaza ulaşma fırsatına sahip.
Fahd Imtiaz • Okuma süresi: 2 dk. -
Ürün HaberleriYakında çıkacak Android sürümünü hedefleyen uygulamalar artık WRITE_CONTACTS izniyle kişilere doğrudan yazamayacak.
Roxanna Aliabadi Walker • Okuma süresi: 6 dk. -
Ürün HaberleriTemsilci tabanlı geliştirme hızlandıkça Android mühendisliği heyecan verici yeni bir aşamaya geçiyor: yardımcı kod tamamlamadan, sizin yönlendirmenizle uçtan uca yürütülen temsilcilere geçiş. Kullandığınız modeller ve temsilciler konusunda tam bir seçim özgürlüğüne ve esnekliğe sahipsiniz.
Jason Buchel • Okuma süresi: 3 dk.
Android geliştiriciliğiyle ilgili en son analizleri her hafta gelen kutunuza alın.