activity Entradas de

RoboRouter, mi primera librería OpenSource

RoboRouter, mi primera librería OpenSource

Hace tiempo que no escribo nada en el Blog, pero hoy tengo el orgullo de presentar mi primera librería OpenSource, para Android, disponible a través de Maven/Gradle.

¿Qué es RoboRouter?

RoboRouter es un pequeña librería -de apenas dos clases- que permite mediante la activación/desactivación de componentes manejar el punto de arranque de nuestra aplicación cuando esta tiene una pantalla de inicio de sesión y/o un asistente de bienvenida o tutorial inicial. Cosas que es muestran escasamente una vez en la vida de la aplicación en el móvil de un usuario y que no debería ensuciar el código de la actividad principal con la que arrancamos la aplicación normalmente. RoboRouter permite gestionar este tipo de escenarios de una forma muy fácil y sin apenas escribir código.

Pasaos por GitHub y mirad como funciona, descargad el proyecto de ejemplo y jugad con él. Cualquier sugerencia será bienvenida.

Latest commit to the master branch on

Download as zip

Parcelables con Android AutoParcel

Cuando vamos a crear una app en Android y tenemos que pasar datos entre Activities y/o Fragments, el sistema operativo nos brinda la posibilidad de usar un Bundle, ya sea a través del Intent (y el Bundle de extras) o a través del método setArguments() de los Fragments. Esta es la manera idónea de pasar datos entre componentes, ya que no crea acoplamientos poco deseables, además estos se gestionan de manera automática por el sistema, por lo que no debemos preocuparnos de qué pasa con ellos si el sistema ha tenido que recrear el Activity o Fragment debido al ciclo de vida de la aplicación.

El problema viene con los tipos de datos que nos permite almacenar un Bundle, estos son tipos básicos u objetos que implementen la interfaz Serializable o Parcelable. A la hora de implementar una u otra interfaz, la primera es sencilla, con solo hacer que nuestra clase implemente la interfaz Serializable el sistema por medio de reflexión es capaz de serializar el objeto a una representación binaria que se puede persistir. En el caso de Parcelable, sin embargo, debemos implementar dos métodos para serializar –writeToParcel()– y deserializar –constructor– el objeto. Además debemos escribirlo con sumo cuidado y en perfecto orden inverso o no funcionará, algo muy tedioso y difícil de mantener.