Flutter Sharedpreferences


Merhaba arkadaşlar bu yazımda sizlere Flutter ile proje geliştirirken küçük verileri nasıl saklayabileceğimizi, uygulama kapansa bile nasıl koruyabileceğimizden bahsedeceğim.

SharedPreferences Nedir?

Normalde web uygulamalarında verileri saklamak için mysql, mobil uygulamalarda veya pc uygulamalarında sqlite gibi database yapıları kullanırız.
Tabi bu databases yapıllarını kullanmak hem zahmetlidir hemde küçük projeler, az verinin olduğu sistemler için gereksizdir. İşte bu yüzden Sharedpreferences dediğimiz bir fonksiyondan faydalanıp küçük verilerimizi oldukça basit bir şekilde saklayıp istediğimiz zaman kullanabiliriz.

SharedPreferences Nasıl Kullanılır ?

pubspec.yaml Dosyasına girmemiz ve dependencies: kısmının altına shared_preferences: "Son sürüm"  kod blogunu eklemeliyiz ki projemize dahil olsun.

dependencies:
  flutter:
    sdk: flutter
  url_launcher: ^5.4.2
  shared_preferences: ^0.5.6+2


Bu eklemeyi yaptıktan sonra SharedPreferences kullanacağımız .dart sayfalarına SharedPreferences i import etmemiz gerekiyor.

import 'package:shared_preferences/shared_preferences.dart';


Sayfalarımıza import kısmını da yaptıktan sonra artık çok rahat bir şekilde verilerimizi SharedPreferences e kaydedebilir veya çekebiliriz.

SharedPreferences ile veri çekmek

sharedPreferencesVeriCekme() async{
  SharedPreferences veri = await SharedPreferences.getInstance();
  int intveri = veri.getInt("Key");
  double doubleveri = veri.getDouble("Key");
  bool boolveri = veri.getBool("Key");
  String stringveri = veri.getString("Key")
}


Arkadaşlar SharedPreferences ile çekmek istediğimiz verileri bu şekilde çekebiliyoruz.
".getInt("Key");" şeklinde çekmek istediğimiz verinin veriyi kaydederken girdiğimiz anahtar kelimesi ile rahat bir şekilde çekebiliyoruz.


SharedPreferences ile veri kaydetmek

sharedPreferencesVeriKaydetme() async{
  SharedPreferences veri = await SharedPreferences.getInstance();
  veri.setInt("Key", 1);
  veri.setDouble("Key", 0.5);
  veri.setBool("Key", true);
  veri.setString("Key", "Yazınız");
}


Yukarıda gördüğünüz gibi veri kaydederken ".setInt("Key", deger);" şeklinde verinizi kaydedebiliyorsunuz. Buradaki "Key" ileride veriyi çekerken kullanacağınız anahtar kelimedir.

Not : Ek olarak arkadaşlar gelen verinin Null dönmesini istemiyorsanız yani eğer daha önce herhangi bir veri kaydedilmemiş ise verileri çekerken sonuna ?? 0 koyrsanız null dönen değerler size 0 olarak gösterilir. Yani default değer ataması yapmış olursunuz.

SharedPreferences default değer döndürme

sharedPreferencesDefaultBelirleme() async{
  SharedPreferences veri = await SharedPreferences.getInstance();
  int intveri = veri.getInt("Key") ?? 0;
  double doubleveri = veri.getDouble("Key") ?? 0.5;
  bool boolveri = veri.getBool("Key") ?? true;
  String stringveri = veri.getString("Key") ?? "Default Yazı";
}

SharedPreferences veri silme

Eğer herhangi bir veriyi silmek isterseniz ".remove("Key");" yapısını kullanarak silebilirsiniz.

sharedPreferencesVeriSilme() async{
  SharedPreferences veri = await SharedPreferences.getInstance();
  veri.remove("Key");
}


SharedPreferences kullanımı bu kadar merak ettiğiniz, aklınıza takılanlar olursa aşağıda yorum olarak sorabilirsiniz.