Junior — Middle
Pouvez-vous expliquer comment la gestion et le stockage des données sont implémentés dans DataStore?
sobes.tech IA
Réponse de l'IA
DataStore dans Android est une méthode moderne de stockage des données qui remplace SharedPreferences. Il est basé sur Kotlin Coroutines et Flow, ce qui assure une gestion asynchrone et réactive des données.
Le stockage des données est réalisé via deux principaux types de DataStore :
- Preferences DataStore — stocke des paires clé-valeur, semblable à SharedPreferences, mais avec prise en charge des flux et sans blocages.
- Proto DataStore — stocke des données sous forme d'objets protobuf sérialisés, permettant de travailler avec des structures strictement typées.
Les données sont sauvegardées dans un fichier sur le disque, et l'accès à celles-ci se fait via Flow, ce qui permet de s'abonner aux changements et de recevoir des mises à jour en temps réel.
Exemple d'utilisation de Preferences DataStore :
val Context.dataStore by preferencesDataStore(name = "settings")
val EXAMPLE_KEY = stringPreferencesKey("example_key")
// Écrire des données
suspend fun saveExample(value: String) {
context.dataStore.edit { preferences ->
preferences[EXAMPLE_KEY] = value
}
}
// Lire des données
val exampleFlow: Flow<String?> = context.dataStore.data
.map { preferences ->
preferences[EXAMPLE_KEY]
}
Ainsi, DataStore assure un stockage sécurisé, asynchrone et réactif avec une API pratique.