El entorno de escritorio de Pop!_OS, COSMIC, utilizará Iced en lugar de GTK
Hace algunos días Michael Aaron Murphy, líder de desarrollo de Pop!_OS y colaborador del sistema operativo Redox, habló sobre trabajar en una nueva edición del entorno de usuario de «COSMIC».
Para quienes desconocen de COSMIC, deben saber que es un entorno de escritorio propio de Pop! _OS que se basa en un GNOME Shell modificado con extensiones adicionales, pero difiere en un rediseño más profundo del escritorio y la introducción de cambios conceptuales.
Hay que recordar que COSMIC fue introducido en Pop!_OS el año pasado en la versión de Pop!_OS 21.04 y los responsables del proyecto System76 describen al entorno como una solución depurada que hace que el escritorio sea más fácil de usar, a la vez que es más potente y eficiente para los usuarios a través de la personalización.
También se menciona que se han desarrollado nuevos diseños a partir de pruebas exhaustivas y comentarios de los usuarios desde el lanzamiento de Pop! _OS 20.04, y actualmente se están perfeccionando en su fase de prueba.
En lugar de la navegación horizontal unificada de aplicaciones y escritorios virtuales en la «Descripción general de actividades» que apareció en GNOME 40, COSMIC continúa separando vistas para navegar por escritorios junto con ventanas abiertas y aplicaciones existentes. Una vista dividida le brinda la posibilida de acceder a una selección de aplicaciones con un solo clic, y un diseño más simple le permitirá no distraer la atención del desorden visual.
El equipo de UX ha estado diseñando cuidadosamente widgets y aplicaciones durante el último año. Ahora estamos en el punto en el que es fundamental que el equipo de ingeniería decida sobre un conjunto de herramientas GUI para COSMIC. Después de mucha deliberación y experimentación durante el último año, el equipo de ingeniería decidió usar Iced en lugar de GTK.
Durante las pruebas de usuario, se mencionó que se descubrió que los usuarios de GNOME tienden a pausar la tarea después de abrir la «Descripción general de actividades». Las vistas divididas permiten acceder al selector de aplicaciones con un solo clic, mientras que el diseño de interfaz de usuario más limpio evita la distracción visual.
Iced es un kit de herramientas GUI nativo de Rust que últimamente ha progresado lo suficiente como para volverse viable para su uso en COSMIC. Ya se han escrito varios subprogramas COSMIC tanto en GTK como en Iced para comparar.
Se observa que después de largas discusiones y experimentos, los desarrolladores decidieron usar la biblioteca Iced en lugar de GTK para construir la interfaz. Según los ingenieros de System76, la biblioteca Iced, que se ha desarrollado activamente recientemente, ya ha alcanzado un nivel suficiente para ser utilizada como base para un entorno de usuario.
Las últimas versiones de desarrollo de Iced tienen una API que es muy flexible, expresiva e intuitiva en comparación con GTK. Se siente muy natural en Rust, y cualquiera que esté familiarizado con Elm apreciará su diseño.
Durante las pruebas que se realizaron se prepararon varios applets de COSMIC, escritos simultáneamente en GTK e Iced para comparar tecnologías. Las pruebas realizadas han demostrado que, en comparación con GTK, la biblioteca Iced proporciona una API más flexible, expresiva y comprensible, se combina naturalmente con el código Rust y ofrece una arquitectura familiar para los desarrolladores familiarizados con el lenguaje de construcción de interfaz declarativa Elm.
La biblioteca Iced está escrita completamente en lenguaje Rust, utiliza tipos seguros, una arquitectura modular y un modelo de programación reactivo. Se proporcionan varios motores de renderizado compatibles con Vulkan, Metal, DX12, OpenGL 2.1+ y OpenGL ES 2.0+, así como un shell de ventanas y un motor de integración web.
Las aplicaciones basadas en Iced se pueden crear para Windows, macOS, Linux y ejecutarse en un navegador web. A los desarrolladores se les ofrece un conjunto de widgets listos para usar, la capacidad de crear controladores asincrónicos y utilizar el diseño adaptable de los elementos de la interfaz según el tamaño de la ventana y la pantalla. El código se distribuye bajo la licencia MIT.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.