Sobes.tech
Junior

Care este caracteristica utilizării SharedPreferences în Flutter?

sobes.tech AI

Răspuns de la AI

SharedPreferences oferă o API simplă pentru stocarea unor volume mici de date (tipuri primitive: int, double, bool, String, List<String>) sub formă de perechi cheie-valoare. Datele sunt salvate asincron. Acest lucru este potrivit pentru stocarea setărilor utilizatorului, a steagurilor de stare și a altor informații non-critice.

Caracteristici:

  • Ușor de utilizat: API-ul este ușor și intuitiv.
  • Operații asincrone: Toate operațiile de citire și scriere sunt asincrone, evitând blocarea firului UI.
  • Set limitat de tipuri: Suportă doar tipuri primitive și liste de șiruri.
  • Nu este potrivit pentru volume mari sau date complexe: Ineficient pentru stocarea structurilor mari de date sau a unui număr mare de înregistrări.
  • Dependență de platformă: Implementarea se bazează pe mecanisme native de stocare (de exemplu, NSUserDefaults pe iOS, SharedPreferences pe Android).
  • Stocare nesigură pentru informații confidențiale: Datele sunt stocate în format text deschis, nefiind potrivite pentru parole sau alte informații sensibile.
  • Necesită await pentru acces: Obținerea instanței de SharedPreferences și efectuarea operațiilor de citire/scriere necesită utilizarea await.

Exemplu de utilizare:

// Obțineți instanța de SharedPreferences
final prefs = await SharedPreferences.getInstance();

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

// Citire date
final counter = prefs.getInt('counter') ?? 0; // Utilizare ?? pentru valoare implicită
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];

// Ștergere date
await prefs.remove('username');
await prefs.clear(); // Șterge toate datele