1 Einleitung
Viele Normalbenutzer waren wohl relativ enttäuscht, als auf derWorld Wide Developers Conference (WWDC) 2014 keine Uhr, kein Telefon bzw. kein neuer Rechner vorgestellt wurde – die Entwicklergemeinde freute sich dafür umso mehr. Denn im Juni 2014 wurde auf der WWDC eine neue Programmiersprache nebst passender Integration in Apples Entwicklungswerkzeug Xcode präsentiert.Swift heißt die neue Sprache, was man unter anderem als »Mauersegler« übersetzen kann, und der gilt als ganz schneller Vogel. Aber warum eine neue Programmiersprache? Mit Objective-C hatte man doch eigentlich die Mutter aller Sprachen im Programm – oder etwa doch nicht?
Um diese Frage zu beantworten, sehen wir uns folgenden Objective-C-Code-Auszug an: Hier wird einer String-Variablen eine URL zugewiesen und anschließend in einem Browser-Control aufgerufen:
NSString *urlString=@"http://";
urlString = [urlString stringByAppendingString:Id];
NSURL *url = [NSURL URLWithString:[NSString
stringWithFormat:@"%@",urlString]];
NSURLRequest *requestObj = [NSURLRequest
requestWithURL:url];
[uiWebView loadRequest:requestObj];
Selbst wenn man ein Fan von Objective-C ist, wird man zugeben müssen, dass die Syntax dieser Sprache im Vergleich zu anderen (Assembler einmal ausgenommen) gewöhnungsbedürftig ist. Gerade Ein- und Umsteigern bereitet die komplexe Syntax von Objective-C oft Probleme. Apple bzw. die Geräte des Unternehmens zeichnen sich dadurch aus, dass sie besonders einfach zu bedienen sind. Von der Haus- und Hofsprache Objective-C kann man das leider nicht sagen.
Es musste also etwas Neues her, um sicherzustellen, dass der Strom von neuen Apps für die iOS-Plattform und die damit verbundenen Geräte auch zukünftig nicht abreißt. So kam man bei Apple vor einigen Jahren auf die Idee, Objective-C noch eine zweite Sprache zur Seite zu stellen – eine moderne Sprache mit einem zeitgemäßen Funktionsumfang (z.B. Generics), die leicht zu erlernen sein soll.
Man kann durchaus festhalten, dass es Apple mit Swift gelungen ist, genau die »Problemzonen« von Objective-C anzugehen und trotzdem kompatibel zum Rest von Apples SDK zu bleiben. Denn neben den bereits genannten Vorzügen von Swift gibt es auch eine Brücke in die »alte« (Objective-C-)Welt. Natürlich ist auch das passende API (Cocoa Touch) in Swift-Apps nutzbar. So muss nicht alles neu entwickelt werden.
1.1 iPhone, iPad& Co.
Eine Programmiersprache allein – und sei sie noch so gut – bringt nichts, wenn die zugrunde liegende Plattform bzw. das Betriebssystem keinen Erfolg hat. Das kann man von iOS nicht sagen, denn es ist auf vielen Geräten im Einsatz.
Daher wird in diesem Buch bewusst nicht allein das iPhone angesprochen, denn iOS treibt darüber hinaus natürlich auch das iPad und den iPod Touch, Apple TV und die Apple Watch an. Seinen Ursprung hat iOS in Apples MacBetriebssystem macOS (OS X). Im Prinzip handelt es sich um eine abgespeckte Variante dieses Betriebssystems, die für die Bedienung mit der Hand und für die Ausführung der Software auf schwächerer Hardware optimiert wurde.
An dieser Stelle sollen Sie aber nicht mit der Historie rund um Apples Hardund Software gequält werden. Die ganze Story ist sicherlich bekannt.
Hinweis
Seit der WWDC 2016 heißt das Betriebssystem für Macs (wieder) macOS 10.12 anstatt OS X.
1.2 Für wen ist dieses Buch gedacht?
Dieses Buch ist für Einsteiger mit Programmierkenntnissen gedacht. Fachbegriffe aus dem Bereich der Softwareentwicklung, wie z.B. IDE (Entwicklungsumgebung), Variable oder Schleife, sollten Sie also kennen. Ideal wäre es, wenn Sie bereits mit einer anderen Programmiersprache (z.B. C, C# oder Java) gearbeitet haben. Es wird also vorausgesetzt, dass Sie sich mit dem Thema Programmierung bereits beschäftigt haben. Leser ohne diese Kenntnisse werden es schwer haben, mit dem Buch zurechtzukommen.
Außerdem wird davon ausgegangen, dass Sie die Bedienung von macOS beherrschen, also beispielsweise wissen, wie man Dateien kopiert oder Anwendungen aus dem App Store installiert.
Die Entwicklungsumgebung Xcode müssen Sie nicht kennen.
1.3 Benötigte Hard- und Software
Eine wichtige Frage ist, welche Hard- und Software man benötigt, um Apps für iOS zu entwickeln – vor allem, wenn man bisher auf einer anderen Plattform, z.B. Windows, gearbeitet hat.
1.3.1 Welcher Mac genügt?
Haben Sie bereits einen Mac oder suchen Sie noch ein passendes Gerät? Generell gilt: Jeder Mac, auf dem Yosemite oder El Capitan läuft, kann zur Entwicklung von iOS-Apps verwendet werden. Die neueste Version von macOS 10.12 (Sierra) kann auf den folgenden Macs installiert werden:
iMac (Late 2009 oder neuer)
MacBook (2009 oder neuer)
MacBook Air (Late 2010 oder neuer)
MacBook Pro (Mid 2010 oder neuer)
Mac mini (Mid 2010 oder neuer)
Mac Pro (Mid 2010 oder neuer)
Ferner werden mindestens 2 Gigabyte Arbeitsspeicher (besser 4) und 8 Gigabyte Festplattenspeicher benötigt. Sehen Sie diese Werte als Minimalwerte an – mehr ist immer besser!
Ein Tipp, wenn Sie noch keinen Mac haben und einen kaufen möchten: Schauen Sie sich einmal einen Mini an. Warum? Wenn Sie bereits einen anderen Computer (PC) zu Hause haben, dann können Sie vorhandene Hardware (z.B. Monitor, USB-Tastatur, USB-Maus) weiterverwenden. Sofern Sie nicht auf gebrauchte Hardware setzen, ist das die günstigste Variante (ab ca. 600 Euro), um in die Mac-Welt einzusteigen.
1.3.2 Welche macOS-Version?
Yosemite, El Capitan oder Sierra – diese Versionen können Sie zur Entwicklung von Apps mit Swift verwenden. Ältere Versionen von macOS, z.B. Mountain Lion, könnennicht zur Entwicklung verwendet werden. Welche Version ist besser? Sierra unterstützt zurzeit die größte Anzahl an APIs. Das liegt daran, dass Sierra die aktuellste macOS-Version ist. Man sollte aber generell darauf achten, dass es mit der neusten Version von macOS nicht zu Stabilitätsproblemen kommt. Konservative Zeitgenossen (der Autor zählt auch dazu) warten deshalb immer auch darauf, dass die aktuellste macOS-Version mindestens ein oder zwei Updates erhalten hat, bevor ein Umstieg erfolgt.
Hinweis
Wenn Sie aus der Windows-Welt kommen, dann sind Sie es (bisher) in der Regel nicht gewohnt, ständig (also mindestens einmal im Jahr) auf eine neue Betriebssystem-Version zu aktualisieren. Unter macOS ist es mittlerweile quasi Standard, dass einmal pro Jahr ein Major-Update, also eine neue macOS-Version, erscheint. Normalerweise funktioniert das Update auf die neueste Version auch problemlos. Trotzdem sollte man warten, bis mindestens die Version XX.1 oder besser XX.2 erreicht ist.
Benötigen Sie ein iOS-Gerät?
Nicht zwingend, aber es erleichtert die Entwicklung von Apps doch sehr. Außerdem kann man n