Release-Prozess, Updates und alle Neuigkeiten rund um Swift 3.0

Der Weg zu Swift 3.0
1 Kommentar

Seit September 2016 steht Apples Programmiersprache Swift in Version 3.0 zur Verfügung. Jetzt ist die erste Minor-Version, Swift 3.1, erschienen und bringt Verbesserungen und Verfeinerungen der Standardbibliothek sowie Fortschritte bei der Linux-Implementierung von Swift mit sich.

2014 wurde Swift erstmals von Apples als neue Programmiersprache vorgestellt. Bereits im Sommer letzten Jahres wurde verkündet, Swift künftig auch Open Source zur Verfügung zu stellen – ein Versprechen, dass dann im Dezember 2015 wahr gemacht wurde. Seitdem arbeitet das Entwickler-Team an der Weiterentwicklung der sowohl in der OSX- als auch der der iOS-Entwicklung zum Einsatz kommenden Programmiersprache.

Im März erschien Swift 2.2 mit einer Reihe neuer Features und Verbesserungen, darüber hinaus wurden Änderungen an der Standardbibliothek der Sprache vorgenommen und einzelne Sprachmerkmale als deprecated eingestuft. Damit wurde bereits der Weg zur neuen Major-Version geebnet. Swift 3.0 soll laut Aussage des Entwickler-Teams noch dieses Jahr erscheinen, ein genaues Release-Datum gibt es allerdings noch nicht.

In diesem Beitrag wollen wir euch aber ab sofort über alle Entwicklungen, Meilensteine und Updates auf dem Laufenden halten.

API Conference 2018

API Management – was braucht man um erfolgreich zu sein?

mit Andre Karalus und Carsten Sensler (ArtOfArc)

Web APIs mit Node.js entwickeln

mit Sebastian Springer (MaibornWolff GmbH)

Swift 3.0 Release-Prozess

Swift 3.0 ist die kommende Major-Version der Programmiersprache. Sie soll, so erklärt Ted Kremenek in einem Blogpost, fundamentale Änderungen der Sprache selbst sowie der Swift-Standard-Library enthalten – und dementsprechend nicht abwärtskompatibel zur aktuellen Swift-Version 2.2 sein.

Außerdem ist Swift 3.0 das erste Release, das mit dem neuen Swift Package Manager daherkommt. Zwar befindet sich der noch in einer frühen Entwicklungsphase, unterstützt aber bereits die Entwicklung und Distribution von Cross-Plattform-Swift-Packages. Ebenso umfasst die neue Version auch die Swift Core Libraries.

Für den Release-Prozess sind eine Reihe Developer Previews vorgesehen, die „qualified and converged builds of Swift 3“ zur Verfügung stellen sollen. User können so mithilfe von möglichst stable Swift-Binaries, die rund alle vier bis sechs Wochen erscheinen sollen, die neue Version testen und mögliche Bugs melden.

Alle Sprach- und API-Änderungen für Swift 3.0 durchlaufen den Swift-Evolution-Prozess; über Source-breaking-Änderungen an der Sprache soll zudem auf einer Fall-zu-Fall-Basis entschieden werden. Aktuell steht der erste Developer-Preview-Branch swift-3.0-preview-1-branch zur Verfügung; sobald der letzte Preview-Branch erstellt wird, soll Swift 3.0 als „GM“ erklärt werden.

Mehr Informationen zum Release-Prozess und den einzelnen Entwicklungs-Branches für Swift 3.0 fasst der zugehörige Blogpost zusammen. Eine Übersicht über die bereits implementierten Änderungen steht auf GitHub zur Verfügung.

ABI-Stabilität wird erst mal verschoben

ABI-Stabilität sollte eines der größten Ziele für die neue Major-Version von Swift sein. Nun gab Chris Lattner in der Swift Evolution Mailing List bekannt, dass dieses Feature erst mal verschoben wird. Grund dafür ist laut Lattner, dass einige Features, die für das Erreichen der ABI-Stabilität nötig sind, nicht rechtzeitig vervollständigt werden können:

it is also clear at this point that some of the loftier goals that we started out with aren’t going to fit into the release – including some of the most important generics features needed in order to lock down the ABI of the standard library.

Die ABI-Stabilität sollte, so erklärt Sergio De Simone, eigentlich dazu dienen, dass mit zukünftigen Versionen von Swift kompilierte Applikationen und Libraries mit Binärcode interagieren können, der mit Swift 3.0 kompiliert wurde. In anderen Worten: die ABI-Stabilität garantiert nicht nur ein gewisses Maß an Binär-Kompatibilität, sondern ermöglicht auch, dass die Swift-Standard-Library nicht länger mit Binaries ausgespielt werden muss. Außerdem können Third-Parties so leichter Binär-Libraries verteilen.

Preview 1 von Swift 3.0 veröffentlicht

Die erste Entwickler-Preview der Version 3.0 von Swift ist erschienen. Diese vergleichsweise stabile Version von Apples quelloffener Sprache wird wie angekündigt eine „source-breaking“ Veröffentlichung und demnach nicht abwärtskompatibel zu Swift 2.2 sein.

Doch nicht nur deswegen sollte der Migration Guide konsultiert werden: Viele syntaktische Verfeinerungen und eine Menge an Veränderungen – vor allem den Import von Objective-C-APIs betreffend – können ebenfalls eine Herausforderung darstellen. Hilfreich dürfte es außerdem sein, sich einen Überblick über die aktualisierte Dokumentation und die neu implementierten Swift Evolution Proposals zu verschaffen. Eine Übersicht darüber bietet der oben genannte Ankündigungspost im Swift-Blog.

Die Developer Preview 1 steht ab sofort als Teil der Xcode 8 Beta 1 sowie für Ubuntu 14.04 bzw. 15.10 zum Download bereit.

Swift 3.0 steht final zur Verfügung

Ziemlich genau drei Monate ist die Veröffentlichung der ersten Preview von Swift 3.0 bereits her. Nun steht die neue Major-Version der Programmiersprache, die vor allem in der OSX- und iOS-Entwicklung zum Einsatz kommt, final zur Verfügung. Dabei handelt es sich um das erste große Release der Sprache, seitdem sie quelloffen zur Verfügung steht – und das sorgt nicht nur für allerhand Neuerungen, sondern auch für eine ganze Reihe von Verbesserungen der Core-Sprache sowie der Standard-Library. Ebenso wurden dem Linux-Port von Swift viele Neuerungen spendiert; zudem ist Swift 3.0 das erste offizielle Release des Swift Package Managers.

Angesichts der umfangreichen Sprachänderungen – insbesondere dank einer besseren Übersetzung von Objective-C-APIs in Swift sowie der Anwendung von API-Guides auf die Standard Library – ist Swift 3.0 nicht kompatibel zu den früheren Swift-Versionen 2.2 und 2.3. Alle Änderungen können nochmal im Swift-Blog nachgelesen werden.

Um Entwicklern die Migration zu Swift 3.0 zu erleichtern, enthält das ebenfalls offiziell zur Verfügung stehende Xcode 8.0 einen Code-Migrator, der automatisch viele der Source-Änderungen abwickelt. Außerdem steht ein umfangreicher Migration-Guide zur Verfügung, der beim Wechsel auf die neue Swift-Version behilflich sein soll.

Für Linux steht Swift 3.0 auf der Projektwebsite zum Download zur Verfügung; für die Apple-Plattform kommt die neue Swift-Version als Teil von Xcode 8.0.

Swift 3.1 ist erschienen [Update vom 29.03.2017]

Rund sechs Monate nach dem Release von Swift 3 ist jetzt mit Swift 3.1 das erste Minor-Release der Programmiersprache aus dem Hause Apple erschienen. Im Fokus stehen dabei Verbesserungen und Verfeinerungen der Standardbibliothek sowie Fortschritte bei der Linux-Implementierung von Swift.

In puncto Sprache gibt es in Swift 3.1 eine Reihe Neuerungen: So erhält das Sequence-Protokoll zwei neue Member, drop(while:) und prefix(while:). Zudem erweitert Swift 3.1 das @availability-Attribut, um anhand der Swift-Version den Lebenszyklus einer Deklaration anzuzeigen.

Auch stehen ab sofort Conversion Initializer für numerische Typen zur Verfügung. Des Weiteren wurde die Version von UnsafeMutablePointer.initialize(from:), die eine Collection entgegennimmt, deprecated. Dafür wurde eine neue Methode in UnsafeMutableBufferPointer eingeführt, die mit einer Sequence arbeitet und so Speichersicherheit und Initialisierungsgeschwindigkeit erhöht.

Die Linux-Implementierung hat sich besonders durch die Mitarbeit von IBM weiterentwickelt, sodass jetzt unter anderem Umsetzungen von NSDecimal, NSLengthFormatter und Progress enthalten sind. Weitere Verbesserungen finden sich in der API-Abdeckung von NSArray und NSAttributedString, der Testabdeckung in URLSession und der Performance der JSON-Serialisierung.

Außerdem gab es weitere Verbesserungen für den Package Manager: Package-Abhängigkeiten werden nun im Build Directory gespeichert und der neue Befehl swift package edit lässt Nutzer Pakete direkt verändern. Abhängigkeiten werden in einer Package.pins-Datei gespeichert; zusätzlich stehen die Befehle swift package pin und swift package unpin zur Verfügung. Mit swift package update lassen sich die Abhängigkeiten sowie die pin-Datei aktualisieren.

Des Weiteren können Packages nun die mindestens benötigte Swift-Version angeben. Dazu wird zu Beginn des Package.swift-Manifests via swift package tools-version festgehalten, welche Version der Swift-Tools das Paket benötigt. Zudem können Packages nun angeben, ob ihre Quellen in Swift 3 oder Swift 4 geschrieben sind.

Für Linux steht Swift 3.1 auf der Projektwebsite zum Download zur Verfügung; für die Apple-Plattform kommt die neue Swift-Version als Teil von Xcode 8.3. Ausführliche Informationen zu allen Neuerungen finden sich im Swift-Blog.

Aufmacherbild: Young barn swallow in a soft focus von Shutterstock / Urheberrecht: Menno Schaefer

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

1 Kommentar auf "Der Weg zu Swift 3.0"

avatar
400
  Subscribe  
Benachrichtige mich zu:
trackback

[…] der Top-Priority-Features für Swift 4 ist die ABI-Stabilität. Eigentlich sollte die bereits mit Swift 3 erreicht werden, allerdings musste man im Laufe der Entwicklungsarbeit an der aktuellen […]

X
- Gib Deinen Standort ein -
- or -