Architecture Components Android

Los ciclos de vida y Observables sobre ciclos de vida: pretender se la mejor manera de manejar los distintos estados de una activity o de un fragmento en su relación con el arranque y parada de listeners de servicios, como por ejemplo el de geolocalización.

LiveData pretende ser la manera de interconectar con el modelo. Nos permitirá observar los datos (observable) y ser consciente del ciclo de vida. Además nos permitirá subscribirnos automáticamente a los datos.

ViewModel es la manera en que las activities y fragmentos pueden enganchar con los datos. De hecho contendrán objetos del tipo LiveData. Y será utilizados por los controladores. De esta manera independizamos los datos del ciclo de vida y de la vista. La vista se enganchará con estos datos más adelante, mediante data binding o como sea.

Persistencia de datos. Room es una biblioteca de ORM para Sqlite.

 

En el DAO meteríamos todas las consultas identificadas por anotaciones: @Query, @Insert, @Delete, @Update. En la @Query es donde definiríamos la consulta de acceso a la tabla, los campos, etc…

 

En la Entidad es donde definiremos el @Entity con loas campos la clave primaria y demás.

En la definición de la Room es donde uniremos las entidades y los interfaces Dao.

Después de esta definición ya podríamos disponer de un objeto Room que sería el que maneje la BBDD.

 

Para unir los Room y los LiveData<T> lo haremos de una manera parecida:

De esta manera asociamos el listado de elementos relacionados con los registros de la tabla con el ViewModel.

Si en vez LiveData, quiere utilizarse la biblioteca RXJava2, también está soportado.

Todos estos componentes puedes testados correctamente con lso Mock que nos ofrece Espresso.

Enlace al a guía principal de arquitectura Android:

https://developer.android.com/topic/libraries/architecture/index.html

Ejemplos de uso:

https://github.com/googlesamples/android-architecture-components/tree/master/BasicSample

Comments

Leave a Reply

*

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Suscríbete al Boletín

Si quieres estar al tanto de las novedades del blog, ya sabes :)
* = campo obligatorio

powered by MailChimp!

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies