Jetpack Compose, el conjunto de herramientas de interfaz de usuario de Google para desarrollar aplicaciones de Android, ahora está en versión alfa. Es totalmente interoperable con las Vistas estándar de Android.
Cuando se trata de desarrollar una aplicación, hay muchas maneras de hacerlo. Puede elegir para qué plataforma(s) desarrollar, qué lenguaje(s) de programación desea utilizar y mucho más.
En el otoño de 2019, Google introducido un nuevo marco para crear interfaces de usuario en Android, utilizando Kotlin. Hasta ahora, ha estado en un estado de desarrollo, con frecuentes cambios importantes y toneladas de funciones faltantes. Pero hoy, Google ha llevado Jetpack Compose al estado de lanzamiento alfa, lo que significa que está un paso más cerca de ser utilizado en proyectos de calidad de producción.
¿Qué es Jetpack Compose?
Al crear una aplicación para Android, generalmente hay dos componentes principales con los que debes lidiar: el código, para cosas basadas en lógica; y el XML, para diseños. De forma predeterminada, Android usa Java para el código y su propio conjunto de etiquetas XML para los diseños.
Para muchos, Java y XML están bien, especialmente para aplicaciones más simples. Pero ambos sistemas tienen sus limitaciones y molestias. Con la introducción de Kotlin como oficial (y recomendado) para el desarrollo de Android, la parte de codificación para crear una aplicación de Android posiblemente se volvió mucho más fácil. Con las prácticas funciones de Kotlin, como la protección nula integrada y las funciones de extensión, el código se ve más limpio y es más fácil de leer.
Pero Kotlin no cambió nada con los diseños de Android. Para crear un diseño complejo, aún necesitabas crear un archivo XML y diseñarlo allí. Esto tiene algunas desventajas notables, incluida la separación inherente entre el código y XML. Si tiene una cadena constante en su código, por ejemplo, no puede simplemente hacer referencia a ella desde XML, por lo que si esa cadena cambia en el código, debe recordar actualizarla también en XML.
Ingrese a Jetpack Compose. Esta es la respuesta de Google al cada vez más complicado proceso de diseño de diseño XML en Android. En lugar de diseñar la interfaz de usuario de tu aplicación en XML, puedes hacerlo directamente desde tu código. Si bien es posible crear diseños basados en código, generalmente son menos fáciles de mantener que XML e involucran bibliotecas que se rompen fácilmente. Compose, por otro lado, está diseñado para funcionar directamente dentro de Kotlin: no más XML.
Jetpack Compose también es una desviación bastante radical del diseño imperativo estándar de los diseños XML. En cambio, es más similar a React o Flutter, con diseños declarativos que se actualizan solos cuando cambian los datos, en lugar de depender del desarrollador para implementar esa lógica.
Qué es compatible
Entonces Jetpack Compose ahora está en versión alfa. ¿Qué significa eso? Bueno, muchas cosas.
Interoperabilidad con vistas
Así como Kotlin es totalmente interoperable con Java, Jetpack Compose es totalmente interoperable con las Vistas estándar de Android. Esto significa bastantes cosas.
Por un lado, será mucho más fácil migrar a Jetpack Compose si así lo deseas. En lugar de tener que convertir todas sus vistas y diseños personalizados a Composables, podrá simplemente crear sus nuevos diseños y componentes en Compose. ¿Tiene una biblioteca que utiliza vistas "heredadas", pero su aplicación está diseñada con Compose? Ningún problema. Puede agregar la Vista directamente a su función Composable. ¿Aún no has dado el salto a Compose, pero quieres usar una biblioteca que dependa de Composables? De nuevo, no hay problema. Simplemente coloca el Composable directamente en tu diseño.
En cuanto a la temática, no es tan plug-and-play como la interoperabilidad del diseño. Sin embargo, Google ha creado una biblioteca. para adaptar sus temas XML estándar a temas compatibles con Compose, lo que ayuda a mantener las cosas centralizadas y evitar la duplicación.
animaciones
Realmente no hay mucho que decir aquí, excepto que Jetpack Compose admite animaciones, al igual que el marco View de Android. Puede mover, cambiar el tamaño y rotar al contenido de su corazón.
Listas perezosas
Una lista diferida es esencialmente la versión de Compose de RecyclerView. Solo distribuye los elementos según sea necesario, lo que ahorra RAM y aumenta el rendimiento. Por supuesto, al tratarse de Compose, las listas son mucho más sencillas de implementar.
Diseño de restricciones
Una de las vistas más potentes de Android es ConstraintLayout. Esto le permite posicionar, dimensionar y ponderar las vistas secundarias entre sí, al mismo tiempo que facilita ciertas animaciones. Si le preocupaba perder esta funcionalidad en Compose, no debería estarlo, porque también está aquí.
Componentes de la interfaz de usuario de materiales
Otro conjunto de Vistas poderosas es la biblioteca de Componentes de Materiales de Google. La mayor parte de lo que hay aquí son vistas y diseños estándar que puede encontrar en el marco de vista nativo. Pero están modificados o ajustados para proporcionar funcionalidad adicional y facilitar la creación de temas, y también han llegado a Compose.
Pruebas
Una parte importante del desarrollo de una aplicación es probarla. Para una aplicación sencilla, puedes hacerlo manualmente instalándola y usándola. Sin embargo, los proyectos más complejos pueden beneficiarse enormemente de los marcos de prueba automatizados que hacen la mayor parte del trabajo duro por usted. Jetpack Compose admite pruebas automatizadas para que puedas hacer que tu aplicación sea lo más estable posible.
Funciones de accesibilidad
La accesibilidad es una parte importante de nuestra sociedad. Sin funciones de accesibilidad en nuestra tecnología, muchas personas simplemente quedarían excluidas de los beneficios que brindan nuestros teléfonos, televisores y cualquier otra cosa. Jetpack Compose todavía está en versión alfa, por lo que el soporte de accesibilidad no está completo, pero Google lo tiene en cuenta durante el desarrollo y ya existe soporte rudimentario.
Estudio Android
Sin embargo, no todas las funciones de Jetpack Compose están en Jetpack Compose. Android Studio y Kotlin también tienen complementos y expansiones para facilitar la composición.
Complemento del compilador Kotlin
Al igual que con Kotlin JVM, hay un complemento de compilación en Android Studio para convertir correctamente las funciones de Compose en código que Android realmente pueda comprender y seguir.
Vistas previas interactivas
Al igual que con los diseños XML estándar, Android Studio viene con una vista previa del diseño para Jetpack Compose. Si bien actualmente no es tan conveniente como las vistas previas XML en algunos aspectos, debe crear su proyecto para la vista previa para actualizar y crear una función de vista previa dedicada; viene con una ventaja notable: interactiva vistas previas.
Una vista previa interactiva es sólo una vista previa normal, pero interactivo. Loco, lo sé. Sin embargo, lo que esto significa es que puedes escribir texto en cuadros de texto, hacer clic en botones y, bueno, interactuar con tus Composables, sin siquiera tener que implementarlos.
Implementación componible única
Si realmente desea implementar (es decir, instalar) su diseño para ver cómo funciona en un dispositivo real, esta función podría ayudarlo. Con los diseños XML normales, para ver cómo funciona un diseño en el mundo real, debes crear e instalar la aplicación completa. Si el diseño que desea probar no está en la pantalla principal, es posible que deba tocar mucho para acceder a él.
Y ahí es donde entra en juego la capacidad de implementar solo un Composable. En lugar de tener que crear e instalar su aplicación y luego navegar hasta el diseño que está probando, puede simplemente implementar el diseño. Android Studio generará y abrirá una Actividad contenedora que solo muestra el Composable que implementó. Esto puede hacer que las pruebas y el diseño sean mucho más rápidos e incluso puede ayudar a aislar problemas relacionados con la interacción de los elementos.
Finalización de código
Si su IDE no tiene finalización de código, ¿es siquiera un IDE? No. No, no lo es. Entonces, por supuesto, Android Studio admite la finalización completa de código para Jetpack Compose.
Si bien esto no es todo lo que Jetpack Compose trae a la mesa, las características y el comportamiento anteriores muestran cuán poderoso quiere Google que sea este marco. Y, aunque todavía está en alfa, es un paso adelante de su estado de "desarrollo" anterior. Si realmente estabas postergando el uso de Jetpack Compose (como yo), ahora podría ser el momento de intentarlo de nuevo.