Sobes.tech
Junior — Middle

Quais métodos podem ser usados para implementar a interação com DataStore numa aplicação?

sobes.tech IA

Resposta da IA

No Android, para interagir com DataStore, podem ser utilizados dois abordagens principais:

  1. Preferences DataStore — armazena pares chave-valor, adequado para configurações simples.

    • Utiliza-se através do objeto DataStore<Preferences>.
    • Leitura e escrita são feitas usando chaves do tipo Preferences.Key<T>.
  2. Proto DataStore — armazena dados estruturados na forma de mensagens protobuf.

    • Requer a definição de um esquema protobuf.
    • Permite armazenar tipos de dados complexos com validação.

Métodos de interação:

  • Leitura — através de Flow, por exemplo dataStore.data.map { preferences -> ... }, o que permite reagir às mudanças de dados.
  • Escrita — através da função suspend dataStore.edit { preferences -> ... }, onde se podem modificar os valores.

Exemplo de leitura e escrita com Preferences DataStore:

val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")

val EXAMPLE_KEY = stringPreferencesKey("example_key")

// Escrita
suspend fun saveExample(value: String) {
    context.dataStore.edit { preferences ->
        preferences[EXAMPLE_KEY] = value
    }
}

// Leitura
val exampleFlow: Flow<String?> = context.dataStore.data
    .map { preferences ->
        preferences[EXAMPLE_KEY]
    }

Desta forma, a interação com DataStore baseia-se no uso de Flow para leitura e funções suspend para escrita.