JetBrains ha lanzado Compose para escritorio y web, una versión alfa de Jetpack Compose de Google para Android. Esto es lo nuevo.
Si no has oído hablar de Componer Jetpack, ¿Dónde has estado últimamente? Google creó este marco de interfaz de usuario declarativo para reemplazar el motor de diseño XML estándar en Android. Compose permite a los desarrolladores crear sus diseños y la lógica que los acompaña, todo en Kotlin. JetBrains, la compañía detrás de Kotlin, también participó en la acción Compose y está trabajando para trasladarlo tanto al escritorio como a la web.
JetBrains Compose para escritorio y web lleva un tiempo en desarrollo. Ha tenido una "Vista previa de tecnología" pública pre-alfa que los desarrolladores pueden usar para crear aplicaciones multiplataforma en Compose. Yo personalmente lo he usado para Mi aplicación Samsung Firmware Downloader, y funciona bastante bien.
Hoy, JetBrains está promocionando su versión de Compose en alfa. Eso significa una API más estable, junto con algunas características y cambios nuevos.
Redactar para Web
Primero, la web. Redactar para Web es incluso más nuevo que Redactar para escritorio, y falta bastante. Sin embargo, eso no significa que sea inútil. Si bien es posible que los desarrolladores no obtengan los elegantes elementos básicos de la interfaz de usuario disponibles para escritorio y Android, los desarrolladores aún obtienen los beneficios de escribir en Kotlin con principios de diseño declarativos.
Ahora que Compose se encuentra en una etapa alfa, la API web debería ser más estable, con menos cambios importantes, si es que se realizan alguno, a lo largo del tiempo.
Redactar gestión de ventanas
De regreso al Escritorio, hay algunos cambios en la forma en que los desarrolladores interactúan con Windows en su aplicación.
El primero es un nuevo API de ventana componible. Esto permite a los desarrolladores interactuar con las ventanas de su aplicación de forma declarativa. Por ejemplo, el título de la ventana ahora se puede cambiar con un estado, y las ventanas incluso se pueden abrir y cerrar según los estados.
Otra parte de la API de nueva ventana permite a los desarrolladores elegir abrir nuevas ventanas con un tamaño adaptable (en lugar de fijo). Esto significa que Compose calculará el tamaño que debe tener una ventana en función de su contenido, establecerá automáticamente el tamaño inicial y luego abrirá la ventana.
Complementos
JetBrains Compose siempre ha tenido un complemento de Gradle para realizar la compilación y ejecución. Con la versión alfa, este complemento recibirá un aumento de versión, junto con algunas correcciones de errores.
Sin embargo, además del complemento Gradle, hay ahora un complemento IDE para que IntelliJ IDEA y Android Studio admitan mejor Compose para escritorio y web. De manera similar a Compose para Android, este complemento permite a los desarrolladores anotar funciones componibles como vistas previas y ver vistas previas de diseño directamente en el IDE.
El complemento es muy básico en este momento. La única otra característica que tiene en este momento elimina la advertencia de pelusa del IDE sobre el uso de mayúsculas y minúsculas para nombres de funciones componibles. Pero obtendrá más funciones a medida que pase el tiempo, como la vista previa en vivo.
Soporte de arquitectura
Aunque el objetivo de JetBrains Compose es ser multiplataforma, todavía no tiene soporte completo para todas las arquitecturas de CPU. La versión alfa amplía el soporte actual a lo siguiente:
- MacOS: x86-64 (amd64), arm64
- Ventanas: x86-64 (amd64)
- Linux: x86-64 (amd64), arm64
- Web: cualquier cosa reciente
Si bien eso ciertamente no cubre todo lo que hay, el soporte solo mejorará en el futuro.
Futuros desarrollos
La decisión de JetBrains de llevar Compose a un estado alfa es importante. Significa que están planeando continuar desarrollándolo, con eventuales etapas beta y estable. Y, por supuesto, más funciones.
Conclusión
Es muy emocionante ver lo que Compose tiene para ofrecer. En Android, reemplaza un motor de diseño obsoleto (aunque perfectamente utilizable). En escritorio y web, ofrece diseño declarativo utilizando un lenguaje fuertemente tipado que es más fácil de usar (al menos para mí) que los lenguajes basados en TypeScript. Especialmente en el escritorio, Compose ayuda a llenar un vacío bastante grande para los motores de diseño funcionales.
Si está interesado en probar JetBrains Compose usted mismo, echa un vistazo al repositorio de GitHub para obtener más detalles sobre cómo empezar.