Flutter, Login Bilgisi Tutma

Kadir Bekar
Flutter Türkiye
Published in
3 min readMar 22, 2020

Merhaba arkadaşlar. Shared preferences paketi ile kullanıcı daha önce oturum açtı mı, açtı ise bunun bilgisini nasıl tutarız, sayfa yönlendirmesini nasıl yaparız ile alakalı bir içerik oluşturmayı deneyeceğim, umarım faydalı olur.

Sayfa yönlendirmesi, login bilgisini tutma ve kontrolü vb. aksiyonların kod paylaşımlarını yapıyor olacağım. Bütün proje kodlarına sayfanın sonuna bırakacağım linkten ulaşabilirsiniz.

Uygulamanın klasör yapısını, pubspec.yaml dosyasına shared preferences paketini ve uygulamada kullanacağımız resmi nasıl eklediğimizi fikir vermesi açısından genel bir resim ekleyerek başlayalım.

Terminal ekranına flutter pub get yazıp enter tuşuna basarak dosyaları uygulamaya dahil ediyoruz.

Login ekranımız resimde olduğu gibidir. Butona tıkladığımız zaman yapılan kontrollerin kodunu resmin altına ekliyorum.

login.dart
login.dart

Login başarılı olunca Anasayfa’ya yönlendirme yapıyoruz.

Shared Preferences ile alakalı işlemlere tek bir sınıf üzerinden erişebilmek için ayrı bir dart dosyası açtık, gerekli işlemleri buraya ekledik.

shared_prefs.dart

Şimdi ise login olma durumunu ele alalım. Bunun için splash_screen.dart isimli yeni bir dosya açıyorum ve gerekli kontrolleri sayfanın yüklenme kısmına ekliyorum.

Bu kontrolü yeni bir dosyaya ekleme sebebim şudur;

Kayıtlı verilerin shared preferences üzerinden okunması telefonunuzun hızına göre hızlı veya yavaş olabilir.

Varsayalım ki uygulamadan çıkış yaparken çıkış yap butonunu kullanmadık. Uygulamayı tekrar açarken “True” olan login değerimiz anlık olarak (Telefon yavaş olabilir, o esnada telefonda donma olabilir vs.) false gelebilir ve bizi login sayfasına 1 saniye bile olsa yönlendirme yapabilir. Bu kötü görüntüden kaçınmak için verilerin arka planda yüklenmesi, uygulamanın açılırken hoş bir izlenim bırakması amacıyla bu şekilde açılış yapıyoruz.

Son olarak çıkış yap butonuna basınca neler oluyor ona bakalım.

Öncelikle Shared Preferences üzerine kayıt ettiğimiz login, mail ve şifre değerlerini telefon hafızasından tamamen temizliyoruz daha sonra pushAndRemoveUntil metodu ile login sayfasına yönlendirme yapıyoruz. Bunun sebebi ise kullanıcı geri tuşuna basarsa bizi tekrardan home_page.dart sayfasına yönlendirmemesidir. Umarım faydalı olmuştur. Keyifli kodlamalar dilerim :)

Not: Geri dönüş olarak bildirimde bulunan arkadaşlara çok teşekkür ediyorum ve bir konuya değinmek istiyorum. Login bilgisi vb. önemli bilgileri telefonun yerel hafızasına kayıt etmek için tabi ki birden fazla çözüm var. Bu makalede amacım en azından bu mantığı uygulamamıza nasıl ekleyebiliriz konusudur. SharedPrefences paketi yerine hive, flutter_secure_storage gibi paketleri de kullanabiliriz, bu tamamen size ve ihtiyacınıza göre değişen bir konudur :)

--

--