Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε πώς υλοποιείται η αποθήκευση και η διαχείριση δεδομένων στο DataStore;

sobes.tech AI

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

Το DataStore στο Android είναι ένας σύγχρονος τρόπος αποθήκευσης δεδομένων που αντικαθιστά το SharedPreferences. Βασίζεται σε Kotlin Coroutines και Flow, παρέχοντας ασύγχρονο και αντιδραστικό χειρισμό δεδομένων.

Η αποθήκευση δεδομένων πραγματοποιείται μέσω δύο βασικών τύπων DataStore:

  • Preferences DataStore — αποθηκεύει ζεύγη κλειδιού-τιμής, παρόμοια με το SharedPreferences, αλλά με υποστήριξη για ρεύματα και χωρίς μπλοκαρίσματα.
  • Proto DataStore — αποθηκεύει δεδομένα ως σειριοποιημένα αντικείμενα protobuf, επιτρέποντας εργασία με αυστηρά τυποποιημένες δομές.

Τα δεδομένα αποθηκεύονται σε ένα αρχείο στον δίσκο, και η πρόσβαση σε αυτά γίνεται μέσω Flow, που επιτρέπει την εγγραφή σε αλλαγές και την λήψη ενημερώσεων σε πραγματικό χρόνο.

Παράδειγμα χρήσης του Preferences DataStore:

val Context.dataStore by preferencesDataStore(name = "settings")

val EXAMPLE_KEY = stringPreferencesKey("example_key")

// Αποθήκευση δεδομένων
suspend fun saveExample(value: String) {
    context.dataStore.edit { preferences ->
        preferences[EXAMPLE_KEY] = value
    }
}

// Ανάγνωση δεδομένων
val exampleFlow: Flow<String?> = context.dataStore.data
    .map { preferences ->
        preferences[EXAMPLE_KEY]
    }

Με αυτόν τον τρόπο, το DataStore παρέχει ασφαλή, ασύγχρονη και αντιδραστική αποθήκευση δεδομένων με ένα βολικό API.