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:
-
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>.
- Utiliza-se através do objeto
-
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.