Sobre el proyecto

swift-adwaita es una biblioteca de envoltura imperativa de Swift 6 para GTK4 y libadwaita, diseñada para construir aplicaciones nativas de escritorio GNOME. Proporciona 178 envolturas de widgets—74 widgets Adwaita autogenerados y 104 widgets GTK escritos a mano—junto con una envoltura WebView para WebKitGTK 6.0 (opt-in a través del producto separado AdwaitaWebKit). La biblioteca sigue una arquitectura de tres capas: CAdwaita (enlaces de biblioteca del sistema), GObjectSupport (gestión del ciclo de vida de GObject con ARC, señales, Variant y GValue), y Adwaita (envolturas de widgets). Todos los punteros crudos están ocultos detrás de tipos Swift, y la API pública usa enums tipados para SignalName, PropertyName, CSSClass e IconName en lugar de cadenas crudas. Las características clave incluyen encadenamiento de métodos fluido para configuración de widgets, manejo de señales tipado con cierres @MainActor, soporte async/await para diálogos de archivo y operaciones de portapapeles, atajos de teclado con Key y KeyModifiers basados en enums, enlaces de propiedades vía GObjectRef.bind(), un protocolo unificado Container para operaciones de append/remove, e inicializadores de conveniencia para widgets comunes como SwitchRow y PreferencesGroup. La biblioteca soporta menús y acciones a través de GMenuRef y SimpleAction, arrastrar y soltar vía DragSource y DropTarget, estilos CSS con CSSProvider y enums CSSClass tipados, animaciones con TimedAnimation y SpringAnimation, dibujo con DrawingArea y CairoContext, atributos de texto para etiquetas y entradas de estilo, reproducción multimedia con MediaStream y Video, y soporte completo de localización incluyendo configuración de gettext, búsquedas plurales y de contexto, cambio de idioma en tiempo de ejecución y diseño de derecha a izquierda. También proporciona un envoltorio de propiedad @Setting para enlaces GSettings tipados, ayudas de diseño adaptativo con Breakpoint.minWidth() y Breakpoint.maxWidth(), y soporte completo de concurrencia Swift 6 con aislamiento @MainActor y tipos Sendable. El proyecto incluye 1194 pruebas en Linux y 1181 en macOS, 78 ejemplos de demostración, y CI en Ubuntu y macOS. Requiere Swift 6.2+, encabezados de desarrollo de libadwaita 1.5+ y encabezados de desarrollo de GtkSourceView 5, y soporta Linux o macOS 13+ (Apple Silicon recomendado). La distribución en Linux se recomienda vía Flatpak, que usa el runtime de GNOME para GTK4 y libadwaita y la extensión del SDK de Swift para el compilador. La biblioteca se publica bajo la Licencia MIT.