Sobes.tech
Junior

Čo sú SharedPreferences a ako ich používať?

sobes.tech AI

Odpoveď od AI

SharedPreferences je jednoduchý mechanizmus na ukladanie malých objemov dát vo formáte kľúč-hodnota. Ideálny na uloženie používateľských nastavení alebo malých vlajok.

Použitie:

  1. Pridanie závislosti: Do súboru pubspec.yaml pridáme:

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Použite aktuálnu verziu
    

    a spustíme flutter pub get.

  2. Import:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Získanie inštancie:

    // Asynchrónna operácia
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Uloženie dát:

    // Uloženie reťazca
    prefs.setString('username', 'Alice');
    // Uloženie čísla (int)
    prefs.setInt('age', 30);
    // Uloženie čísla (double)
    prefs.setDouble('salary', 50000.50);
    // Uloženie boolean hodnoty
    prefs.setBool('darkMode', true);
    // Uloženie zoznamu reťazcov
    prefs.setStringList('items', ['item1', 'item2']);
    

    Všetky metódy ukladania vracajú Future<bool>, čo indikuje úspešnosť operácie.

  5. Čítanie dát:

    // Čítanie reťazca
    String? username = prefs.getString('username'); // Vráti null, ak kľúč neexistuje
    // Čítanie čísla (int)
    int? age = prefs.getInt('age');
    // Čítanie čísla (double)
    double? salary = prefs.getDouble('salary');
    // Čítanie boolean
    bool? darkMode = prefs.getBool('darkMode');
    // Čítanie zoznamu reťazcov
    List<String>? items = prefs.getStringList('items');
    
  6. Odstránenie dát:

    // Odstránenie podľa kľúča
    prefs.remove('username'); // Vráti `Future<bool>`
    // Odstránenie všetkých dát
    prefs.clear(); // Vráti `Future<bool>`
    

Obmedzenia:

  • Nie je vhodné na ukladanie veľkých objemov dát alebo zložitých štruktúr.
  • Dáta sa ukladajú v otvorenom formáte (aj na úrovni aplikácie), nie sú vhodné na citlivé informácie.
  • Funguje s základnými typmi dát. Pre objekty je potrebná serializácia/deserializácia (napríklad pomocou json).