: Christian Bleske
: iOS-Apps programmieren mit Swift Der leichte Einstieg in die Entwicklung für iPhone, iPad und Co. - inkl. Apple Watch und Apple TV
: dpunkt
: 9783960880752
: 2
: CHF 26.70
:
: Programmiersprachen
: German
: 486
: Wasserzeichen
: PC/MAC/eReader/Tablet
: PDF/ePUB
Sie wollen eigene Apps programmieren für iPhone, iPad und iPod touch? Vielleicht auch noch für die Apple Watch oder Apple TV? Wollen Sie gar professionelle Apple-Apps entwickeln und verkaufen? Dann bietet Ihnen Christian Bleske mit diesem Buch den leichten Einstieg. Verständlich und nachvollziehbar führt er Sie in die Programmiersprache Swift (in der Version 3) ein und macht Sie mit der App-Entwicklung und der Entwicklungsumgebung Xcode vertraut. In einem einführenden kleinen Projekt programmieren Sie Schritt für Schritt eine erste Anwendung und erfahren schnell, worauf es bei der Entwicklung von Apps ankommt. Darauf aufbauend erarbeiten Sie sich solide Grundlagen der Swift-Programmierung, inkl. Fehlersuche und Problembehandlung. Außerdem erhalten Sie einen systematischen Einstieg in die zahlreichen Facetten der App-Entwicklung für die Apple-Betriebssysteme iOS, tvOS und watchOS. Dabei lernen Sie unter anderem, wie Sie: • Daten speichern mit CoreData und SQLite • Standorte bestimmen mit GPS • Karten in der App verwenden mit MapKit • Dateien austauschen mit AirDrop • Daten über mehrere Geräte mit iCloud synchronisieren • den Fingerabdrucksensor (TouchID) nutzen • Apps erweitern mit App Extensions • Apps für die Apple Watch mit WatchKit schreiben Zahlreiche Beispiel-Apps zeigen Ihnen, wie die Umsetzung in die Praxis aussieht, und vermitteln Ihnen Inspirationen für eigene Projekte. Bringen Sie Kenntnisse in einer beliebigen Programmiersprache mit sowie einen Mac-Rechner zum Entwickeln - alles Weitere finden Sie in diesem Buch. Neue (zusätzliche) Themen in der 2. Auflage: • Apps für Apple TV (tvOS) • Parallele Programmierung mit NSOperationQueue& Co. • Apps mit Handoff-Unterstützung &bu l; Suchen& Finden (Indizierung von Apps mit Core Spotlight) • Apps mit 3D Touch& Shortcuts • Apps mit Druckfunktion • PDFs erstellen

Christian Bleske ist Autor, Trainer und Entwickler. Sein Arbeitsschwerpunkt ist die Entwicklung von Client/Server- und mobilen Anwendungen. In vielen namhaften Entwicklerzeitschriften erscheinen seine Fachaufsätze. Er lebt in Witten im Ruhrgebiet.

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

Vorwort5
iOS und Swift5
Leser6
Beispielcode6
Das Blog zum Buch7
Inhaltsübersicht9
Inhaltsverzeichnis11
1 Einleitung19
1.1 iPhone, iPad19
2019
1.2 Für wen ist dieses Buch gedacht?20
1.3 Benötigte Hard- und Software21
1.3.1 Welcher Mac genügt?21
1.3.2 Welche macOS-Version?21
Benötigen Sie ein iOS-Gerät?22
1.4 Xcode und das iOS-SDK22
1.4.1 Download und Installation von Xcode23
1.4.2 Xcode im Detail24
1.4.3 Projektübersicht27
1.4.4 Quellcodefenster27
1.4.5 Interface Builder29
1.4.6 Object Library29
2929
1.4.7 Inspektoren31
1.5 Vorlagen in Xcode33
1.5.1 Schnellstart: Hallo Playground33
1.5.2 Die Projektvorlagen von Xcode für iOS-Apps34
1.5.3 Schnellstart: Die Master-Detail-Application-Vorlage34
1.5.4 Schnellstart: Die Page-Based-Application-Vorlage37
1.5.5 Schnellstart: Die Single-View-Application-Vorlage38
1.5.6 Schnellstart: Die Tabbed-Application-Vorlage39
1.5.7 Bestandteile eines Projekts40
1.6 Apps ausführen44
1.6.1 App im Simulator45
1.6.2 Die App auf dem iOS-Gerät47
1.6.3 Der iOS-Simulator im Detail47
1.7 Mehrere Xcode-Versionen parallel verwenden49
1.7.1 Ältere Versionen von Xcode finden49
1.7.2 Weitere Xcode-Versionen installieren51
1.8 Das Apple Developer Program – Anlaufstelle für Entwickler51
1.8.1 Von Zertifikaten, Profilen und Identitäten53
1.8.2 App auf ein angeschlossenes iOS-Gerät übertragen56
2 Schnellstart mit Swift59
2.1 Das Projekt anlegen60
2.2 Die Oberfläche mit dem Interface Builder bauen64
2.3 Controls und Ereignisse68
2.4 Mit Swift zum Ergebnis71
3 Einstieg in Swift75
3.1 Variablen, Konstanten und Zuweisungen75
3.1.1 Zuweisungsoperator75
3.1.2 Konstanten76
3.2 Datentypen77
3.2.1 Strings77
Umwandlung von Groß- in Kleinbuchstaben78
Umwandlung von Zeichen in eine Zahl78