Sobes.tech
Junior

Mi az a SharedPreferences és hogyan használjuk?

sobes.tech MI

Válasz az MI-től

SharedPreferences egy egyszerű mechanizmus kis adatmennyiség tárolására kulcs-érték párokban. Ideális felhasználói beállítások vagy kis zászlók mentésére.

Használat:

  1. Függőség hozzáadása: A pubspec.yaml fájlban hozzáadjuk:

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Használja a jelenlegi verziót
    

    és futtatjuk a flutter pub get parancsot.

  2. Importálás:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Példány szerzése:

    // Aszinkron művelet
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Adatok mentése:

    // String mentése
    prefs.setString('username', 'Alice');
    // Szám (int) mentése
    prefs.setInt('age', 30);
    // Szám (double) mentése
    prefs.setDouble('salary', 50000.50);
    // Logikai érték mentése
    prefs.setBool('darkMode', true);
    // String lista mentése
    prefs.setStringList('items', ['item1', 'item2']);
    

    Minden mentési módszer Future<bool>-t ad vissza, ami a művelet sikerességét jelzi.

  5. Adatok olvasása:

    // String olvasása
    String? username = prefs.getString('username'); // Nullt ad vissza, ha nincs kulcs
    // Szám (int) olvasása
    int? age = prefs.getInt('age');
    // Szám (double) olvasása
    double? salary = prefs.getDouble('salary');
    // Logikai érték olvasása
    bool? darkMode = prefs.getBool('darkMode');
    // String lista olvasása
    List<String>? items = prefs.getStringList('items');
    
  6. Adatok törlése:

    // Kulcs szerinti törlés
    prefs.remove('username'); // `Future<bool>`-t ad vissza
    // Minden adat törlése
    prefs.clear(); // `Future<bool>`-t ad vissza
    

Korlátozások:

  • Nem alkalmas nagy adatmennyiség vagy összetett struktúrák tárolására.
  • Az adatok nyílt formátumban tárolódnak (még az alkalmazás szintjén is), nem alkalmas érzékeny információkra.
  • Alapvető adattípusokkal működik. Objektumok esetén szükséges a serializáció/deserializáció (pl. json segítségével).