Apple veröffentlicht Swift 5 für Xcode 10.2
Das Swift-Entwicklerteam hat eine neue Version des Swift-Compilers in Xcode 10.2
herausgebracht. Swift 5 bringt neben neuen Funktionen vor allem ein für die Zukunft gerüstetes ABI mit. Das Release soll die Kompatibilität mit Binär-Codes anderer Swift-Versionen stark verbessern. Damit sei es laut Apple etwa möglich, Frameworks unabhängig von deren Compiler-Version einzubinden. Am Ende führe das zu kleineren Download-Größen von Swift-Apps – auch bei internen Prüfungen über TestFlight.
Zunächst für macOS, iOS, watchOS und tvOSDie Swift-Community
sieht die erweiterte Stabilität des Application Binary Interface (ABI) als Meilenstein des Projektes auf dem Weg zu einer „erwachsenen“ Programmiersprache an. Das Merkmal betreffe alle Plattformen auf denen Swift-Code kompiliert werden und laufen kann. Mit Version 5 erklärt das Swift-Developer-Team zunächst das ABI auf Apple-Plattformen für stabil. Wenn die Entwicklung von Swift für Linux und Windows sowie andere Plattformen weiter voranschreite, werde das Team auch die Stabilisierung des ABI für diese Systeme prüfen.
Bessere Kompatibilität mit bereits kompilierten CodeDer Vorteil von „ABI stability“ besteht darin, dass es keine große Änderung in der Funktionsweise des Compilers geben wird, die die Kompatibilität mit bereits kompilierten Anwendungen oder Bibliotheken beeinträchtigen. Das betrifft in erster Linie zukünftige Versionen von Swift. Wer also heute mit Swift 5 Code kompiliert, darf sich darauf verlassen, dass sein Werk auch mit dynamisch verknüpften Bibiliotheken funktioniert, die mit späteren Swift-Versionen erstellt worden sind. Apps müssen demnach nicht mehr die von ihnen verwendeten Standardbibiliotheken einbinden, sondern können stattdessen immer die vom Betriebssystem bereitgestellten Versionen verwenden. Durch das Wegfallen der Integration besagter Bibliotheken schrumpft die App-Größe sowohl im App-Store als auch bei Bereitstellungstests über TestFlight. Bei Apps in Objective C ist das bereits der Fall.
Swift 5.1 steht bevorApples Programmierteam hat bereits angekündigt, man werde für die Version 5.1 nicht so viel Zeit brauchen wie für das nun vorgestellte Release. Die Stabilisierung des ABI habe intensive Arbeit benötigt, nun arbeite man an der Stabilität der Module, die im Prinzip eine Erweiterung des ABI darstellt. Das swiftmodule-Format, um das Interface einer Bibilothek zu beschreiben, soll ebenfalls von der jeweiligen Compilerversion der verwendeten Bibilothek gelöst werden. Somit müssten App-Entwickler und Bibilotheksersteller nicht mehr dieselbe Swift-Variante verwenden. Erreicht werde dies mit der Ergänzung des Modules um eine Text-Zusammenfassung, ähnlich der in Xcodes „generated interface“. So könnten Clients ein Modul verwenden ohne sich darum zu kümmern mit welchem Compiler es erstellt wurde. Wer mehr dazu wissen möchte, dem sei ein Blick ins
Swift-Forum empfohlen.