Curso en audio de Jetpack Compose 1 Introducción
Te doy la bienvenida a esta primera clase de este curso en audio de Jetpack Compose.
Al ser un contenido que está pensado para consumir en audio, trataré de no ponerme demasiado técnico. Aunque si algún momento hace falta, es posible que añada por aquí alguna imagen, bloque de código, o lo que sea.
Pero vamos, que vas a poder escuchar el audiocurso desde la app si estás suscrito mientras haces cualquier otra cosa que no requiera de demasiada atención.
Este contenido está restringido.
HAZTE PREMIUM
para difrutar de los audios y vídeos exclusivos.
¿Qué es Jetpack Compose?
Jetpack Compose es una biblioteca de UI para Kotlin que nos permite dibujar pantallas de forma declarativa.
Esto significa que se cambia el histórico modo de hacerlo de un modo imperativo a un modo declarativo.
De XMLs a Kotlin.
De modo imperativo, cada vez que cambia el estado, se actualizan los componentes visuales siguiendo la típica jerarquía en forma de árbol en los XML.
De modo declarativo, lo que hacemos es que cada vez que cambia el estado, actualizamos cada parte de la UI por separado.
Y esto nos ayuda a construir apps más robustas evitando errores y a mejorar la performance.
¿Qué ventajas tiene?
Una de las mejores características de Jetpack Compose es que hay que escribir el código en Kotlin.
Esto tiene ventajas directas: reutilización de código, crear pantallas más rápido, el conocimiento que ya tenemos del lenguaje, etc.
Además, se puede ir previsualizando en tiempo real conforme vas cambiando el código mediante la anotación @Preview
, acelerando un montón el flujo de desarrollo al no tener que esperar todo el tiempo de compilación y que la app se instale en el dispositivo para ver un cambio en la UI.
Históricamente, esto ha sido un gran cuello de botella en Android, ya que los tiempos de compilación se puede alargar más de lo que nos gustaría en proyectos grandes que no están modularizados adecuadamente.
Otro rasgo interesante es que puedes ir añadiendo pantallas con Jetpack Compose en proyectos ya existentes. Por lo que no hace falta que cambies todo de golpe.
Y naturalmente, esto es un plus superrelevante para empezar a usarlo, ya que no es un todo o nada.
A mí me recuerda un poco a la filosofía de interoperabilidad de Kotlin con Java, que al poder ir metiendo código poco a poco, nos hizo mucho más fácil hacer la transición a los desarrolladores Android.
Y por si todo esto fuera poco, otro de los filones de Jetpack Compose, es que nos permite hacer test unitarios. Con lo que podemos testear UI sin tests de instrumentación.
Esto es un plus enorme a nivel de tiempos en nuestro CI y evitar flaky tests.
Por si todo esto fuera poco, con Kotlin Multiplatform también nos permite dibujar pantallas para desktop y web.
¿Y desventajas?
Pues como todo, la curva de aprendizaje.
Pero la buena noticia es que una vez empiezas, no puedes parar. Enseguida ves que es una disrupción tan grande, que los XMLs se te quedan superanticuados. 😅
También hay que tener en cuenta que aunque ya lleva tiempo en marcha, aún quedan cosas por pulir.
Y por supuesto, si tienes una pantalla muy complicada que funciona perfectamente, hacer la migración por el hecho de hacerla, puede que no sea la mejor opción a nivel de inversión en tiempo en ese refactoring.
Y esto puede hacer que se acuse una falta de homogeneidad en el proyecto al empezar a introducir este modo de dibujar pantallas. Es decir, en unos sitios sí, y en los otros no.
¿En qué se diferencia del anterior modo de dibujar pantallas en Android?
Básicamente Jetpack Compose simplifica el proceso de creación de interfaces de usuario.
Nos permite crear pantallas más rápido y reusar código de un modo más sencillo.