Flutter Shared Preferences(Paylaşılan Tercihler) Kullanımı

Flutter Shared Preferences(Paylaşılan Tercihler) Kullanımı

-Paket adresi : https://pub.dartlang.org/packages/shared_preferences
-Uygulama kapatıldığında uygulama ayarlarını anahtar değer çifti şeklinde saklamaya olanak sağlar.
-Paylaşılan Tercihler XML formatında saklanır.
-Uygulamayı kaldırmak yada ayarlardan uygulama verilerini silmek o uygulamanın Shared Preferences verilerinin silinmesine neden olur. Ön bellk temizlenmesi ile silinmez!
-Shared Preferences asıl kullanımı kullanıcı tercihlerini, ayarları, küçük verileri kaydetmektir, böylece uygulama bir daha başlatıldığında, bu bilgiler çekilip kullanılabilir.
 
 
Paket Kullanımı
 
1. pubspec.yaml dosyasında dependencies: altına shared_preferences: ^0.5.2+2 ekle ve dosyayı kaydet. Otomatik olarak flutter paketi indirip ekleyecek.
 
dependencies:
  shared_preferences: ^0.5.2+2
 
2. yaml dosyasını kaydettikten sonra eğer dosya indirilmesi başlamaz ise  konsoldan “flutter pub get” yazıp entera basarak indirme işlemini başlatabilirsiniz.
 
 
3. Kullanılmak istenen dosyaya import etmek
import ‘package:shared_preferences/shared_preferences.dart’;
 
4. Kayıtlara erişmek ve dğiştirmek için sunulan fonksiyon listesi
 
Kayıt Okumak, Getters;
 
Değer talep edilen türde değil ise hata döndürür. getBool(String key); örneğinde değer bool türünde değil ise hata döner.
 
Set<String> getKeys(); // tüm key leri döndürür.
bool containsKey(String key); // böyle bir key mevcut ise true döndürür.
 
dynamic get(String key);// verilen key’in  atanmış olan değeri dynamic tipindedir, her tipte değer döndürebilir.
bool getBool(String key);// verilen key’in  atanmış olan değeri bool’dur bu  bool değeri döndürür.
int getInt(String key); // verilen key’in  atanmış olan değeri int’dur bu  int değeri döndürür.
double getDouble(String key);// verilen key’in  atanmış olan değeri Double’dur bu  Double değeri döndürür.
String getString(String key); // verilen key’in  atanmış olan değeri string’tir bu  string değeri döndürür.
List<String> getStringList(String key); //String array(list<String>) kaydı döndürür.
 
 
 
Kayıt Girmek, Setters;
 
Tüm setterler bool döndürür.
Tüm setterler için null değerleri remove olarak değerlendirilir. Yani anahtar ve değer silinir.
 
Future<bool> setBool(String key, bool value);//İlişkili anahtara bool değer kaydeder.
Future<bool> setInt(String key, int value); //İlişkili anahtara int değer kaydeder.
Future<bool> setDouble(String key, double value); //İlişkili anahtara Double değer kaydeder. Android te float olarak kaydedilir.
Future<bool> setString(String key, String value); //İlişkili anahtara String değer kaydeder.
Future<bool> setStringList(String key, List<String> value); //İlişkili anahtara String listesi kaydı girer.
 
 
Kayıt Silmek;
 
Future<bool> remove(String key); // Bir anahtarı kalıcı bellekten kaldırır ve true döndürür. Tüm setterler için null değerleri remove olarak değerlendirilir. Yani anahtar ve değer silinir.
 
Tüm Kayıtları Temizlemek;
Future<bool> clear() ;// kullanıcı verilerinin tüm anahtar değer  çiftlerini siler ve true döndürür
 
 
 
Future<bool> _setValue(String valueType, String key, Object value);
Future<bool> commit(); //İOS’ta senkronizasyon kullanımdan kaldırıldı olarak işaretlendi. Android’de, her seti taahhüt eder.
 
Test için Sahte Kayıt Başlatmak;
static void setMockInitialValues(Map<String, dynamic> values); // sharet preferences   test için sahte değerler ile başlatır
 
 
 
5. Kullanımı
class SharedPreferencesHelper {
 
 
//Kayıt Okumak, Getters;
 
// tüm key leri döndürür.
 static Future<Set<String>> tumKeyleriGetir() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.getKeys();
 }
 
 // böyle bir key mevcut ise true döndürür.
 static Future<bool> keyVarmi(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.containsKey(key);
 }
 
 
// verilen key'in  atanmış olan değeri dynamic tipindedir, her tipte değer döndürebilir.
 static Future<dynamic> kayitOkuDynamic(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.get(key) ?? 'degeryok';
 }
 
// verilen key'in  atanmış olan değeri bool'dur bu  bool değeri döndürür.
 static Future<bool> kayitOkuBool(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.getBool(key) ?? false;
 }
 
// verilen key'in  atanmış olan değeri int'dur bu  int değeri döndürür.
 static Future<int> kayitOkuInt(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.getInt(key) ?? 0;
 }
 
// verilen key'in  atanmış olan değeri Double'dur bu  Double değeri döndürür.
 static Future<double> kayitOkuDouble(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.getDouble(key) ?? 0;
 }
 
// verilen key'in  atanmış olan değeri string'tir bu  string değeri döndürür.
 static Future<String> kayitOkuString(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.getString(key) ?? 'degeryok';
 }
 
//String array(list<String>) kaydı döndürür.
 static Future<List<String> > kayitOkuStringList(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.getStringList(key) ?? 'degeryok';
 }
 
 
 
//Kayıt Girmek, Setters;
 
//Tüm setterler bool döndürür.
//Tüm setterler için null değerleri remove olarak değerlendirilir. Yani anahtar ve değer silinir.
 
//İlişkili anahtara bool değer kaydeder. Başarılı ise true döndürür
 static Future<bool> kayitGirBool(String key, bool value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.setBool( key,  value);
 }
 
//İlişkili anahtara int değer kaydeder. Başarılı ise true döndürür
 static Future<bool> kayitGirInt(String key, int value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.setInt( key,  value);
 }
 
//İlişkili anahtara Double değer kaydeder. Başarılı ise true döndürür
 static Future<bool> kayitGirDouble(String key, double value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.setDouble( key,  value);
 }
 
//İlişkili anahtara String değer kaydeder. Başarılı ise true döndürür
 static Future<bool> kayitGirString(String key, String value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.setString( key,  value);
 }
 
//İlişkili anahtara StringList değer kaydeder. Başarılı ise true döndürür
 static Future<bool> kayitGirStringList(String key, List<String> value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.setStringList( key, value);
 }
 
 
 
//Kayıt Silmek;
 
// Bir anahtarı kalıcı bellekten kaldırır ve true döndürür. Tüm setterler için null değerleri remove olarak değerlendirilir. Yani anahtar ve değer silinir.
 static Future<bool> birKayitSil(String key) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.remove(key);
 }
 
// kullanıcı verilerinin tüm anahtar değer  çiftlerini siler ve true döndürür
 static Future<bool> tumKayitSil() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
 
return prefs.clear();
 }
 
 
} 

This Post Has 2 Comments

  1. Genco yazılım

    Shared Preferences bu işlemde json veri tutumak istiyorum uygulama kapatıldığında silmesini istiyorum bunu nasıl yapa bilirim

  2. fdadmin

    json veri dediğiniz küçük bir veri kümesi ise sprefte anahtar değer olarak tutabilirsiniz.Uygulama kapatıldığında silinmesini istiyorsanız bunu sprefe yazmanıza gerek yok. spref te veri yazılmasının amacı uygulama yeniden aildiğinda veriyi hatırlamaktır. dediğim gibi veri kümesi küçük ise bunu bir state olarak tutabilirsiniz ki bu global state(uygulama duzeyinde state) anlamına gelir flutter state yönetimi yazıma ve örneğe bi bakmanızı tavsiye ederim.

Bir cevap yazın