- Swift es adecuado para crear interfaces de usuario gracias a su sintaxis limpia, tipado estático y funciones especiales que facilitan la escritura de código
- Adwaita for Swift aprovecha estas capacidades de Swift para ofrecer una interfaz intuitiva para desarrollar aplicaciones para la plataforma GNOME
- GNOME es un popular entorno de escritorio de código abierto para Linux, centrado en la simplicidad y la accesibilidad
Ejemplo de código
- En el ejemplo de código con Adwaita for Swift, se define una vista llamada
Counter para mostrar la parte de la interfaz de usuario dentro de una ventana
- Las vistas pueden anidarse dentro de otras vistas o agregarse como hijas de una ventana, y su contenido puede modificarse desde afuera según su posición dentro de la jerarquía de vistas
- Esto facilita combinar vistas para generar distintos resultados
Motivación
- El objetivo es permitir escribir apps de GNOME usando Swift
- Los bindings existentes de libadwaita y GTK siguen un estilo de programación imperativo que construye la interfaz de usuario mediante una serie de comandos
- Adwaita for Swift está construido con un enfoque centrado en los datos, por lo que, por ejemplo, si se cambia la variable
count al presionar un botón, la interfaz de usuario se actualiza automáticamente
Facilidad de uso
- En los bindings tradicionales, cada vez que cambia un valor hay que llamar funciones sobre los objetos para que los widgets actualicen su contenido
- Adwaita for Swift se encarga del resto con solo agregar un identificador único a las variables que deben conservarse
Legibilidad
- El enfoque centrado en los datos tiene un efecto positivo en la legibilidad
- Gracias a la definición declarativa de la propia interfaz de usuario, es posible concentrarse en la apariencia y el comportamiento de la app, en lugar de en el método para obtener el resultado
Desarrollo de apps multiplataforma
- Adwaita for Swift permite escribir apps que se ejecutan en Linux, macOS y Windows con una sola base de código
- Se puede compartir el código Swift del backend entre apps de SwiftUI y apps de GNOME
- Usando Swift se pueden crear nuevas apps de GNOME con excelente legibilidad de código y seguridad de memoria
Lanzamiento de apps
- Adwaita for Swift funciona bien con Flathub, lo que simplifica la instalación y publicación de apps para Linux de escritorio
- Existe una extensión del Freedesktop SDK para Swift 5 y una herramienta para convertir dependencias de Swift Package Manager en fuentes de Flatpak
Opinión de GN⁺
- La combinación de Swift y GNOME brinda a los desarrolladores la oportunidad de crear apps en una nueva plataforma y, en particular, la unión entre las potentes capacidades del lenguaje Swift y el entorno amigable de GNOME permite una experiencia de desarrollo eficiente.
- Este artículo propone un nuevo enfoque para el entorno de escritorio Linux y destaca la facilidad de desarrollo y la legibilidad que ofrece el estilo declarativo frente a los métodos de desarrollo existentes.
- También resalta las ventajas del desarrollo multiplataforma y la importancia de ofrecer la misma experiencia de usuario en distintos sistemas operativos
- Como trasfondo técnico, el tipado estático y la seguridad de memoria de Swift pueden contribuir a mejorar el rendimiento y la estabilidad de las apps
- Desde una mirada crítica, habría que considerar la posibilidad de problemas de compatibilidad o rendimiento en entornos de escritorio distintos de GNOME
3 comentarios
https://stuff.mit.edu/afs/athena/…
La pronunciación oficial de GNOME no es "noum", sino "gnome".
Excelente.
Comentarios de Hacker News
Debate sobre wrappers similares a SwiftUI
Mención de otros proyectos y herramientas
Experiencia personal compartiendo un proyecto
Comparación con experiencias pasadas
Problemas al ejecutarlo en Mac
adwaita.h.Opinión sobre un "framework soñado" personal
Pregunta sobre el soporte 3D en gtk4
Opinión sobre el uso de claves en parámetros de funciones
Debate sobre testing en codebases de Swift
Descubriendo que Swift se está volviendo una opción interesante para desarrollo de escritorio