Junior
Czym są SharedPreferences i jak ich używać?
sobes.tech AI
Odpowiedź od AI
SharedPreferences to prosty mechanizm do przechowywania niewielkich ilości danych w parach klucz-wartość. Idealny do przechowywania ustawień użytkownika lub małych flag.
Użycie:
-
Dodanie zależności: W pliku
pubspec.yamldodajemy:dependencies: flutter: sdk: flutter shared_preferences: ^2.2.0 # Użyj aktualnej wersjii wykonujemy
flutter pub get. -
Import:
import 'package:shared_preferences/shared_preferences.dart'; -
Uzyskanie instancji:
// Operacja asynchroniczna SharedPreferences prefs = await SharedPreferences.getInstance(); -
Zapisywanie danych:
// Zapisanie ciągu znaków prefs.setString('username', 'Alice'); // Zapisanie liczby (int) prefs.setInt('age', 30); // Zapisanie liczby (double) prefs.setDouble('salary', 50000.50); // Zapisanie wartości boolowskiej prefs.setBool('darkMode', true); // Zapisanie listy ciągów znaków prefs.setStringList('items', ['item1', 'item2']);Wszystkie metody zapisu zwracają
Future<bool>, wskazując na powodzenie operacji. -
Odczyt danych:
// Odczytanie ciągu znaków String? username = prefs.getString('username'); // Zwraca null, jeśli klucz nie istnieje // Odczytanie liczby (int) int? age = prefs.getInt('age'); // Odczytanie liczby (double) double? salary = prefs.getDouble('salary'); // Odczytanie wartości boolowskiej bool? darkMode = prefs.getBool('darkMode'); // Odczytanie listy ciągów znaków List<String>? items = prefs.getStringList('items'); -
Usuwanie danych:
// Usunięcie po kluczu prefs.remove('username'); // Zwraca Future<bool> // Usunięcie wszystkich danych prefs.clear(); // Zwraca Future<bool>
Ograniczenia:
- Nie nadaje się do przechowywania dużych ilości danych lub złożonych struktur.
- Dane są przechowywane w formacie otwartym (nawet na poziomie aplikacji), nie nadaje się do poufnych informacji.
- Działa z podstawowymi typami danych. Dla obiektów wymagana jest serializacja/deserializacja (np. za pomocą json).