Junior
Was ist die Besonderheit bei der Verwendung von SharedPreferences in Flutter?
sobes.tech KI
Antwort von AI
SharedPreferences bietet eine einfache API zum Speichern kleiner Datenmengen (primitive Typen: int, double, bool, String, List<String>) in Form von Schlüssel-Wert-Paaren. Die Daten werden asynchron gespeichert. Dies eignet sich für die Speicherung von Benutzereinstellungen, Statusflags und anderen nicht kritischen Informationen.
Merkmale:
- Benutzerfreundlichkeit: Die API ist leichtgewichtig und intuitiv.
- Asynchrone Operationen: Alle Lese- und Schreiboperationen sind asynchron, um das Blockieren des UI-Threads zu vermeiden.
- Begrenzter Typensatz: Unterstützt nur primitive Typen und String-Listen.
- Nicht geeignet für große Datenmengen oder komplexe Daten: Nicht effizient für große Datenstrukturen oder viele Einträge.
- Plattformabhängigkeit: Die Implementierung basiert auf nativen Speichermethoden (z.B.
NSUserDefaultsauf iOS,SharedPreferencesauf Android). - Unsichere Speicherung für vertrauliche Informationen: Daten werden im Klartext gespeichert, nicht geeignet für Passwörter oder andere sensible Daten.
- Zugriff erfordert
await: Das Abrufen derSharedPreferences-Instanz und das Ausführen von Lese-/Schreiboperationen erfordern die Verwendung vonawait.
Beispiel:
// Zugriff auf SharedPreferences-Instanz
final prefs = await SharedPreferences.getInstance();
// Daten speichern
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);
// Daten lesen
final counter = prefs.getInt('counter') ?? 0; // Standardwert mit ??
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];
// Daten entfernen
await prefs.remove('username');
await prefs.clear(); // Alle Daten löschen