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
awaitszükséges: ASharedPreferencespéldányának megszerzése és az olvasási/írási műveletek végrehajtásaawaithaszná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