Junior
Τι είναι οι SharedPreferences και πώς τις χρησιμοποιείτε;
sobes.tech AI
Απάντηση από AI
SharedPreferences είναι ένας απλός μηχανισμός για την αποθήκευση μικρών όγκων δεδομένων σε ζεύγη κλειδιού-τιμής. Ιδανικό για την αποθήκευση ρυθμίσεων χρήστη ή μικρών σημαίων.
Χρήση:
-
Προσθήκη εξάρτησης: Στο αρχείο
pubspec.yaml, προσθέτουμε:dependencies: flutter: sdk: flutter shared_preferences: ^2.2.0 # Χρησιμοποιήστε την τρέχουσα έκδοσηκαι εκτελούμε
flutter pub get. -
Εισαγωγή:
import 'package:shared_preferences/shared_preferences.dart'; -
Λήψη στιγμιότυπου:
// Ασύγχρονη λειτουργία SharedPreferences prefs = await SharedPreferences.getInstance(); -
Αποθήκευση δεδομένων:
// Αποθήκευση συμβολοσειράς prefs.setString('username', 'Alice'); // Αποθήκευση αριθμού (int) prefs.setInt('age', 30); // Αποθήκευση αριθμού (double) prefs.setDouble('salary', 50000.50); // Αποθήκευση boolean prefs.setBool('darkMode', true); // Αποθήκευση λίστας συμβολοσειρών prefs.setStringList('items', ['item1', 'item2']);Όλες οι μέθοδοι αποθήκευσης επιστρέφουν
Future<bool>, που υποδεικνύει την επιτυχία της λειτουργίας. -
Ανάγνωση δεδομένων:
// Ανάγνωση συμβολοσειράς String? username = prefs.getString('username'); // Επιστρέφει null αν το κλειδί δεν βρεθεί // Ανάγνωση αριθμού (int) int? age = prefs.getInt('age'); // Ανάγνωση αριθμού (double) double? salary = prefs.getDouble('salary'); // Ανάγνωση boolean bool? darkMode = prefs.getBool('darkMode'); // Ανάγνωση λίστας συμβολοσειρών List<String>? items = prefs.getStringList('items'); -
Διαγραφή δεδομένων:
// Διαγραφή με κλειδί prefs.remove('username'); // Επιστρέφει `Future<bool>` // Διαγραφή όλων prefs.clear(); // Επιστρέφει `Future<bool>`
Περιορισμοί:
- Δεν κατάλληλο για αποθήκευση μεγάλων όγκων δεδομένων ή πολύπλοκων δομών.
- Τα δεδομένα αποθηκεύονται σε ανοιχτή μορφή (ακόμα και σε επίπεδο εφαρμογής), δεν κατάλληλο για ευαίσθητες πληροφορίες.
- Λειτουργεί με βασικούς τύπους δεδομένων. Για αντικείμενα απαιτείται σειριοποίηση/αποσειριοποίηση (π.χ. με json).