Sobes.tech
Junior

Aká je vlastnosť používania SharedPreferences vo Flutteri?

sobes.tech AI

Odpoveď od AI

SharedPreferences poskytuje preprost API za shranjevanje majhnih količin podatkov (primitivni tipi: int, double, bool, String, List<String>) v obliki parov ključ-vrednost. Podatki se shranjujejo asinhrono. To je primerno za shranjevanje uporabniških nastavitev, zastavic stanja in drugih nekritičnih informacij.

Lastnosti:

  • Enostavnost uporabe: API je lahek in intuitiven.
  • Asinhrone operacije: Vse operacije branja in pisanja so asinhrone, kar preprečuje blokiranje UI niti.
  • Omejen nabor tipov: Podpira samo primitivne tipe in sezname nizov.
  • Ni primerno za velike količine ali kompleksne podatke: Ni učinkovit za shranjevanje velikih struktur podatkov ali velikega števila zapisov.
  • Odvisnost od platforme: Implementacija temelji na nativnih mehanizmih shranjevanja (npr. NSUserDefaults na iOS, SharedPreferences na Androidu).
  • Nezavarovano shranjevanje za zaupne informacije: Podatki se shranjujejo v odprtem besedilu, niso primerni za gesla ali druge občutljive informacije.
  • Za dostop je potreben await: Pridobivanje instance SharedPreferences in izvajanje operacij branja/pisanja zahtevata uporabo await.

Primer uporabe:

// Pridobivanje instance SharedPreferences
final prefs = await SharedPreferences.getInstance();

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

// Branje podatkov
final counter = prefs.getInt('counter') ?? 0; // Uporaba ?? za privzeto vrednost
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];

// Brisanje podatkov
await prefs.remove('username');
await prefs.clear(); // Izbriše vse podatke