Erste Tests mit Xcode 8 und Swift 3

Mitglieder des Apple Developer Programs können seit gestern die erste Xcode-8-Beta herunterladen. Sie enthält erwartungsgemäß die erste offizielle Prerelease-Version von Swift 3. Aufgrund des Confidentiality-Regeln, die für Teilnehmer am Apple Developer Program gelten, kann ich hier keine Screenshots zeigen und nur über Dinge schreiben, die ohnedies schon öffentlich bekannt sind (z.B., weil Apple auf der WDDC darüber berichtet hat oder entsprechende Dokumente veröffentlicht hat). Aber auch mit diesen Einschränkungen gibt es ein wenig zu berichten.

Code-Konvertierung

Xcode 8 enthält einen bereits ziemlich gut funktionierenden Konverter von Swift 2 zu Swift 3. Es ist mir damit gelungen, innerhalb weniger Stunden mehrerer Projekte mit einem Gesamtumfang von ca. 3000 Zeilen Code von Swift 2.2 auf Swift 3 umzustellen.

Der Konverter ist nicht nur bei den vielen bereits implementierten Swift-Syntaxänderungen hilfreich, sondern passt auch die Namen von Methoden und Parameter diverser Bibliotheken an. Diverse Standardbibliotheken (Foundation, UIKit, SpriteKit) sind nun wesentlich Swift-freundlicher gestaltet, der resultierende Code ist eleganter und vielfach auch deutlich kürzer. Details können Sie in Proposal 0005, Proposal 0006, Proposal 0023 sowie in der Big-three-Zusammenfassung von Erica Sadun nachlesen.

Meine resultierenden Apps laufen unter aktuellen OS-X-, iOS- und tvOS-Versionen stabil. (Auf die Installation der Betas von iOS, macOS und tvOS habe ich vorerst verzichtet.)

Sowohl bei der Swift-3-Integration als auch beim Konverter gibt es natürlich noch diverse Einschränkungen, die detailliert im Swift Migration Guide dokumentiert sind.

Skalierbare Storyboards

Von der Swift-3-Integration abgesehen erscheint mir die wichtigste Neuerung in Xcode darin zu bestehen, dass Storyboards nun beliebig skaliert werden können und dabei voll editierbar bleiben. (In Xcode 7 sind Storyboards nur bei einer Skalierung von 100% bearbeitbar.)

Ebenfalls extrem praktisch: Eine neue Button-Leiste ermöglicht eine sofortige Layout-Vorschau für diverse iOS-Geräte direkt im Storyboard-Editor (siehe den Screenshot bei 9to5mac).

Editor-Erweiterungen

Xcode 8 sieht eine Schnittstelle zur Verankerung externer Editor-Erweiterungen vor (sprich »Plugins« oder »Add-ins«). Wie weit die Möglichkeiten solcher Add-ins gehen werden, muss sich erst zeigen. Vielleicht bieten sie einen Weg für Drittanbieter, Refactoring-Werkzeuge für Swift zu implementieren. Apple war in dieser Hinsicht bisher ja recht nachlässig: Es ist ein wenig inkonsequent, Swift als Sprache der Zukunft anzupreisen, die Refactoring-Tools nur für Objective C anzubieten …

Fazit

Aus aktueller Sicht lassen sich nach einem Tag mit der Xcode-8-Beta zwei Schlussfolgerungen ziehen:

  • Xcode 8 und Swift 3 sind bereits stabil genug, um damit zu arbeiten. (Das soll nicht heißen, dass alles frei von Fehler funktioniert.)
  • Trotz der riesigen Unterschiede zwischen Swift 2 und 3 hält sich der Portierungsaufwand in Grenzen — dem Code-Konverter sei dank! Sie machen also auch nichts verkehrt, wenn Sie noch zwei Monate mit Swift 2.2 arbeiten und dann auf eine sicherlich schon stabilere Xcode-Beta umsteigen.

Quellen

2 Gedanken zu „Erste Tests mit Xcode 8 und Swift 3“

  1. Hallo,

    ich möchte gern eine Erfahrung teilen, die vielleicht für Einsteiger interessant ist.

    Ich habe mit Xcode 8 beta 2 versucht, die Beispielanleitung von Apple nachzuvollziehen: Start Developing iOS Apps (Swift). Dabei zeigte sich, dass das Programm abstürzt, wenn der Image Picker gestartet werden soll: Kapitel „Building the UI > Work with View Controllers“.

    Der Aufruf „present“ (bei Swift 2.2 hieß er „presentViewController“) lässt das Programm abstürzen. Das passiert auch dann, wenn man den Quelltext im Original läd und von Xcode nach Swift 3 konvertieren lässt.

    Ich war verwundert, dass so ein einfaches Beispiel nicht funktioniert. Und wenn ich hier lese, dass große Projekte erfolgreich konvertiert wurden, dann ist es noch wundersamer. Vielleicht habe ich an anderer Stelle einen Fehler gemacht. Ich bin indes zu Xcode 7 zurück gegangen. Damit gehts noch.

    1. Eine Beta ist nunmal eine Beta. Ich bin mittlerweile bei Xcode 8 Beta 4, und vieles funktioniert gut. Ich kann damit arbeiten. Aber es ist natürlich noch kein ausgereiftes Produkt.

      Effizient arbeiten heißt vermutlich: bei Xcode 7 / Swift 2.2 bleiben, bis Xcode 8 wirklich fertig ist (idealerweise auch noch das erste Update abwarten), dann den Umstieg auf Swift 3 machen. Die meiste Arbeit erledigt dann der Code-Konverter.

Kommentare sind geschlossen.