El experto te habla: librerías para el desarrollo de apps Android

16 November 2016

Cada vez es más frecuente el uso de aplicaciones móviles para todo tipo de usos, desde poder escribirnos y mandar contenido multimedia con personas del otro lado del mundo a realizar compras o poder configurar el termostato de nuestra casa con un simple click en un botón, pero, aunque parece que todo funciona de manera mágica, existen miles de líneas de código que permiten realizar esas acciones, para ello están detrás desarrolladores como Juanma.

En este nuevo post, nuestro compañero Juan Manuel Reguilón nos cuenta qué se "esconde" detrás de las apps Android. Y nos facilita una lista de las librerías más utilizadas en todas esas aplicaciones que usan normalmente y que les facilitan el trabajo a los desarrolladores.



Comenzamos el artículo por la gestión de imágenes, hay gran diversidad de librerías, cada una con sus pros y sus contras pero sólo nos queremos centrar en dos de las más conocidas.

GESTIÓN DE IMÁGENES

En primer caso se encuentra Picasso, de la empresa Square Inc. (empresa importante en el sector de Android por la creación de varias librerías muy importantes y de las cuales seguiremos hablando más adelante), con Jake Wharton a la cabeza.

CLIENTES REST

Por segunda vez volvemos a nombrar a la empresa Square, esta vez para mencionar su librería Retrofit, el cliente HTTP más utilizado debido a su simpleza y gran rendimiento que convierte tu API HTTP en una interfaz java. Es capaz de hacer peticiones síncronas y asíncronas pudiendo cancelarlas en cualquier momento. Se encuentra actualmente en su versión 2.0 . Otra alternativa es Volley, herramienta similar implementada por Google pero menos utilizada por la comunidad.

PERSISTENCIA EN BASE DE DATOS

Cuando se precisa guardar una gran cantidad de datos en local, el mejor modo es utilizar una base de datos para persistir la información necesaria incluso cuando la aplicación se cierra. Para estos usos se utilizan RealmORMLite.

DETECCIÓN DE ERRORES

Aunque se intenta evitar en todo lo posible, siempre ocurren errores en la implementación de las aplicaciones y un buen método para detectarlos es usando la librería de Crashlytics de Fabric. Es una librería gratuita que permite mejorar la usabilidad de tu aplicación. Para su integración, primero hay que registrarse en su página web y seguir los pasos de instalación que nos muestran para añadir el plugin en nuestro entorno de desarrollo y que éste inserte el código necesario para la detección. Esta herramienta envía emails cuando se produce un error grave en cualquier dispositivo con la aplicación instalada y a través de su web se puede ver detalladamente el número de errores por versión, línea de código y clase donde se ha producido, filtrar por sistema operativo, número de instalaciones y un largo etcétera de opciones. También cabe destacar la nueva plataforma de Google llamada Firebase, que, a parte de la capacidad para realizar analíticas, mandar notificaciones o gestionar publicidad, posee un detector de errores aún no tan potente pero en progresión.

INYECCIÓN DE VISTAS

Para mantener nuestro código más limpio existen librerías de inyección de vistas como la desarrollada por Jake Wharton, Butterknife, que facilitan la instancia de las vistas contenidas en un activity o fragment por medio de anotaciones.

INYECCIÓN DE DEPENDENCIAS

Ahora vamos a dar un paso más avanzado con las inyecciones de dependencias, muy útiles para el patrón MVP (modelo-vista-presentador). Dagger2 es una adaptación de Dagger (Square Inc.) desarrollado por Google. Su función principal es crear un grafo de dependencias en tiempo de compilación, evitando que se produzcan errores antes de iniciar la aplicación. Permite en tiempo de compilación analizar las anotaciones para crear el grafo con los proveedores de objetos o clases necesarios. Principalmente se compone de módulos (clases cuyos métodos proporcionan dependencias) y componentes (su función es hacer de puente entre las peticiones de inyección y los módulos). Otra parte importante en Dagger2 es la incorporación de "Scopes", que permiten definir cuándo instanciar los objetos en el grafo.

PROGRAMACIÓN REACTIVA

Normalmente, para hacer que el usuario tenga una buena experiencia de nuestras aplicaciones, necesitamos el uso de llamadas o procesos en segundo plano sin que el hilo principal, encargado de la interfaz de usuario se congele. Para ello, el uso más común en java es el utilizar AsyncTask pero puede presentarnos grandes problemas como memory leaks, diferencias de funcionamiento dependiendo de la versión de Android, etc. Para solucionarlo os presentamos RxJava, una librería que realiza programación asíncrona y basada en eventos. Se basa en subscriptores "observers", que se ejecutarán cuando reciban información de los emisores "observables".

Sé que hay mucho rollo técnico pero espero que pueda ser de ayuda a aquellos desarrolladores que "hablen mi mismo idioma" ;-).

 
El experto te habla: librerías para el desarrollo de apps Android

Deja un comentario

Escrito por:

Administrador

Varios, Android
Androidappsappdesarrollo apps

Utilizamos cookies propias y de terceros para mantener la sesión o sus preferencias, recopilar estadísticas y proporcionar contenidos conforme a sus intereses. Si continua navegando, utiliza los servicios de la web o pulsa el botón, está aceptando su instalación y el uso que hacemos de ellas. Puede obtener más información sobre como revocar su consentimiento o cómo cambiar la configuración en este enlace.