Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

DataStore

Almacena los datos de forma asíncrona, coherente y transaccional, por lo que resuelve algunos de los inconvenientes de SharedPreferences
Actualización más reciente Versión estable actual Próxima versión potencial Versión beta Versión alfa
13 de enero de 2021 - - - 1.0.0-alpha06

Cómo declarar dependencias

Para agregar una dependencia en DataStore, debes agregar el repositorio Maven de Google a tu proyecto. Lee el repositorio Maven de Google para obtener más información.

Hay dos implementaciones de DataStore: Preferences y Proto. Elige una de ellas. También puedes agregar dependencias sin Android a cualquiera de las dos implementaciones.

Agrega las dependencias de la implementación que necesites en el archivo build.gradle de tu app o módulo:

Escritos

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

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

  // optional - RxJava3 support
  implementation "androidx.datastore:datastore-rxjava3:1.0.0-alpha06"
}
// Alternatively - use the following artifact without an Android dependency.
dependencies {
  implementation "androidx.datastore:datastore-core:1.0.0-alpha06"
}

Preferencias

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

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

  // optional - RxJava3 support
  implementation "androidx.datastore:datastore-preferences-rxjava3:1.0.0-alpha06"
}
// Alternatively - use the following artifact without an Android dependency.
dependencies {
  implementation "androidx.datastore:datastore-preferences-core:1.0.0-alpha06"
}

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.

Cómo crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.0.0

Versión 1.0.0-alpha06

13 de enero de 2021

Lanzamiento de androidx.datastore:datastore-*:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Nuevas funciones

  • Se agregaron wrappers de RxJava para DataStore. Los artefactos datastore-rxjava2/3 contienen los wrappers para las API principales de DataStore (RxDataStore, RxDataStoreBuilder y RxDataMigration). Los artefactos datastore-preferences-rxjava2/3 contienen un compilador para construir la implementación Preferences Datastore.

Cambios en la API

  • Se ocultó la interfaz de CorruptionHandler. No hay motivo para que sea pública, porque la fábrica de DataStore solo acepta un ReplaceFileCorruptionHandler. (I0b3b3, b/176032264)
  • Se quitó el método preferencesKey<T>(name: String): Key<T> y se lo reemplazó por métodos específicos para cada tipo admitido; por ejemplo, preferencesKey<Int>("int") ahora es intPreferencesKey("int") (Ibcfac, b/170311106)

Correcciones de errores

  • Se corrigió la documentación sobre DataStoreFactory que no mencionaba que el archivo de almacén de datos se crea en el subdirectorio “datastore/”. (Ica222)

Versión 1.0.0-alpha05

2 de diciembre de 2020

Lanzamiento de androidx.datastore:datastore-*:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.

Correcciones de errores

  • Se agregaron mejores documentaciones y excepciones sobre escrituras simultáneas de almacenes de datos. (Ia98a2, b/173522155, b/173726702)
  • Ahora se permite cerrar el elemento OutputStream que se pasa a Serializer.writeTo() (aunque no es un requisito). (I5c9bf, b/173037611)

Versión 1.0.0-alpha04

17 de noviembre de 2020

Lanzamiento de androidx.datastore:datastore-*:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió un problema de empaquetado que causaba la siguiente falla en Preference Datastore 1.0.0-alpha03: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/datastore/preferences

Versión 1.0.0-alpha03

11 de noviembre de 2020

Lanzamiento de androidx.datastore:datastore-*:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

.

Nuevas funciones

  • Preferences ahora admite valores dobles (lo que resulta útil si necesitas más precisión que la de los números de punto flotante) (I5be8f, b/169471808).

Cambios en la API

  • Se creó una dependencia pura de Kotlin para que el almacén de datos permita una compilación más rápida. androidx.datastore:datastore-core contiene las API principales de Kotlin, y androidx.datastore:datastore contiene las API que dependen de Android (incluido el constructor de Context.createDataStore y SharedPreferencesMigration) (I42d75, b/168512698).
  • Se dividieron los objetivos del almacén de datos de preferencias para lograr una compilación de Kotlin más rápida (Ia3c19).
  • Los serializadores ahora requieren una nueva propiedad para el valor predeterminado que se usará si no hay datos en el disco. Esto facilita la implementación de serializadores personalizados de modo que los usuarios no tengan que tratar las transmisiones de entrada vacías de modo especial (ya que estas no se analizan con json).

    • Ahora también existe una verificación para confirmar que la transmisión de salida suministrada a writeTo() no está cerrada, y, si lo está, arroja excepciones (I16e29).
  • El constructor de SharedPreferencesView se volvió interno. Originalmente, era público para permitir la realización de pruebas. Ahora, se debe construir un objeto SharedPreferencesMigration y realizar las pruebas con él. (I93891)

Correcciones de errores

  • El parámetro produceFile en DataStoreFactory, y PreferenceDataStoreFactory ahora es el último parámetro de la lista, por lo que te permite usar la sintaxis de expresión lambda final de Kotlin (Ibe7f1, b/169425442).
  • Se siguen los nuevos requisitos explícitos de la API para Kotlin (I5ae1e).

Errores conocidos

  • Preference Datastore falla con java.lang.NoClassDefFoundError (b/173036843).

Versión 1.0.0-alpha02

14 de octubre de 2020

Lanzamiento de androidx.datastore:datastore-core:1.0.0-alpha02 y androidx.datastore:datastore-preferences:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Correcciones de errores

  • Se agregó una protección contra la mutación en el núcleo del almacén de datos. La mutación interrumpe el uso del almacén de datos para las personas que no usan Preferences o Proto DataStore (I6aa84).
  • Se agregó un método toString a Preferences.kt para que el estado actual sea fácil de depurar (I96006).
  • Se agregó una excepción para proteger contra el uso inadecuado de DataStore.Preferences (I1134d).
  • Se corrigió un error que hacía que la app fallara al iniciarse (I69237, b/168580258).

Versión 1.0.0-alpha01

2 de septiembre de 2020

Lanzamiento de androidx.datastore:datastore-core:1.0.0-alpha01 y androidx.datastore:datastore-preferences:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

Jetpack DataStore es una solución nueva y mejorada de almacenamiento de datos que apunta a reemplazar SharedPreferences. DataStore, que se basa en corrutinas y flujo de Kotlin, proporciona dos implementaciones diferentes:

  • Proto DataStore, que te permite almacenar objetos escritos (respaldado por búferes de protocolo)
  • Preferences DataStore, que almacena pares clave-valor

Los datos se almacenan de forma asíncrona, coherente y transaccional, por lo que resuelve la mayoría de los inconvenientes de SharedPreferences.