Junior — Middle
Pode explicar como é implementado o armazenamento e a gestão de dados no DataStore?
sobes.tech IA
Resposta da IA
O DataStore no Android é uma forma moderna de armazenar dados que substitui o SharedPreferences. Baseia-se em Kotlin Coroutines e Flow, garantindo uma gestão assíncrona e reativa dos dados.
O armazenamento de dados é realizado através de dois tipos principais de DataStore:
- Preferences DataStore — armazena pares chave-valor, semelhante ao SharedPreferences, mas com suporte a fluxos e sem bloqueios.
- Proto DataStore — armazena dados em forma de objetos protobuf serializados, permitindo trabalhar com estruturas estritamente tipadas.
Os dados são guardados num ficheiro no disco, e o acesso a eles é feito através de Flow, permitindo subscrever-se às alterações e receber atualizações em tempo real.
Exemplo de uso do Preferences DataStore:
val Context.dataStore by preferencesDataStore(name = "settings")
val EXAMPLE_KEY = stringPreferencesKey("example_key")
// Gravar dados
suspend fun saveExample(value: String) {
context.dataStore.edit { preferences ->
preferences[EXAMPLE_KEY] = value
}
}
// Ler dados
val exampleFlow: Flow<String?> = context.dataStore.data
.map { preferences ->
preferences[EXAMPLE_KEY]
}
Assim, o DataStore fornece armazenamento seguro, assíncrono e reativo com uma API conveniente.