- Swift eignet sich dank seiner sauberen Syntax, statischen Typisierung und spezieller Funktionen, die das Schreiben von Code erleichtern, gut für die Erstellung von Benutzeroberflächen
- Adwaita for Swift nutzt diese Swift-Funktionen und bietet eine intuitive Schnittstelle für die Entwicklung von Anwendungen für die GNOME-Plattform
- GNOME ist eine beliebte Open-Source-Desktop-Umgebung für Linux, die auf Einfachheit und Barrierefreiheit ausgerichtet ist
Codebeispiel
- Im Codebeispiel mit Adwaita for Swift wird eine View namens
Counter definiert, die den Teil der Benutzeroberfläche innerhalb eines Fensters anzeigt
- Views können in andere Views verschachtelt oder als Kind eines Fensters hinzugefügt werden; je nach Position in der View-Hierarchie kann ihr Inhalt von außen verändert werden
- Dadurch wird es einfacher, Views zu kombinieren, um verschiedene Ergebnisse zu erzeugen
Motivation
- Ziel ist es, das Schreiben von GNOME-Apps mit Swift zu ermöglichen
- Bestehende libadwaita- und GTK-Bindings folgen einem imperativen Codierstil, bei dem die Benutzeroberfläche mit einer Reihe von Befehlen aufgebaut wird
- Adwaita for Swift ist datenorientiert aufgebaut; wenn zum Beispiel durch einen Tastendruck die Variable
count geändert wird, aktualisiert sich die Benutzeroberfläche automatisch
Benutzerfreundlichkeit
- Bei traditionellen Bindings muss bei jeder Wertänderung eine Funktion auf einem Objekt aufgerufen werden, damit ein Widget seinen Inhalt aktualisiert
- Bei Adwaita for Swift muss einer zu speichernden Variable lediglich eine eindeutige Kennung hinzugefügt werden; den Rest übernimmt das Framework
Lesbarkeit
- Der datenorientierte Ansatz wirkt sich positiv auf die Lesbarkeit aus
- Durch die deklarative Definition der Benutzeroberfläche kann man sich stärker auf Aussehen und Verhalten der App konzentrieren als auf die Art und Weise, wie das Ergebnis erreicht wird
Entwicklung plattformübergreifender Apps
- Adwaita for Swift ermöglicht das Schreiben von Apps, die mit einer einzigen Codebasis unter Linux, macOS und Windows laufen
- Backend-Swift-Code kann zwischen SwiftUI-Apps und GNOME-Apps gemeinsam genutzt werden
- Mit Swift lassen sich neue GNOME-Apps erstellen und dabei eine hohe Code-Lesbarkeit sowie Speichersicherheit erreichen
Veröffentlichung von Apps
- Adwaita for Swift arbeitet gut mit Flathub zusammen und vereinfacht so Installation und Veröffentlichung von Apps für Desktop-Linux
- Es gibt eine Freedesktop-SDK-Erweiterung für Swift 5 sowie ein Werkzeug, das Swift-Package-Manager-Abhängigkeiten in Flatpak-Quellen umwandelt
Meinung von GN⁺
- Die Kombination von Swift und GNOME eröffnet Entwicklerinnen und Entwicklern neue Möglichkeiten zur App-Entwicklung auf einer neuen Plattform; insbesondere die Verbindung von Swifts starken Sprachfunktionen mit der benutzerfreundlichen GNOME-Umgebung ermöglicht eine effiziente Entwicklungserfahrung.
- Der Artikel präsentiert einen neuen Ansatz für die Linux-Desktop-Umgebung und betont gegenüber bisherigen Entwicklungsweisen den Komfort und die Lesbarkeit eines deklarativen Stils.
- Er hebt die Vorteile plattformübergreifender Entwicklung hervor und unterstreicht, wie wichtig es ist, auf verschiedenen Betriebssystemen dieselbe Nutzererfahrung zu bieten
- Aus technischer Sicht können Swifts statische Typisierung und Speichersicherheit zur Leistung und Stabilität von Apps beitragen
- Aus kritischer Perspektive sollte die Möglichkeit von Kompatibilitäts- oder Leistungsproblemen in anderen Desktop-Umgebungen als GNOME berücksichtigt werden
3 Kommentare
https://stuff.mit.edu/afs/athena/…
Die offizielle Aussprache von Gnome ist nicht „Nohm“, sondern „Gnom“.
Großartig.
Hacker-News-Kommentare
Diskussion über einen SwiftUI-ähnlichen Wrapper
Erwähnung anderer Projekte und Tools
Teilen persönlicher Projekterfahrungen
Vergleich mit früheren Erfahrungen
Probleme bei der Ausführung auf dem Mac
adwaita.hfehlte.Meinung zum persönlichen „Traum-Framework“
Frage zur 3D-Unterstützung in gtk4
Meinung zur Verwendung von Schlüsseln in Funktionsparametern
Diskussion über das Testen von Swift-Codebasen
Feststellung, dass Swift eine interessante Option für Desktop-Entwicklung wird