Ders İçeriği

Mobil uygulamalar genellikle birden fazla ekrandan (sayfadan) oluşur. Kullanıcıların bu ekranlar arasında geçiş yapmasını sağlamak için navigasyon ve rota yönetimi önemlidir. Flutter, Navigator widget'ı aracılığıyla güçlü bir navigasyon sistemi sunar.

1. Temel Navigasyon (Navigator.push, Navigator.pop)

Flutter'da navigasyon, bir yığın (stack) yapısı üzerinde çalışır. Yeni bir sayfa açtığınızda, o sayfa yığının en üstüne eklenir. Geri tuşuna bastığınızda veya pop işlemi yaptığınızda, yığının en üstündeki sayfa kaldırılır.
Navigator.push(): Yeni bir sayfayı yığına eklemek ve o sayfaya gitmek için kullanılır. Genellikle MaterialPageRoute ile birlikte kullanılır.
Navigator.pop(): Yığının en üstündeki sayfayı kaldırmak ve önceki sayfaya geri dönmek için kullanılır.

2. Named Routes (Adlandırılmış Rotalar)

Uygulamanızda çok sayıda ekran olduğunda, her seferinde MaterialPageRoute oluşturmak yerine, rotalara isim vererek navigasyonu daha düzenli hale getirebilirsiniz. Bu, özellikle büyük uygulamalarda ve derin bağlantılar (deep linking) için kullanışlıdır.
1.Rotaları Tanımlama: MaterialApp içinde routes özelliğini kullanarak rotaları tanımlayın.
2.Rota Geçişi: Navigator.pushNamed() metodunu kullanarak adlandırılmış rotalara geçiş yapın.

3. Route Parametreleri

Bir rotadan diğerine veri aktarmanız gerekebilir. Adlandırılmış rotalarla birlikte parametre geçişi birkaç farklı şekilde yapılabilir:
arguments özelliği ile: pushNamed metodunun arguments özelliğini kullanarak herhangi bir veri tipini gönderebilirsiniz. Hedef sayfada ModalRoute.of(context)!.settings.arguments ile bu verilere erişebilirsiniz.
Constructor ile: Eğer parametreler basit ve az sayıdaysa, hedef sayfanın constructor'ına doğrudan parametre geçirebilirsiniz. Ancak bu yöntem, adlandırılmış rotalarla doğrudan uyumlu değildir ve MaterialPageRoute ile daha sık kullanılır.
onGenerateRoute ile: Daha karmaşık rota yönetimi ve parametre geçişi senaryoları için MaterialApp'ın onGenerateRoute özelliğini kullanabilirsiniz. Bu, uygulamanızın dinamik rotaları işlemesine olanak tanır.
Navigasyon ve rota yönetimi, kullanıcı deneyimini doğrudan etkileyen önemli bir konudur. Uygulamanızın yapısına ve karmaşıklığına göre en uygun navigasyon yöntemini seçmek, uygulamanızın daha düzenli ve yönetilebilir olmasını sağlayacaktır.