Macoun 2014: Entwicklerkonferenz zu iOS 8, Yosemite und Swift

Seite 4: Besonderheiten in Swift

Inhaltsverzeichnis

Natalia Ossipova arbeitete die speziellen Fähigkeiten von Swift heraus. Swift ist nicht nur eine statisch typisierte, sondern auch eine objektorientierte, imperative und teilweise funktionale Programmiersprache. Der Typ kann automatisch anhand der ersten Zuweisung ermittelt werden, das reduziert Schreibarbeit. Arrays dürfen im Unterschied zu NSArrays nur einen Typ haben – es sei denn, man inkludiert UIKit, wie im gezeigten Beispiel. Danach kann Swift auch ein NSArray verwenden und folglich doch wieder verschiedene Typen im Array mischen.

Der Datentyp Any in Swift kann jeden anderen Typ aufnehmen. Tupel eignen sich besonders, um mehrere Werte aus einer Funktion zurückzugeben. Einige Konstrukte wie Switch-Kontrollstrukturen mit Bereichsangaben, Typauswahl und Pattern Matching sind deutlich mächtiger als in C. Mit Operator Overloading kann man sich eigene Operatoren bauen, etwa für Klassen, um etwa das Addieren von mehreren Objekten zu ermöglichen. Funktionen in Swift sind Objekte, die sich auch als solche benutzen lassen. Dabei kann man Funktionen Variablen zuweisen und später über die Variable aufrufen.

Swift ist auch etwas funktional. Man kann damit etwa ähnlich rekursive Funktionen mit Listen erstellen wie in Haskell. Allerdings berechnet Swift dann alle Varianten, weswegen man dringend eine Abbruchbedingung einbauen sollte.

Das Erstellen einer beeindruckenden GUI für OS X 10.10 war das Thema von Florian Bachmann. Dabei machte er auch die Parallelen und Unterschiede zwischen iOS- and Mac-SDKs deutlich. Sein Beispiel-Programm nutzte NSDocument, das von Haus aus bereits Funktionsbereiche wie iCloud, Undo, Sichern und vieles andere mitbringt. Die Oberfläche erzeugte er mit Storyboards, die jetzt auch auf dem Mac bereit stehen und eine einfache Möglichkeit sind, die Bedienoberfläche mit Autolayout und vielen nützlichen Hilfen aufzubauen. So kann man per Drag & Drop Aktionen mit Steuerelementen verknüpfen.

30 Jahre Mac-Geschichte im Retro-Park-Raum

(Bild: Macoun)

Als weiteren Punkt demonstrierte Bachmann das Erstellen eigener Frameworks. So lässt sich Code kapseln, den man beispielsweise auf iOS und Mac OS verwendet. Am Ende beleuchtete er, wie man von NSDocument auf UIDocument umsattelt und das Ganze so auf dem iPhone zum Laufen bringt. Idealerweise fügt man in solchen Fällen einem Projekt zwei Targets hinzu und kann so 90 Prozent seines Quelltextes für iOS und Mac OS X verwenden.