Usa Android Jetpack para acelerar el desarrollo de tus apps
miércoles, 9 de mayo de 2018
Publicado por Chris Sells, Benjamin Poiesz, Karen Ng, administración de Producto, herramientas para desarrolladores de Android
Hoy presentamos con entusiasmo Android Jetpack, la próxima generación de componentes, herramientas y orientación en arquitectura que les permitirá acelerar el desarrollo de sus apps para Android.
Android Jetpack está inspirado en la biblioteca de compatibilidad, un conjunto de componentes que permiten aprovechar fácilmente las nuevas funciones de Android y conservar, al mismo tiempo, la compatibilidad con versiones anteriores. Actualmente, el 99% de las apps en Play Store lo utilizan. En línea con ese éxito, presentamos Architecture Components, diseñado para facilitar el manejo de datos frente a los cambios y las complicaciones del ciclo de vida de las apps. Desde que presentamos esos componentes en I/O, hace un año, una impactante cantidad de desarrolladores los adoptó. Empresas como LinkedIn, Zillow y iHeartRadio observan menos errores, encuentran una mayor capacidad de prueba y tienen más tiempo para concentrarse en los aspectos que hacen que sus apps sean únicas.
La comunidad de desarrolladores de Android fue muy clara; no solo les gusta lo que hemos hecho con esos componentes existentes, sino también sabemos que sus expectativas aumentan. Y reciben más.
¿Qué es Android Jetpack?
Android Jetpack es un conjunto de componentes, herramientas y elementos orientativos pensados para que puedan crear fabulosas apps de Android. Los componentes de Android Jetpack reúnen la biblioteca de compatibilidad existente y Architecture Components, que se organizan en cuatro categorías:

Los componentes de Android Jetpack se proporcionan como bibliotecas “desempaquetadas” que no forman parte de la plataforma Android subyacente. Esto significa que pueden adoptar cada componente a su propio ritmo, cuando lo consideren necesario. Cuando la nueva funcionalidad Android Jetpack esté disponible, podrán agregarla a sus apps, implementar sus apps en la Play Store y ofrecer a los usuarios nuevas funciones en un día (¡si trabajan rápido!). Las bibliotecas no agrupadas de Android Jetpack se trasladaron al nuevo espacio de nombres
androidx.*
(como se describe, en detalle, en esta entrada).
Además, sus apps pueden ejecutarse en varias versiones de la plataforma, ya que los componentes de Android Jetpack están pensados para ofrecer su funcionalidad independientemente de cualquier versión específica, lo que proporciona compatibilidad con versiones anteriores.
Además, Android Jetpack se compiló con prácticas de diseño modernas, como la separación de inquietudes y la capacidad de prueba, y funciones de productividad como la integración con Kotlin. Esto facilita mucho la compilación de apps robustas de alta calidad con menos código. Si bien los componentes de Android Jetpack se crearon para funcionar juntos (p. ej., conocimiento del ciclo de vida y datos en tiempo real, no es necesario que los usen a todos), pueden integrar las partes de Android Jetpack que resuelvan sus problemas y también conservar aquellas partes de sus apps que ya funcionen bien.
Sabemos que estos beneficios son importantes para ustedes por comentarios como este:
“Habíamos pensado en probar MVVM en nuestra base de códigos. Android Architecture Components nos proporcionó una plantilla sencilla para implementarlo. Y también nos ayudó a probar mejor nuestro código; la capacidad de probar conjuntamente ViewModels ha aumentado notablemente la solidez del código”.
-- Sumiran Pradhan, ingeniero sénior, Zillow
Si quieren recibir más información sobre la forma en que las empresas están usando componentes de Android Jetpack, pueden leer las historias de desarrolladores en el sitio para desarrolladores Android.
Por último, como pueden ver en el diagrama de Android Jetpack, arriba, hoy también anunciamos nuevos componentes.
Novedades
Android Jetpack incluye cinco componentes nuevos:
- Versión alfa de WorkManager
- Versión alfa de Navigation
- Versión alfa de Paging
- Versión alfa de Slices
- Versión alfa de Android KTX (extensiones de Kotlin)
WorkManager
El componente WorkMananager es una potente biblioteca nueva que proporciona una solución integral para tareas en segundo plano basadas en restricciones que requieren ejecución garantizada, lo cual evita la necesidad de usar adaptadores de trabajos o sincronización. WorkManager proporciona una API moderna y simplificada, y las capacidades de trabajar en dispositivos con o sin Google Play Services, crear gráficos de trabajo y consultar el estado del trabajo. Los comentarios tempranos son muy alentadores, pero también queremos asegurarnos de cubrir sus casos de uso. Pueden ver lo que tenemos hasta ahora y enviarnos sus comentarios en nuestra versión alfa en el componente WorkManager.
Navigation
Si bien las actividades son los puntos de entrada del sistema a la IU de sus apps, la inflexibilidad al momento de compartir datos entre ellas y las transiciones las han convertido en una arquitectura poco conveniente para construir la navegación en sus apps. Hoy presentamos el componente Navigation como marco de trabajo para estructurar la IU de sus apps, cuyo propósito es hacer que una app de actividad única sea la arquitectura preferida. Gracias a la compatibilidad inmediata con Fragments, se obtienen todos los beneficios de Architecture Components, como Lifecycle y ViewModel, mientras Navigation se ocupa de la complejidad de FragmentTransactions. Además, el componente Navigation les permite declarar transiciones de cuyo control nos encargamos, compila automáticamente el comportamiento “Up and Back” correcto, incluye compatibilidad completa con vínculos directos y proporciona asistentes para conectar Navigation con los widgets de IU adecuados, como el panel lateral de navegación y la navegación inferior. ¡Pero eso no es todo! Navigation Editor, en Android Studio 3.2, les permite ver y administrar visualmente sus propiedades de navegación:

El componente Navigation también se encuentra en versión Alfa y nos encantará recibir sus comentarios.
Paging
Los datos que se presentan en una app pueden ser de gran magnitud y la carga puede ser costosa, por lo que es importante evitar descargar, crear o presentar muchos datos a la vez. La versión 1.0.0 del componente Paging facilita la carga y presentación de conjuntos de datos de gran magnitud con desplazamiento infinito y rápido en sus RecyclerView. Puede cargar datos paginados del punto de almacenamiento local, de la red o de ambos, y les permite definir la forma de cargar su contenido. Funciona de inmediato con Room, LiveData y RxJava.
Slices
Por último, para completar la lista de características nuevas de Android Jetpack, presentamos el componente Slices. Un “slice” (segmento) es una opción para dar visibilidad a la IU de una app dentro del Asistente de Google como resultado de una búsqueda:

En el sitio web para desarrolladores de Android podrán obtener toda la información sobre el componente Slices y la manera de integrarlo a sus apps.
Android KTX
Por último, aunque no por ello sea menos importante, uno de los objetivos de Android Jetpack es aprovechar las funciones del lenguaje Kotlin que les permiten aumentar su productividad. Android KTX les permite transformar código Kotlin como este
view.viewTreeObserver.addOnPreDrawListener( object : ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { viewTreeObserver.removeOnPreDrawListener(this) actionToBeTriggered() return true } });
en código Kotlin más conciso, como el siguiente:
view.doOnPreDraw { actionToBeTriggered() }
Este es solo el primer paso en la incorporación de compatibilidad con Kotlin a los componentes de Android Jetpack; nuestro objetivo es que Android Jetpack sea una excelente alternativa para los desarrolladores de Kotlin (y, por supuesto, para los desarrolladores de Java). En el sitio web para desarrolladores de Android, encontrarán más información sobre Android KTX.
Primeros pasos
Podrán dar los primeros pasos con Android Jetpack en developer.android.com/jetpack. Encontrarán documentos y videos para Android Jetpack, consultar las novedades en relación con componentes de Android Jetpack, participar en la comunidad y dejarnos comentarios. También creamos una lista de reproducción en YouTube dedicada a Android Jetpack, a fin de que puedan buscar información sobre Android Jetpack, componentes, herramientas y prácticas recomendadas.
En Primeros pasos con Android Jetpack, encontrarán información sobre cómo incorporar componentes de Android Jetpack a sus apps existentes y cómo crear apps nuevas con Android Jetpack. Android Studio 3.2 ofrece excelente una compatibilidad con Android Jetpack en materia de herramientas. Para compilar apps nuevas, usen la actividad “Activity & Fragment+ViewData”, a la que podrán acceder en “File | New | New Project”, en Android Studio:

Lo que viene
Con Android Jetpack, aprovechamos los beneficios de la biblioteca de compatibilidad y de Architecture Components, y los ampliamos con nuevos componentes, integración con Android Studio y compatibilidad con Kotlin. Si bien Android Jetpack ofrece componentes, herramientas y orientación de última generación para acelerar el desarrollo en Android, hay mucho más por hacer y queremos que nos den una mano. Visiten developer.android.com/jetpack y dígannos qué podemos hacer para mejorar aún más sus experiencias de compilación de apps para Android.