Sobes.tech
Junior

Co jsou SharedPreferences a jak je používat?

sobes.tech AI

Odpověď od AI

SharedPreferences je jednoduchý mechanismus pro ukládání malých objemů dat ve formě párů klíč-hodnota. Ideální pro ukládání uživatelských nastavení nebo malých vlajek.

Použití:

  1. Přidání závislosti: Do souboru pubspec.yaml přidáme:

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.2.0 # Použijte aktuální verzi
    

    a spustíme flutter pub get.

  2. Import:

    import 'package:shared_preferences/shared_preferences.dart';
    
  3. Získání instance:

    // Asynchronní operace
    SharedPreferences prefs = await SharedPreferences.getInstance();
    
  4. Uložení dat:

    // Uložení řetězce
    prefs.setString('username', 'Alice');
    // Uložení čísla (int)
    prefs.setInt('age', 30);
    // Uložení čísla (double)
    prefs.setDouble('salary', 50000.50);
    // Uložení booleanu
    prefs.setBool('darkMode', true);
    // Uložení seznamu řetězců
    prefs.setStringList('items', ['item1', 'item2']);
    

    Všechny metody ukládání vracejí Future<bool>, což indikuje úspěšnost operace.

  5. Čtení dat:

    // Čtení řetězce
    String? username = prefs.getString('username'); // Vrací null, pokud klíč neexistuje
    // Čtení čísla (int)
    int? age = prefs.getInt('age');
    // Čtení čísla (double)
    double? salary = prefs.getDouble('salary');
    // Čtení booleanu
    bool? darkMode = prefs.getBool('darkMode');
    // Čtení seznamu řetězců
    List<String>? items = prefs.getStringList('items');
    
  6. Odstranění dat:

    // Odstranění podle klíče
    prefs.remove('username'); // Vrací `Future<bool>`
    // Odstranění všech dat
    prefs.clear(); // Vrací `Future<bool>`
    

Omezení:

  • Není vhodné pro ukládání velkých objemů dat nebo složitých struktur.
  • Data jsou uložena v otevřeném formátu (i na úrovni aplikace), není vhodné pro citlivé informace.
  • Funguje s základními datovými typy. Pro objekty je nutná serializace/deserializace (například pomocí json).