Sobes.tech
Junior

Flutter'da SharedPreferences kullanımının özelliği nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

SharedPreferences, küçük veri hacimlerini (ilkel tipler: int, double, bool, String, List<String>) anahtar-değer çiftleri olarak saklamak için basit bir API sağlar. Veriler asenkron olarak kaydedilir. Bu, kullanıcı ayarları, durum bayrakları ve diğer kritik olmayan bilgiler için uygundur.

Özellikler:

  • Kullanım kolaylığı: API hafif ve sezgiseldir.
  • Asenkron işlemler: Tüm okuma ve yazma işlemleri asenkron olup, UI akışını engellemez.
  • Sınırlı tip seti: Sadece temel tipleri ve string listelerini destekler.
  • Büyük veri veya karmaşık veri için uygun değil: Büyük veri yapıları veya çok sayıda kayıt saklamak için verimli değildir.
  • Platform bağımlılığı: Uygulama, yerel depolama mekanizmalarına dayanır (örneğin, iOS'ta NSUserDefaults, Android'de SharedPreferences).
  • Güvenli olmayan saklama: Veriler açık metin olarak saklanır, şifreler veya diğer hassas bilgiler için uygun değildir.
  • Erişim için await gerekir: SharedPreferences örneği almak ve okuma/yazma işlemleri yapmak için await kullanmak gerekir.

Kullanım örneği:

// SharedPreferences örneği alma
final prefs = await SharedPreferences.getInstance();

// Veri kaydetme
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);

// Veri okuma
final counter = prefs.getInt('counter') ?? 0; // Varsayılan değer için ?? kullanımı
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];

// Veri silme
await prefs.remove('username');
await prefs.clear(); // Tüm verileri sil