O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Datastore

Armazene dados de forma assíncrona, consistente e transacional, superando algumas das desvantagens de SharedPreferences
Atualização mais recente Versão estável atual Próximo candidato a lançamento Versão Beta Versão Alfa
11 de novembro de 2020 - - - 1.0.0-alpha03

Como declarar dependências

Para adicionar uma dependência ao Datastore, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Há duas implementações de Datastore: Preferências e Proto. Escolha uma delas. Você também pode adicionar dependências sem Android a qualquer uma dessas implementações.

Adicione as dependências para a implementação necessária no arquivo build.gradle do app ou módulo:

Tipado

// Typed DataStore (Typed API surface, such as Proto)
dependencies {
  implementation "androidx.datastore:datastore:1.0.0-alpha03"
}
// Alternativey - use the following artifact without an Android dependency.
dependencies {
  implementation "androidx.datastore:datastore-core:1.0.0-alpha03"
}

Preferências

// Preferences DataStore (SharedPreferences like APIs)
dependencies {
  implementation "androidx.datastore:datastore-preferences:1.0.0-alpha03"
}
// Alternativey - use the following artifact without an Android dependency.
dependencies {
  implementation "androidx.datastore:datastore-preferences-core:1.0.0-alpha03"
}

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas existentes (link em inglês) nesta biblioteca antes de criar um novo. Adicione seu voto a um problema existente clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.0.0

Versão 1.0.0-alpha03

11 de novembro de 2020

Lançamento de androidx.datastore:datastore-*:1.0.0-alpha03. A versão 1.0.0-alpha03 contém essas confirmações.

Novos recursos

  • As preferências agora são compatíveis com valores duplos, o que é útil se for necessário ter uma precisão maior do que pontos flutuantes (I5be8f, b/169471808).

Mudanças na API

  • Uma dependência de Kotlin puro foi criada para o armazenamento de dados para permitir uma compilação mais rápida. O androidx.datastore:datastore-core contém as APIs essenciais somente do Kotlin, e o androidx.datastore:datastore contém as APIs que dependem do Android, incluindo SharedPreferencesMigration e o construtor Context.createDataStore (I42d75, b/168512698).
  • Divisão de destinos do armazenamento de dados de preferências para compilação mais rápida em Kotlin (Ia3c19).
  • Agora, os serializadores precisam de uma nova propriedade para o valor padrão que será usado se não houver dados no disco. Isso facilita a implementação de serializadores personalizados para que os usuários não tenham que aplicar casos especiais para fluxos de entrada vazios, que não podem ser analisados com JSON.

    • Além disso, agora há uma verificação para confirmar que o fluxo de saída fornecido para writeTo() não está fechado e, se estiver, exceções são geradas (I16e29).
  • Transformação do construtor para SharedPreferencesView em um elemento interno. Originalmente, ele era público para permitir testes. Agora, os testes precisam construir um SharedPreferencesMigration e fazer um teste comparativo (I93891).

Correções de bugs

  • O parâmetro produceFile em DataStoreFactory e PreferenceDataStoreFactory agora é o último parâmetro na lista e permite que você use a sintaxe lambda no final do Kotlin (Ibe7f1, b/169425442).
  • Os novos requisitos explícitos de API para o Kotlin agora são seguidos (I5ae1e).

Versão 1.0.0-alpha02

14 de outubro de 2020

Lançamento de androidx.datastore:datastore-core:1.0.0-alpha02 e androidx.datastore:datastore-preferences:1.0.0-alpha02. A versão 1.0.0-alpha02 contém essas confirmações.

Correções de bugs

  • Adição de uma proteção contra mutação no armazenamento de dados principal. A mutação interrompe o uso do armazenamento de dados para pessoas que o usam com tipos não proto/não preferências (I6aa84).
  • Adição do método toString a Preferences.kt para facilitar a depuração do estado atual (I96006).
  • Adição de uma exceção para proteger contra o uso indevido de DataStore.Preferences (I1134d).
  • Correção de um bug que fazia o app falhar na inicialização (I69237, b/168580258).

Versão 1.0.0-alpha01

2 de setembro de 2020

Lançamento de androidx.datastore:datastore-core:1.0.0-alpha01 e androidx.datastore:datastore-preferences:1.0.0-alpha01. A versão 1.0.0-alpha01 contém essas confirmações (link em inglês).

Novos recursos

O Jetpack Datastore é uma solução de armazenamento de dados nova e aprimorada que visa substituir SharedPreferences. Criado com fluxo e corrotinas de Kotlin, o DataStore oferece duas implementações diferentes:

  • DataStore de .proto, que permite armazenar objetos tipados, protegidos por buffers de protocolo.
  • Datastore de preferências, que armazena pares de chave-valor.

Os dados são armazenados de forma assíncrona, consistente e transacional, superando a maioria das desvantagens de SharedPreferences.