Apple: Programmiersprache Swift 5.2 ist out
Apple hat Version 5.2 seiner weit verbreiteten Programmiersprache Swift zum Schreiben von Apps für Mac, iPad, iPhone, Apple Watch und Apple TV veröffentlicht. Apples Open-Source-Programmiersprache Swift 5.2 kam am Dienstag mit der Veröffentlichung von Xcode 11.4, der neuesten Version von Apples integrierter Entwicklungsumgebung (IDE), auf den Markt. Swift 5.2 baut auf Swift 5.1 auf, das im September veröffentlicht wurde, und Swift 5 ab März 2019.
Xcode 11.4 ermöglicht es Entwicklern, MacOS-Anwendungen als „Universal Purchase“ mit der iOS-Version derselben Anwendung zu vertreiben. Sobald die Entwickler dies übernehmen, können die Benutzer einen einzigen In-App-Kauf tätigen, der für MacOS-, iOS-, iPadOS-, WatchOS- und tvOS-Geräte gilt.
Die Aussicht auf universelle Käufe für macOS ist ein Anreiz für Entwickler, Apps mit Mac Catalyst zu entwickeln, Apples Plattform, die Entwicklern hilft, iPadOS-Apps für ihre 100 Millionen Mac-Benutzer zu entwickeln. Der universelle Kauf ist standardmäßig für neue Mac Catalyst-Anwendungen, die mit Xcode 11.4 erstellt wurden, aktiviert.
Laut Ted Kremenek, einem Mitglied des Swift Core Teams, verbessert Swift 5.2 „drastisch“ die Compiler-Diagnose mit besserer Qualität und präziseren Fehlermeldungen.
Außerdem bietet es eine schnellere Code-Vervollständigung, eine höhere Zuverlässigkeit beim Debuggen, eine verbesserte Handhabung von Abhängigkeiten im Swift Package Manager und Verbesserungen der Werkzeuge mit dem Language Server Protocol (LSP) und SwiftSyntax.
Die Codekomplettierungsfunktion von Swift 5.2 arbeitet laut Kremenek bei großen Dateien bis zu 1,2- bis 1,6-mal schneller als Xcode 11.3.1.
Die neue Compiler-Diagnose-Engine von Swift 5.2 behebt potenziell verwirrende Fehlermeldungen, die in Swift 5.1 im Code markiert sind, und kann nun besser den genauen Teil des Codes ermitteln, der behoben werden muss.
Sie verspricht auch eine effizientere Erstellung von inkrementellen Builds, dem Modus in Xcode zum Kompilieren von Builds zur Fehlersuche in einem Swift-Projekt.
„Um die vergeudete Arbeit von Builds im inkrementellen Modus zu minimieren, nutzt der Swift 5.2-Compiler – insbesondere der Type Checker – eine neue zentralisierte Logik für das Caching, die faule Auswertung und die Verfolgung von Abhängigkeiten zwischen Anfragen, bei denen eine Anfrage eine in sich geschlossene Berechnungseinheit darstellt“, bemerkt Kremenek.
„Diese Logik wird nun vom Compiler verwendet, um Deklarationen und ihre Verweise aufeinander effizienter aufzulösen.
Kremenek schlägt weitere Leistungsoptimierungen des Compiler-Verhaltens von Swift 5.2 vor, die auch den Ganzmodul-Modus von Xcode verbessern sollten, der für Release-Builds verwendet wird.
LLDB, der Open-Source- und Standard-Debugger in Xcode, ist jetzt besser in der Lage, Typinformationen für Swift-Programme aus Debug-Informationen zu rekonstruieren.
LLDB kann jetzt auch C- und Objective-C-Typen aus Debug-Informationen im DWARF-Format importieren, anstatt das Clang-Modul aus dem Quellcode zu kompilieren, bemerkt Kremenek.
Der Swift-Paketmanager in Swift 5.2 verbessert die Auflösung für Paketabhängigkeiten. Diese sollten die Wahrscheinlichkeit von Abhängigkeitsversionskonflikten verringern und die Qualität von Fehlermeldungen verbessern, während sie gleichzeitig eine bessere Leistung in komplexen Paketgrafiken bieten.
Schließlich gibt es Aktualisierungen der SourceKit-LSP-Implementierung des Language Server Protocol (LSP) für Swift- und C-basierte Sprachen. Microsoft hat LSP, ein Client-Server-Protokoll, entwickelt, um Funktionen wie die automatische Vervollständigung zu integrieren.
Xcode 11.4 und sein Kommandozeilen-Tool-Paket enthalten Swift 5.2 SourceKit-LSP, das jetzt die LSP-Funktion FixIts unterstützt, so dass Swift-Fehler, Warnungen und Hinweise mit FixIts über die Code-Aktionen des LSP unterstützt werden.
Swift unterstützt jetzt auch das lokale Refactoring des LSP, d.h. lokale Swift-Factorings wie extract-to-method werden laut Kremenek jetzt unter Verwendung der Code-Aktionsart ‚Refactoring‘ unterstützt.