Sobes.tech
Junior

Mi a SharedPreferences használatának sajátossága Flutterben?

sobes.tech MI

Válasz az MI-től

SharedPreferences egy egyszerű API-t biztosít kis adatmennyiségek (primitív típusok: int, double, bool, String, List<String>) tárolására kulcs-érték párok formájában. Az adatok aszinkron módon kerülnek mentésre. Ez alkalmas felhasználói beállítások, állapotjelzők és más nem kritikus információk tárolására.

Jellemzők:

  • Egyszerű használat: Az API könnyű és intuitív.
  • Aszinkron műveletek: Minden olvasási és írási művelet aszinkron, így nem blokkolja a UI szálat.
  • Korlátozott típuskészlet: Csak primitív típusokat és sztring listákat támogat.
  • Nem alkalmas nagy mennyiségű vagy összetett adatok tárolására: Nem hatékony nagy adatszerkezetek vagy sok rekord tárolására.
  • Platformfüggő: A megvalósítás natív tárolási mechanizmusokra épül (pl. NSUserDefaults iOS-en, SharedPreferences` Androidon).
  • Nem biztonságos érzékeny adatok tárolására: Az adatok nyílt szövegként kerülnek tárolásra, nem alkalmas jelszavak vagy más érzékeny információk számára.
  • Az eléréshez await szükséges: A SharedPreferences példányának megszerzése és az olvasási/írási műveletek végrehajtása await használatát igényli.

Használati példa:

// A SharedPreferences példányának megszerzése
final prefs = await SharedPreferences.getInstance();

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

// Adatok olvasása
final counter = prefs.getInt('counter') ?? 0; // Az ?? a default értékhez
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];

// Adatok törlése
await prefs.remove('username');
await prefs.clear(); // Minden adat törlése