Neues für Entwickler und Systemverwalter

GNOME 3.22 enthält viele neue Funktionen und Verbesserungen für Nutzer der GNOME-Technologien. Lesen Sie weiter, um mehr zu erfahren.

Langzeitunterstützung von GTK+

Die Version 3.22 markiert einen signifikanten Moment in der Geschichte von GTK+. Da die Versionsnummer das Suffix .0 nicht enthält, ist es die erste Version in einer neuen Reihe als stabil markierter Veröffentlichungen, und die erste GTK+-Hauptversion seit 3.0. Für folgende Veröffentlichungen der 3.22.x-Reihe wird API- und ABI-Stabilität garantiert, wobei sich neue Veröffentlichungen auf Fehlerbereinigungen und sicherheitsbezogene Korrekturen beschränken. Diese Aktualisierungen werden mindestens für die nächsten drei Jahre zur Verfügung gestellt. Die Hauptentwicklung wird in einer separaten Veröffentlichungsreihe fortgeführt, die sich an Anwendungsentwickler richtet, die die neuesten Funktionsmerkmale haben wollen und moderate Instabilität nicht scheuen.

GTK+ 3.22 erklärt alle Verbesserungen aus den bisherigen 3.x-Ausgaben von GNOME als stabil, wie z.B. CSS-Styling, den GTK-Inspektor, Animationen, neue Widgets und vieles mehr. Auf diesem Weg verspricht GTK+ langfristige Verlässlichkeit für Anwendungsautoren, die sich darauf verlassen müssen. Demgegenüber hält dieser Schritt jedoch nicht die weitere Entwicklung auf. Dies wurde nach umfangreichen Gesprächen mit GTK+-Benutzern umgesetzt. Eine ausführliche Beschreibung des Verfahrens, dem eine lange Vorbereitungsphase vorausging, lässt sich im GTK+ Entwickler-Blog nachlesen.

Flatpak

Flatpak, das zuvor als xdg-app bekannt war, ist die Technologie der Zukunft für die Anwendungsverteilung unter Linux. Es ist ein unabhängiges Projekt mit eigener Freigabeplanung. Das GNOME-Projekt plant jedoch, Flatpak zu einem wichtigen Teil der Entwicklungsumgebung zu machen.

Seit der Freigabe von GNOME 3.20 hat Flatpak entscheidende Fortschritte erzielt und ist reifer geworden. Ein entscheidender Meilenstein wurde mit der Einführung einer neuen API-Reihe namens »portals« erzielt. Diese ermöglicht Anwendungen in Sandboxen Zugriff auf Ressourcen des Wirtssystems.

Die Entwicklungstechnologien von GNOME 3.22 unterstützen »portals« vollständig über GLib und GTK+. Unterstützte »portals« sind unter anderen der Dateiwähler, Drucken, das Öffnen von Verweisen, in Bereitschaft versetzen/abmelden/Leerlauf verhindern, Bildschirmfotos, Benachrichtigungen und der Netzwerkstatus. Somit können vollständig eingekapselte Anwendungen zum ersten Mal geschrieben werden. Der Zugriff auf ein Portal ist transparent, obwohl GtkFileChooserNative gegenüber dem regulären GtkFileChooser empfohlen wird. Weitere Informationen finden Sie auf Matthias Clasens Blog-Beitrag.

Weitere Informationen zu Flatpak, sowie Entwicklerdokumentation und die Liste einer wachsenden Anzahl an Flatpak-Anwendungen zum Ausprobieren, finden Sie auf flatpak.org.

Builder

GNOME 3.22 ist eine weitere große Ausgabe für »Builder«, in dem große Teile der neuen Entwicklungsumgebung ihren Platz finden. Ein neu eingebauter Profiler macht es nun möglich, Performanzprobleme in einem Projekt ausfindig zu machen. Momentan werden C und C++ vom Profiler unterstützt, mit der Erwartung, in Zukunft auch weitere Sprachen unterstützen zu können. Builder entwickelt sich dadurch zum ersten Mal zu einer universellen Entwicklungsumgebung.

Die Benutzeroberfläche von Builder wurde nach 3.20 generalüberholt. Ein neuer Perspektivenwechsler verhilft zum eleganten Umschalten zwischen den verschiedenen Modi und die Suchleiste wurde umpositioniert. Insbesondere der neue »Projektbalken« verhilft zu aktuellen Informationen über das Projekt, Zweig und Build-Profil. Ebenso ist es mit dem Projektbalken möglich, das Projekt von überall aus mit einem einzigen Klick zu starten.

Weitere Verbesserungen für Builder 3.22 sind unter anderem:

  • Eine neue Funktion zum Suchen und Ersetzen. Sie enthält die üblichen Optionen für Groß-/Kleinschreibung, reguläre Ausdrücke und ganze Wörter.

  • Der Code-Editor von Builder erleichtert den Umgang mit Farben, dank Farbhervorhebung und einer neuen Seitenleiste für die Farbauswahl.

  • Die Seiten zum Erstellen, Klonen und Öffnen von Projekten wurden verbessert, mit überarbeiteten Layouts und zusätzlichen Optionen zum Erstellen von Projekten.

  • Ein neues Schnellhervorhebungs-Plugin markiert passenden Text, der der aktuellen Auswahl entspricht.

  • Die C, XML und HTML-Einrücker wurden erweitert, um weitere Syntax-Stile zu unterstützen.

Verbesserungen von GTK+

Neben Flatpaks portal-Integration gibt es weitere Verbesserungen in GTK+ 3.22:

  • CSS-Blendmodi. Dies ist eine gewöhnliche Funktion von CSS, die eine programmierte Transformation ermöglicht. Georges Stavracas implementierte die Funktion und lieferte weitere Details in seinem Blog.

  • GTK+ 3.22 ermöglicht die Verwendung von graphischen Tablets unter Wayland. Carlos Garnacho schrieb einen Beitrag, wie Unterstützung von Anwendungen dafür entwickelt wird.

  • GtkGLArea kann ab sofort mit OpenGL und OpenGL für Embedded Systems (bekannt als OpenGL ES oder GLES) verwendet werden.

  • GdkMonitor ist eine neue bequeme Möglichkeit, um Bildschirminformationen zu erhalten. Es bietet umfassendere Informationen als das zuvor verfügbare GdkScreen.

Obwohl der »GTK Scene Graph« (GSK) noch nicht mit 3.22 veröffentlicht wird, gab es in den letzten sechs Monaten große Fortschritte. Mit dem oben dargestellten Entwicklungsmodell ist bald der Weg für eine Integration in den instabilen Zweig von GTK+ frei.

Strukturierte Protokollierung von GLib

Die Protokollierungs-API von GLib wurde umgebaut, um strukturierte Felder mit Schlüssel-Wert-Paaren zu protokollieren. Dadurch wird es leichter, Protokollierung zu ergänzen und ermöglicht mächtigere Schemata. Ebenso können weitere Metadaten in Protokollnachrichten übernommen werden, wie zum Beispiel Nachrichtenkennungen.

Als Teil der Arbeit wurde die Protokollierungsinfrastruktur von GLib mit einer Schreiberfunktion ergänzt, in der eine Anwendung ihre Richtlinien festlegt. Log-Handler werden zugunsten dieser Funktion aufgegeben, womit die Frage entfällt, wie und wo Protokollierung gehandhabt wird. Konflikte zwischen Log-Handlern werden so beseitigt.

GLib liefert automatisch Protokolldaten an systemd-journald, sofern dieses läuft. stdio-basierte Ausgabe funktioniert wie zuvor, aber zusätzlich mit Farbe!