CodeBlanks Logo Icon CodeBlanks

shared_preferences nedir?

shared_preferences ile basit anahtar-değer saklamayı öğrenirsin.

shared_preferences nedir?

shared_preferences, uygulamanın basit anahtar-değer verilerini kalıcı olarak saklamak için kullanılan pakettir. Kullanıcı tercihleri, ayarlar ve küçük bayraklar için uygundur; büyük dosyalar ya da hassas veriler için değildir. Veriler uygulama kapatılsa bile kalır.

import 'package:shared_preferences/shared_preferences.dart';

final prefs = await SharedPreferences.getInstance();
await prefs.setString('name', 'Ada');

Anahtar-değer yapısı

shared_preferences'te her veri bir anahtarla (String) saklanır ve değer ilkel bir türdür: String, int, bool, double ya da String listesi. Aynı anahtara tekrar yazarsan eski değer üzerine yazılır. Okurken anahtar yoksa null döner.

// yazma
await prefs.setString('theme', 'dark');
await prefs.setBool('loggedIn', true);

// okuma
prefs.getString('theme');  // 'dark' ya da null

Uygulama shared_preferences ile değer sakla

shared_preferences paketini içe aktar, getInstance ile prefs al, 'greeting' anahtarına 'merhaba' değerini yaz ve print ile bastır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';
// shared_preferences paketini içe aktar

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // getInstance ile prefs al
  // 'greeting' anahtarına 'merhaba' yaz
  // değeri print ile bastır
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: Center(child: Text('shared_preferences')));
  }
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final prefs = await SharedPreferences.getInstance();
  await prefs.setString('greeting', 'merhaba');
  print(prefs.getString('greeting'));
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: Center(child: Text('shared_preferences')));
  }
}

Beklenen çıktı

merhaba

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 shared_preferences ile hangi veriyi saklamak uygundur?

  • Binlerce resim dosyası
  • Şifre ve kredi kartı numarası
  • Gerçek zamanlı sohbet mesajları
  • Kullanıcı teması ve ayarları Doğru cevap

Açıklama: shared_preferences küçük, ilkel türdeki anahtar-değer çiftleri için tasarlanmıştır; büyük dosyalar ve hassas veriler için uygun değildir.

2 shared_preferences paketini içe aktar

Soru
import 'package:____.dart';
Cevap
import 'package:shared_preferences/shared_preferences.dart';

Açıklama: shared_preferences paketinin import yolu package:shared_preferences/shared_preferences.dart şeklindedir.

3 shared_preferences parçaları

Kavram Anlamı
shared_preferences Paket adı
anahtar String tanımlayıcı
değer Saklanan veri
kalıcı Uygulama kapansa da durur

Orta seviye bölümündeki tüm dersler