SharedPreferences no se recomienda usar por Google por ser bloqueante, no contar con type safety y disponer de un manejo de errores deficiente, en su lugar tenemos a DataStore, y bueno en tiempos donde lo que se tenía era SharedPreferences utilice la librería KotPref, la que proporcionaba un manejo práctico y además agregaba soporte para LiveData. Dicho esto y para proporcionar una migración super fácil me decidí por desarrollar lo que he llamado KivStore.
KivStore es una librería que envuelve a DataStore simplificando su uso, proporciona una api con seguridad de tipos basada en delegados, esto facilita la gestión de datos y observadores de tipo Flow y LiveData.
Todo es tan simple (Como con KotPref, ya que está inspirado en dicha librería), tan solo debemos crear nuestro modelo:
Y listo, ya podemos usarlo en nuestros proyectos:
Así mismo la reactividad, el observar valores es muy sencillo:
Con Flow:
Con LiveData:
Pero sobre todo hay que destacar que la librería mantiene en memoria los datos que se usa, así estos se mantienen actualizados y se sirven al instante, al mismo tiempo que se persisten.
Ya está perfecto, todo bonito, pero como lo instalo y configuro en mi proyecto?
También es sencillo, se instala a través de JitPack:
Y agregamos la dependencia:
implementation("com.github.darkzyrb.kivstore:kivstore:v1.8.1") // Mirar en el repositorio la última versiónLuego se inicializa en el Application de tu proyecto:
Y listo, creas tus modelos y voila.
Más información en el repositorio:
https://github.com/DarkzyRB/kivstore