Junior — Middle
Můžete vysvětlit, jak je implementováno ukládání a správa dat v DataStore?
sobes.tech AI
Odpověď od AI
DataStore v Androidu je moderní způsob ukládání dat, který nahrazuje SharedPreferences. Je založen na Kotlin Coroutines a Flow, což zajišťuje asynchronní a reaktivní správu dat.
Ukládání dat je realizováno prostřednictvím dvou hlavních typů DataStore:
- Preferences DataStore — ukládá páry klíč-hodnota, podobně jako SharedPreferences, ale s podporou toků a bez blokování.
- Proto DataStore — ukládá data ve formě serializovaných protobuf objektů, což umožňuje pracovat s přísně typovanými strukturami.
Data jsou uložena v souboru na disku a přístup k nim je přes Flow, což umožňuje odebírat změny a přijímat aktualizace v reálném čase.
Příklad použití Preferences DataStore:
val Context.dataStore by preferencesDataStore(name = "settings")
val EXAMPLE_KEY = stringPreferencesKey("example_key")
// Zápis dat
suspend fun saveExample(value: String) {
context.dataStore.edit { preferences ->
preferences[EXAMPLE_KEY] = value
}
}
// Čtení dat
val exampleFlow: Flow<String?> = context.dataStore.data
.map { preferences ->
preferences[EXAMPLE_KEY]
}
Tímto způsobem DataStore poskytuje bezpečné, asynchronní a reaktivní ukládání dat s pohodlným API.