Sobes.tech
Junior

Ποιο είναι το χαρακτηριστικό της χρήσης των SharedPreferences στο Flutter;

sobes.tech AI

Απάντηση από AI

Το SharedPreferences παρέχει ένα απλό API για την αποθήκευση μικρών όγκων δεδομένων (πρωταρχικοί τύποι: int, double, bool, String, List<String>) με μορφή ζευγών κλειδιού-τιμής. Τα δεδομένα αποθηκεύονται ασύγχρονα. Αυτό είναι κατάλληλο για την αποθήκευση ρυθμίσεων χρήστη, σημαίων κατάστασης και άλλων μη κρίσιμων πληροφοριών.

Χαρακτηριστικά:

  • Εύκολη χρήση: Το API είναι ελαφρύ και διαισθητικό.
  • Ασύγχρονες λειτουργίες: Όλες οι λειτουργίες ανάγνωσης και εγγραφής είναι ασύγχρονες, αποτρέποντας το μπλοκάρισμα του UI thread.
  • Περιορισμένο σύνολο τύπων: Υποστηρίζει μόνο πρωταρχικούς τύπους και λίστες συμβολοσειρών.
  • Δεν είναι κατάλληλο για μεγάλους όγκους ή σύνθετα δεδομένα: Μη αποδοτικό για την αποθήκευση μεγάλων δομών δεδομένων ή πολλών εγγραφών.
  • Εξαρτάται από την πλατφόρμα: Η υλοποίηση βασίζεται σε εγγενείς μηχανισμούς αποθήκευσης (π.χ., NSUserDefaults στο iOS, SharedPreferences στο Android).
  • Μη ασφαλής αποθήκευση για εμπιστευτικές πληροφορίες: Τα δεδομένα αποθηκεύονται σε ανοιχτό κείμενο, δεν είναι κατάλληλα για κωδικούς πρόσβασης ή άλλες ευαίσθητες πληροφορίες.
  • Απαιτεί await για πρόσβαση: Η λήψη του αντικειμένου SharedPreferences και η εκτέλεση λειτουργιών ανάγνωσης/εγγραφής απαιτούν τη χρήση await.

Παράδειγμα χρήσης:

// Απόκτηση του αντικειμένου SharedPreferences
final prefs = await SharedPreferences.getInstance();

// Αποθήκευση δεδομένων
await prefs.setInt('counter', 10);
await prefs.setBool('isDarkMode', true);
await prefs.setString('username', 'FlutterDev');
await prefs.setStringList('items', ['apple', 'banana']);

// Ανάγνωση δεδομένων
final counter = prefs.getInt('counter') ?? 0; // Χρήση ?? για προεπιλεγμένη τιμή
final isDarkMode = prefs.getBool('isDarkMode') ?? false;
final username = prefs.getString('username');
final items = prefs.getStringList('items') ?? [];

// Διαγραφή δεδομένων
await prefs.remove('username');
await prefs.clear(); // Διαγράφει όλα τα δεδομένα