DataStore

Armazene dados de forma assíncrona, consistente e transacional, superando algumas das desvantagens de SharedPreferences
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
22 de outubro de 2025 1.1.7 - 1.2.0-beta01 -

Declarar dependências

Para adicionar uma dependência a Datastore, adicione o repositório Maven do Google ao seu projeto. Veja mais informações no repositório Maven do Google.

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:

Preferences DataStore

Groovy

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation "androidx.datastore:datastore-preferences:1.1.7"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-preferences-rxjava2:1.1.7"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-preferences-rxjava3:1.1.7"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-preferences-core:1.1.7"
    }
    

Kotlin

    // Preferences DataStore (SharedPreferences like APIs)
    dependencies {
        implementation("androidx.datastore:datastore-preferences:1.1.7")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.7")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.7")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-preferences-core:1.1.7")
    }
    

Proto DataStore

Groovy

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation "androidx.datastore:datastore:1.1.7"

        // optional - RxJava2 support
        implementation "androidx.datastore:datastore-rxjava2:1.1.7"

        // optional - RxJava3 support
        implementation "androidx.datastore:datastore-rxjava3:1.1.7"
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation "androidx.datastore:datastore-core:1.1.7"
    }
    

Kotlin

    // Typed DataStore (Typed API surface, such as Proto)
    dependencies {
        implementation("androidx.datastore:datastore:1.1.7")

        // optional - RxJava2 support
        implementation("androidx.datastore:datastore-rxjava2:1.1.7")

        // optional - RxJava3 support
        implementation("androidx.datastore:datastore-rxjava3:1.1.7")
    }

    // Alternatively - use the following artifact without an Android dependency.
    dependencies {
        implementation("androidx.datastore:datastore-core:1.1.7")
    }
    

Feedback

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

Criar novo problema

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

Versão 1.2

Versão 1.2.0-beta01

22 de outubro de 2025

Lançamento de androidx.datastore:datastore-*:1.2.0-beta01. A versão 1.2.0-beta01 contém estes commits.

Mudanças na API

Correções de bugs

  • Correção de java.lang.UnsatisfiedLinkError ao usar DataStore em um app otimizado com R8, mas que não usa getDefaultProguardFile('android-proguard-optimize.txt'). (I27d0d, b/434696293)
  • Correção de um problema em que as operações GuavaDataStore podiam ser executadas incorretamente na linha de execução de chamada (por exemplo, a linha de execução principal) em vez do dispatcher de E/S especificado. (Ic91ea,b/441801112)

Versão 1.2.0-alpha02

7 de maio de 2025

Lançamento de androidx.datastore:datastore-*:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estes commits.

Mudanças na API

  • Adição de suporte a multiprocessos em GuavaDataStore. (e0d608a).
  • Adição de um método auxiliar para criar um GuavaDataStore de um DataStore. (9af26f4)
  • Os projetos lançados com o Kotlin 2.0 exigem o KGP 2.0.0 ou mais recente para serem consumidos (Idb6b5).
  • Substitua a sobrecarga datastore atual por um método delegado para inicializar um DataStore a ser usado durante a inicialização direta. (If71b9).

Versão 1.2.0-alpha01

26 de março de 2025

Lançamento de androidx.datastore:datastore-*:1.2.0-alpha01. A versão 1.2.0-alpha01 contém estes commits.

Novos recursos

  • Adição do módulo datastore-guava para expor APIs compatíveis com usuários de Java e Guava ListenableFuture via GuavaDataStore. (Iadd5e0)
  • Agora é possível usar DataStore durante o modo DirectBoot. Para criar um armazenamento de dados que será usado durante o modo de inicialização direta, ele precisa ser criado no armazenamento protegido do dispositivo. Isso pode ser feito com as seguintes novas APIs DataStore: createInDeviceProtectedStorage() em DataStoreFactory e deviceProtectedDataStore() em DataStoreDelegate. (Ib90e56)

Mudanças na API

  • Adicionamos PreferencesFileSerializer, que implementa a interface androidx.datastore.core.Serializer para uso com FileStorage. (I4c71f3).

Correções de bugs

  • Foi resolvido um problema de FileNotFoundException em OkioStorage na inicialização. Para isso, foi adicionada uma segunda tentativa de leitura de dados em caso de condição de disputa. (I43b3fb, b/337870543).
  • Definido o construtor padrão para ReplaceFileCorruptionHandler para uso comum de código. (I795b05, b/358138957)

Versão 1.1

Versão 1.1.7

20 de maio de 2025

Lançamento de androidx.datastore:datastore-*:1.1.7. A versão 1.1.7 contém estes commits.

Correções de bugs

  • Correção de um problema de regras do ProGuard ausentes no artefato Android de datastore-preferences-core. (3f3f6e, b/413078297)

Versão 1.1.6

7 de maio de 2025

Lançamento de androidx.datastore:datastore-*:1.1.6. A versão 1.1.6 contém estes commits.

Correções de bugs

  • Corrigimos um problema em que os metadados do Gradle estavam corrompidos na versão 1.1.5. Esse problema foi causado por um bug na nova DSL do plug-in KMP do AGP, que impedia a inclusão automática de metadados para todas as plataformas de destino. O bug faz com que alguns métodos do DataStore Android não fiquem mais visíveis nas builds dos clientes. A correção envolve o uso da DSL android mais antiga em build.gradle em vez de androidLibrary. (7801abf)

Versão 1.1.5

23 de abril de 2025

Lançamento de androidx.datastore:datastore-*:1.1.5. A versão 1.1.5 contém estes commits.

Correções de bugs

  • Para atenuar problemas de CorruptionException em PreferencesDataStore, o armazenamento padrão foi alterado de OkioStorage para FileStorage. Essa mudança foi implementada com a introdução de um PreferencesFileSerializer. b/346197747

Versão 1.1.4

26 de março de 2025

Lançamento de androidx.datastore:datastore-*:1.1.4. A versão 1.1.4 contém estes commits.

Correções de bugs

  • Substitua o armazenamento padrão de OkioStorage para FileStorage para melhorar a confiabilidade reduzindo CorruptionException. (I71181, b/346197747).

Versão 1.1.3

26 de fevereiro de 2025

Lançamento de androidx.datastore:datastore-*:1.1.3. A versão 1.1.3 contém estes commits.

Correções de bugs

  • Resolvemos um problema de FileNotFoundException em OkioStorage encontrado na inicialização do app. Se a tentativa inicial de leitura do arquivo não for bem-sucedida, uma segunda tentativa será feita caso uma condição de corrida tenha ocorrido devido à criação do arquivo por um processo diferente durante a leitura inicial. (I43b3f, b/337870543).

Versão 1.1.2

15 de janeiro de 2025

Lançamento de androidx.datastore:datastore-*:1.1.2. A versão 1.1.2 contém estes commits.

Correções de bugs

  • Melhoria de oito vezes na latência de leitura em cache (DataStore.data.first()). (22b8a40)
  • O ReplaceFileCorruptionHandler pode ser criado com base no código comum do KMP. (7632e839)

Versão 1.1.1

1º de maio de 2024

Lançamento de androidx.datastore:datastore-*:1.1.1. A versão 1.1.1 contém estes commits.

Correções de bugs

  • Mitigado o alarme falso do Linux no erro "Ocorrerá um deadlock de recursos" em um caso extremo em que várias instâncias DataStore tentam gravar de processos diferentes ao fazer o backoff do bloqueio de arquivo.

Versão 1.1.0

17 de abril de 2024

Lançamento de androidx.datastore:datastore-*:1.1.0. A versão 1.1.0 contém estes commits.

Principais mudanças desde o lançamento da versão 1.0.0

Consulte as notas da versão das versões Alfa e Beta da 1.1.0 para mais informações. Algumas das principais atualizações na versão 1.1.0 são:

  • O DataStore agora oferece suporte a vários processos que acessam o mesmo arquivo, com suporte para capacidade de observação em todos os processos.
  • A nova interface de armazenamento permite personalizar como armazenar ou serializar seus modelos de dados.
  • Agora você pode usar o DataStore em projetos multiplataforma do Kotlin.

Versão 1.1.0-rc01

3 de abril de 2024

Lançamento de androidx.datastore:datastore-*:1.1.0-rc01. A versão 1.1.0-rc01 contém estes commits.

Correções de bugs

  • Correção da degradação de desempenho em que as chamadas updateData não otimizavam as gravações em disco se os novos dados fossem iguais aos antigos (d64cfb5)
  • Correção de uma condição de disputa em que MultiProcess DataStore podia perder invalidações durante a inicialização. ((b/326141553),(094c2dd))

Versão 1.1.0-beta02

6 de março de 2024

Lançamento de androidx.datastore:datastore-*:1.1.0-beta02. A versão 1.1.0-beta02 contém estes commits.

Correções de bugs

  • A melhoria de performance no DataStore só coleta notificações de atualização quando ela é observada. (b/267792241).
    • Essa mudança pode acionar UncompletedCoroutinesError nos seus testes se você estiver usando a biblioteca de teste de corrotinas. Transmita o TestScope.backgroundScope ao inicializar o DataStore nos seus testes para evitar esse problema.
  • ​Correção do problema de deadlock em chamadas aninhadas de updateData na mesma instância. (b/241760537).
  • Fizemos com que DataStore não gere mais IOExceptions se não for possível excluir SharedPreferences durante a migração. (b/195553816)
  • Correção do problema em que a renomeação de arquivos falhava durante o updateData em ambientes JVM não Android. (b/203087070).
  • Foi corrigido o problema em que CorruptionException não era processado após a inicialização de DataStore. (b/289582516)

Versão 1.1.0-beta01

10 de janeiro de 2024

androidx.datastore:datastore-*:1.1.0-beta01 é lançado sem mudanças desde 1.1.0-alpha07. A versão 1.1.0-beta01 contém estas confirmações.

Versão 1.1.0-alpha07

29 de novembro de 2023

Lançamento de androidx.datastore:datastore-*:1.1.0-alpha07. A versão 1.1.0-alpha07 contém estas confirmações.

Mudanças na API

  • Os métodos MultiProcessDataStoreFactory não são mais experimentais.A anotação @ExperimentalMultiProcessDataStore foi removida completamente. (Ieee54, I8e607)

Correções de bugs

  • Implante a remoção das anotações @ExperimentalMultiProcessDataStore para a versão 1.1.0-alpha07. (I8e607).

Versão 1.1.0-alpha06

1º de novembro de 2023

Lançamento de androidx.datastore:datastore-*:1.1.0-alpha06. A versão 1.1.0-alpha06 contém estas confirmações.

Mudanças na API

  • O método de fábrica createSingleProcessCoordinator agora recebe um caminho de arquivo (String, java.io.File e okio.Path) para ser consistente com createMultiProcessCoordinator. (I211c8, b/305755935)

Versão 1.1.0-alpha05

6 de setembro de 2023

Lançamento de androidx.datastore:datastore-*:1.1.0-alpha05. A versão 1.1.0-alpha05 contém estas confirmações.

Mudanças na API

  • O Datastore FileStorage agora está disponível publicamente para que os clientes possam fornecer parâmetros personalizados. (Icb985).
  • Mudança no construtor OkioStorage para aceitar um InterProcessCoordinator, permitindo o uso no Android com MultiProcessCoordinator. (Iecea3)

Correções de bugs

  • Correção: MultiProcessCoordinator não consegue monitorar vários arquivos no mesmo diretório.
  • Correção da incapacidade de detectar arquivos duplicados se os caminhos de arquivo não forem normalizados.
  • Correção de valores incorretos retornados de RxDataStore#isDisposed.
  • Correção da configuração Proguard ausente para o artefato datstore-preferences-core.

Versão 1.1.0-alpha04

5 de abril de 2023

Lançamento de androidx.datastore:datastore-*:1.1.0-alpha04. A versão 1.1.0-alpha04 contém estas confirmações.

Correções de bugs

  • Melhore a implementação interna para evitar uma condição de disputa em que o fluxo de dados de DataStore pode emitir um valor mais antigo após uma atualização.

Versão 1.1.0-alpha03

24 de março de 2023

Lançamento de androidx.datastore:datastore-*:1.1.0-alpha03.

Correções de bugs

  • As restrições de dependência foram removidas dos artefatos do Maven para contornar um problema de build em destinos nativos do Kotlin (b/274786186, KT-57531).

Versão 1.1.0-alpha02

22 de março de 2023

Lançamento de androidx.datastore:datastore-*:1.1.0-alpha02. A versão 1.1.0-alpha02 contém estas confirmações.

Observação

Esta versão inclui uma refatoração interna importante que mescla as implementações para DataStore de processo único e multiprocesso. Fique de olho em possíveis mudanças de comportamento não intencionais (por exemplo, o horário das notificações de atualização). Use o componente do rastreador de problemas para informar essas mudanças.

Novos recursos

  • Agora você pode usar DataStore em projetos KMM. Vale lembrar que os destinos não Android do DataStore ainda estão em fase experimental, mas decidimos mesclar as versões para facilitar o teste por parte dos desenvolvedores.
  • Os recursos de vários processos foram movidos de androidx.datastore.multiprocess para androidx.datastore.core.
  • Adicione um novo método de fábrica em androidx.datastore.core.MultiProcessDataStoreFactory para criar instâncias do DataStore com objetos Storage para operações de arquivo.
  • Adicione uma nova interface InterProcessCoordinator que ajuda várias instâncias do DataStore a se comunicarem entre processos. A implementação multiprocesso do InterProcessCoordinator está disponível apenas no Android.

Mudanças na API

  • Adição de InterProcessCoordinator a StorageConnection na interface datastore-core (I555bb)
  • As APIs no MultiProcessDataStoreFactory de datastore-core foram mudadas para que o Storage fosse usado (Iac02f).
  • As APIs públicas de datastore-multiprocess foram movidas para datastore-core (I76d7c).
  • PreferencesSerializer foi exposto no datastore-preferences-core (I4b788).
  • A anotação @JvmDefaultWithCompatibility foi adicionada (I8f206).

Versão 1.1.0-alpha01

9 de novembro de 2022

Lançamento de androidx.datastore:datastore-*:1.1.0-alpha01. A versão 1.1.0-alpha01 contém estas confirmações.

Novos recursos

  • Suporte a casos de uso de vários processos em que a consistência de dados é garantida entre instâncias de DataStore em todos os processos. MultiProcessDataStoreFactory#create foi adicionado para criar essas instâncias de DataStore.
  • Nova interface de armazenamento, que permite alternar o mecanismo de armazenamento subjacente de Datastore. Foram fornecidas implementações de java.io e okio. As fábricas DataStore têm novos métodos que aceitam esse objeto do Storage.

Mudanças na API

  • As APIs no MultiProcessDataStoreFactory de datastore-core foram mudadas para que o Storage fosse usado (Iac02f).
  • As APIs públicas de datastore-multiprocess foram movidas para datastore-core (I76d7c).
  • PreferencesSerializer foi exposto no datastore-preferences-core (I4b788).

Versão 1.0.0

Versão 1.0.0

4 de agosto de 2021

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

Principais recursos da versão 1.0.0

O Jetpack DataStore é uma solução de armazenamento de dados que possibilita armazenar pares de chave-valor ou objetos tipados com buffers de protocolo. O DataStore usa corrotinas e fluxo do Kotlin para armazenar dados de forma assíncrona, consistente e transacional.

Versão 1.0.0-rc02

21 de julho de 2021

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

Correções de bugs

  • Esclarecimento de que a SharedPreferencesMigration não será executada se não houver chaves (Icfa32, b/192824325).
  • Correção do bug em que a SharedPreferencesMigration construída com MIGRATE_ALL_KEYS gerava uma exceção se a chave solicitada ainda não existisse (Ie318a, b/192824325).

Versão 1.0.0-rc01

30 de junho de 2021

Lançamento da versão androidx.datastore:datastore-*:1.0.0-rc01. A versão 1.0.0-rc01 contém estas confirmações.

Correções de bugs

  • Correção do bug em que o arquivo .java foi adicionado inadvertidamente ao jar final (I65d96, b/188985637)

Versão 1.0.0-beta02

16 de junho de 2021

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

Correções de bugs

  • Correção da ClassVerificationFailure (b/187450483).

Versão 1.0.0-beta01

21 de abril de 2021

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

Mudanças na API

  • Remoção das sobrecargas JVM para métodos somente em Kotlin (I2adc7).

Correções de bugs

  • Correção de um bug em que os repositórios de dados delegados podiam resultar em contextos vazados (Ie96fc, b/184415662)

Versão 1.0.0-alpha08

10 de Março de 2021

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

Mudanças na API

  • Agora você pode adicionar uma migração que depende do contexto aos seus delegados de propriedade dataStore e preferencesDataStore (I4ef69, b/173726702).
  • Foram adicionadas funções auxiliares para acessar o nome do arquivo quando você não está mais usando o repositório de dados delegado ou context.createDataStore (I60f9a).
  • O serializador writeTo e readFrom agora são funções de suspensão. Se você implementou um serializador, precisará atualizar suas funções para serem de suspensão (I1e58e).
  • Delegados de propriedade foram adicionados para usuários do RxDataStore (Ied768, b/173726702).

Correções de bugs

  • Aplicação de restrições ao uso público de APIs experimentais (I6aa29, b/174531520).

Versão 1.0.0-alpha07

24 de fevereiro de 2021

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

Mudanças na API

  • A função de extensão Context.createDataStore foi removida e substituída pelo delegado da propriedade globalDataStore. Chame globalDataStore uma vez no nível superior do arquivo Kotlin. Exemplo:

    val Context.myDataStore by dataStore(...)
    

    Coloque-o no nível superior do seu arquivo Kotlin para que haja apenas uma instância dele (I57215, b/173726702).

  • As funções RxDataStore agora estão em uma classe RxDataStore em vez de funções de extensão no DataStore (Idccdb, b/177691248).

  • Se você quiser migrar as EncryptedSharedPreferences (ou SharedPreferences de inicialização direta) para o DataStore, faça isso com o novo construtor SharedPreferencesMigration, que permite injetar as SharedPreferences (I8e04e, b/177278510).

Correções de bugs

  • O DataStore agora gerará uma exceção se houver vários DataStores ativos para o mesmo arquivo. Se você não estava gerenciando seu DataStore como um Singleton ou não estava garantindo que duas instâncias de DataStore não fossem ativadas simultaneamente para um arquivo, talvez veja exceções ao ler ou gravar no DataStore. Para corrigir isso, gerencie o DataStore como um Singleton (Ib43f4, b/177691248).
  • Correção do comportamento de cancelamento quando o escopo do autor da chamada é cancelado (I2c7b3).

Versão 1.0.0-alpha06

13 de janeiro de 2021

Lançamento do androidx.datastore:datastore-*:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Novos recursos

  • Adição de wrappers RxJava para DataStore. Os artefatos datastore-rxjava2/3 contêm os wrappers para as principais APIs DataStore (RxDataStore, RxDataStoreBuilder e RxDataMigration). Os artefatos datastore-preferences-rxjava2/3 contêm um builder para construir um Preferences DataStore.

Mudanças na API

  • Oculte a interface CorruptionHandler. Não é necessário que ela seja pública porque a fábrica do DataStore só aceita um ReplaceFileCorrionHandler (I0b3b3, b/176032264).
  • O método preferencesKey<T>(name: String): Key<T> foi removido e substituído por métodos específicos de cada tipo com suporte. Por exemplo, preferencesKey<Int>("int") agora é intPreferencesKey("int") (Ibcfac b/170311106).

Correções de bugs

  • Corrige a documentação no DataStoreFactory, que deixou de fora o fato de que o arquivo de armazenamento de dados é criado no subdiretório "datastoredatastore/" (Ica222).

Versão 1.0.0-alpha05

2 de dezembro de 2020

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

Correções de bugs

  • Adição de documentação e exceções melhores em gravações simultâneas de armazenamentos de dados (Ia98a2, b/173522155, b/173726702).
  • Agora é permitido, mas não obrigatório, que o OutputStream transmitido para Serializer.writeTo() seja fechado (I5c9bf, b/173037611).

Versão 1.0.0-alpha04

17 de novembro de 2020

androidx.datastore:datastore-*:1.0.0-alpha04 é lançado. A versão 1.0.0-alpha04 contém estas confirmações.

Correções de bugs

  • Correção de um problema de empacotamento que causava a seguinte falha no Datastore de preferências 1.0.0-alpha03: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences

Versão 1.0.0-alpha03

11 de novembro de 2020

androidx.datastore:datastore-*:1.0.0-alpha03 é lançado. A versão 1.0.0-alpha03 contém estas confirmações.

Novos recursos

  • As preferências agora têm suporte a valores duplos, o que é útil quando é 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. Se estiver, exceções serã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).

Problemas conhecidos

  • O Datastore de preferências falha com java.lang.NoClassDefFoundError (b/173036843).

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 estas 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 estas confirmações.

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.