Sobes.tech
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.