Vor einem halben Jahr hat Apple seine Entwickler mit der neuen Programmiersprache Swift überrascht. Im Vergleich zu Objective X ist Swift eine moderne Sprache mit einer einfachen und klaren Syntax. Swift mindert damit eine wesentliche Hürde für angehende iOS- oder OS-X-Entwickler und wird Objective C längerfristig wohl ablösen.
Was gibt es Schöneres, als eine neue Programmiersprache kennenzulernen? In diesem Sinne werde ich Ihnen auf diesem Blog in den nächsten Monaten einige Spezialitäten von Swift vorstellen. Den Start macht eine Art »Hello-World«-Blogbeitrag.
Swift im Playground kennenlernen
Der »Playground« ist eine Testumgebung der grafischen Entwicklungsumgebung Xcode. Im Playground kann Swift mit minimalem Overhead und fast ein wenig spielerisch ausprobiert werden. Standardmäßig besteht das Playground-Fenster aus zwei Bereichen: im linken Bereich geben Sie den Code ein; im grau hinterlegten rechten Bereich werden Ausgaben, Zuweisungen, die Anzahl von Schleifendurchläufen und andere Informationen angezeigt.
for i in 1...10 {
println(i)
}
In dieser Schleife nimmt die Variable i
der Reihe nach die Werte 1, 2, 3 bis 10 an. println
soll jeden dieser Werte ausgeben. Tatsächlich ist im grau hinterlegten Bereich des Playgrounds allerdings nur die Ausgabe 10 times zu sehen. Wo aber ist die Ausgabe?
In Schleifen verzichtet Xcode darauf, alle Ausgaben direkt anzuzeigen. Wenn Sie aber den Mauszeiger über die Ausgabe 10 times bewegen, erscheinen zwei kleine Icons: Mit Quick look können Sie Objekte näher ansehen, ohne dafür ein eigenes Fenster zu öffnen. Das rechte Icon Value History erweitert das Playground-Fenster um eine dritte Spalte mit der sogenannten Timeline. Dort sind nicht nur alle Ausgaben des Programms zu sehen (Console Output), sondern auch Detaildarstellungen einzelner Ausdrücke.
Noch deutlich beeindruckender fällt die grafische Darstellung von Daten aus. Um das auszuprobieren, geben Sie die folgenden Schleife ein:
for x in 1...100 {
var y = sin(Double(x)/10)
println("x=(x), y=(y)")
}
Ein Klick auf das Icon Value History stellt den Verlauf von y
innerhalb der Schleife in einer Grafik dar:
Terminal-Apps
Zwar speichert Xcode Ihre Playground-Eingaben in einer Datei, ein echtes Programm wird aber nicht daraus. Um Swift in einem »richtigen« Programmen auszuprobieren, ohne gleich mit hohem Aufwand eine grafische Benutzeroberfläche einer iOS- oder OS-X-App zu entwickeln, bieten sich Terminal-Apps ein. Dazu starten Sie in Xcode ein neues Projekt und wählen als Typ OS X Application/Command Line Tool. Standardmäßig besteht ein neues Command Line Tool aus den beiden folgenden Zeilen:
import Foundation
println("Hello World!")
Damit ist das klassische Hello-World-Programm bereits fertig. Minimalistischer geht es nicht! (import Foundation
bewirkt, dass Sie in Ihrem Programm auf Basisklassen wie NSDate
, NSError
, NSLocale
oder NSURL
zurückgreifen können.)
Mit einem Button auf den Button Build and Run kompilieren Sie das Programm und führen es aus. Wo aber befindet sich das Binary? Dieses finden Sie, wenn Sie in der linken Xcode-Spalte den Eintrag Products aufklappen und dann für den Eintrag projekt-name das Kontextmenükommando Show in Finder ausführen.
Wie das obige Beispiel zeigt, ist es in Swift nicht erforderlich, den main
-Code eines Terminal-Apps explizit in eine main
-Funktion zu verpacken. Hinter den Kulissen kümmert sich der Compiler darum.
Ein echtes Terminal-App muss aber zumindest in der Lage sein, die an das Programm übergebenen Argumente auszuwerten. Dazu werten Sie einfach Process.arguments
aus. Das erste Element dieses Arrays enthält den Programmnamen inklusive des gesamten Pfads. Wenn Parameter übergeben wurden, dann können diese aus den weiteren Array-Elementen gelesen werden. Die Anzahl der Parameter ermitteln Sie bei Bedarf mit Process.arguments.count-1
.