Hugendubel.info - Die B2B Online-Buchhandlung 

Merkliste
Die Merkliste ist leer.
Bitte warten - die Druckansicht der Seite wird vorbereitet.
Der Druckdialog öffnet sich, sobald die Seite vollständig geladen wurde.
Sollte die Druckvorschau unvollständig sein, bitte schliessen und "Erneut drucken" wählen.

iOS-Apps programmieren mit Swift

E-BookEPUBePub WasserzeichenE-Book
486 Seiten
Deutsch
dpunkt.verlagerschienen am12.12.2016aktualisierte und erweiterte Auflage
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 • 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.
mehr
Verfügbare Formate
BuchKartoniert, Paperback
EUR29,90
E-BookEPUBePub WasserzeichenE-Book
EUR23,90
E-BookPDF1 - PDF WatermarkE-Book
EUR23,90

Produkt

KlappentextSie 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 • 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.
Details
Weitere ISBN/GTIN9783960880752
ProduktartE-Book
EinbandartE-Book
FormatEPUB
Format HinweisePub Wasserzeichen
FormatE101
Erscheinungsjahr2016
Erscheinungsdatum12.12.2016
Auflageaktualisierte und erweiterte Auflage
Seiten486 Seiten
SpracheDeutsch
Dateigrösse32410 Kbytes
Artikel-Nr.3010129
Rubriken
Genre9201

Inhalt/Kritik

Inhaltsverzeichnis
1;Vorwort;5
1.1;iOS und Swift;5
1.2;Leser;6
1.3;Beispielcode;6
1.4;Das Blog zum Buch;7
2;Inhaltsübersicht;9
3;Inhaltsverzeichnis;11
4;1 Einleitung;19
4.1;1.1 iPhone, iPad & Co.;20
4.2;1.2 Für wen ist dieses Buch gedacht?;20
4.3;1.3 Benötigte Hard- und Software;21
4.3.1;1.3.1 Welcher Mac genügt?;21
4.3.2;1.3.2 Welche macOS-Version?;21
4.3.2.1;Benötigen Sie ein iOS-Gerät?;22
4.4;1.4 Xcode und das iOS-SDK;22
4.4.1;1.4.1 Download und Installation von Xcode;23
4.4.2;1.4.2 Xcode im Detail;24
4.4.3;1.4.3 Projektübersicht;27
4.4.4;1.4.4 Quellcodefenster;27
4.4.5;1.4.5 Interface Builder;29
4.4.6;1.4.6 Object Library & Co.;29
4.4.7;1.4.7 Inspektoren;31
4.5;1.5 Vorlagen in Xcode;33
4.5.1;1.5.1 Schnellstart: Hallo Playground;33
4.5.2;1.5.2 Die Projektvorlagen von Xcode für iOS-Apps;34
4.5.3;1.5.3 Schnellstart: Die Master-Detail-Application-Vorlage;34
4.5.4;1.5.4 Schnellstart: Die Page-Based-Application-Vorlage;37
4.5.5;1.5.5 Schnellstart: Die Single-View-Application-Vorlage;38
4.5.6;1.5.6 Schnellstart: Die Tabbed-Application-Vorlage;39
4.5.7;1.5.7 Bestandteile eines Projekts;40
4.6;1.6 Apps ausführen;44
4.6.1;1.6.1 App im Simulator;45
4.6.2;1.6.2 Die App auf dem iOS-Gerät;47
4.6.3;1.6.3 Der iOS-Simulator im Detail;47
4.7;1.7 Mehrere Xcode-Versionen parallel verwenden;49
4.7.1;1.7.1 Ältere Versionen von Xcode finden;49
4.7.2;1.7.2 Weitere Xcode-Versionen installieren;51
4.8;1.8 Das Apple Developer Program - Anlaufstelle für Entwickler;51
4.8.1;1.8.1 Von Zertifikaten, Profilen und Identitäten;53
4.8.2;1.8.2 App auf ein angeschlossenes iOS-Gerät übertragen;56
5;2 Schnellstart mit Swift;59
5.1;2.1 Das Projekt anlegen;60
5.2;2.2 Die Oberfläche mit dem Interface Builder bauen;64
5.3;2.3 Controls und Ereignisse;68
5.4;2.4 Mit Swift zum Ergebnis;71
6;3 Einstieg in Swift;75
6.1;3.1 Variablen, Konstanten und Zuweisungen;75
6.1.1;3.1.1 Zuweisungsoperator;75
6.1.2;3.1.2 Konstanten;76
6.2;3.2 Datentypen;77
6.2.1;3.2.1 Strings;77
6.2.1.1;Umwandlung von Groß- in Kleinbuchstaben;78
6.2.1.2;Umwandlung von Zeichen in eine Zahl;78
6.2.1.3;Ausgabe von String-Inhalten mit String-Interpolation;79
6.2.1.4;Kommentare;80
6.2.2;3.2.2 Ganze Zahlen und Fließkommazahlen;80
6.2.2.1;Zeichenketten;80
6.2.2.2;Fließkommazahlen (Float und Double);81
6.2.2.3;Rechnen mit ganzen Zahlen und Fließkommazahlen;81
6.2.3;3.2.3 Wahrheitswerte;82
6.2.4;3.2.4 Aufzählungen (Enumerationen);83
6.2.4.1;Assoziierte Werte in Enumerationen;83
6.2.5;3.2.5 Felder (Arrays);85
6.2.6;3.2.6 Dictionarys;87
6.2.7;3.2.7 NS-Datentypen;89
6.2.8;3.2.8 NSNumber;90
6.2.9;3.2.9 NSString;91
6.2.10;3.2.10 NSDate;91
6.2.11;3.2.11 NSRange;92
6.2.12;3.2.12 TimeInterval;92
6.2.13;3.2.13 NSArray/NSMutableArray;93
6.2.14;3.2.14 NSDictionary und NSMutableDictionary;93
6.3;3.3 Operatoren;93
6.3.1;3.3.1 Boolesche Operatoren;93
6.4;3.4 Arithmetische Operatoren;94
6.5;3.5 Kontrollstrukturen;95
6.5.1;3.5.1 Die Fallunterscheidung (if);95
6.5.2;3.5.2 Mehrfachauswahl;97
6.6;3.6 Schleifen;98
6.6.1;3.6.1 Kopfgesteuerte Schleifen (while-Schleife);99
6.6.2;3.6.2 Fußgesteuerte Schleifen (repeat...while-Schleife);99
6.6.3;3.6.3 Zählschleifen (for-Schleife);99
6.7;3.7 Funktionen;102
6.7.1;3.7.1 Funktionen - Parameter übergeben;103
6.7.2;3.7.2 Funktionen - Werte zurückgeben;104
6.7.3;3.7.3 Funktionen - Mehrere Werte zurückgeben (Tupel);105
6.7.4;3.7.4 Funktionen - Externe Parameternamen;105
6.7.5;3.7.5 Funktionen - Parameter vorbelegen;106
6.7.6;3.7.6 Funktionen - Weitere Parametertypen;107
6.7.6.1;Variadic Parameter;107
6.7.6.2;Konstante und variable Parameter;108
6.7.6.3;In-Out-Parameter;108
6.7.7;3.7.7 Verschachtelte Funktionen;109
6.7.8;3.7.8 Closures;109
6.7.9;3.7.9 Optionals;111
6.7.9.1;Implicitly Unwrapped Optionals;112
6.8;3.8 Strukturen Teil 1 (Structs);113
7;4 Objektorientierte Programmierung mit Swift;117
7.1;4.1 Grundlagen der OOP;117
7.1.1;4.1.1 Strukturen aus objektorientierter Sicht (Strukturen Teil 2);117
7.1.2;4.1.2 Was sind Objekte?;118
7.1.3;4.1.3 Was sind Klassen?;119
7.1.3.1;Klasse vs. Struktur;120
7.1.3.2;Werttypen (Value Types);121
7.1.3.3;Referenztypen (Reference Types);122
7.1.3.4;Vergleichen von Objekten mit Operatoren;123
7.1.3.5;Wann sollte eine Struktur und wann sollte eine Klasse verwendet werden?;123
7.1.4;4.1.4 Public, Private und wer noch?;123
7.1.4.1;Sonderfall Tupel;128
7.2;4.2 Eigenschaften (Properties);128
7.2.1;Eigenschaften überwachen (Property Observers);131
7.3;4.3 Methoden;132
7.3.1;4.3.1 Instanzmethoden (Instance Methods);132
7.3.2;4.3.2 Klassenmethoden (Type Methods);135
7.3.3;4.3.3 Der Initialisierer (Konstruktor);136
7.3.3.1;Parameter und Initialisierer;137
7.3.3.2;Die Eigenschaft »self«;138
7.3.4;4.3.4 Der Deinitialisierer (Dekonstruktor);139
7.4;4.4 Vererbung;139
7.4.1;4.4.1 Erben (Ableitung) von Klassen;140
7.4.2;4.4.2 Zugriff auf Elemente der vererbenden Klasse;141
7.4.3;4.4.3 Initializer delegation;141
7.4.4;4.4.4 Überschreiben von Methoden;143
7.4.5;4.4.5 Überschreiben von Eigenschaften;144
7.4.6;4.4.6 Das Überschreiben von Elementen verhindern;145
7.5;4.5 Schnittstellen;146
7.5.1;4.5.1 Was sind Protokolle?;146
7.5.2;4.5.2 Ableitung von Protokollen;148
7.5.2.1;Swift 1.2;149
7.6;4.6 Erweiterung von Typen (Klassen, Strukturen und Enumerationen);150
7.6.1;4.6.1 Subscripts;150
7.6.2;4.6.2 Verschachtelte Typen (Nested Types);151
7.6.3;4.6.3 Erweiterungen (Extensions);152
7.6.3.1;Swift 2;153
7.6.4;4.6.4 Optional Chaining;155
7.6.4.1;Aufruf von Methoden durch Optional Chaining;156
7.7;4.7 Typumwandlung (is & as) und (Any & AnyObject);157
7.7.1;Typüberprüfung mit dem is-Operator;157
7.7.2;Downcasting;158
7.7.3;Verwaltung und Umwandlung mit Any und AnyObject;160
7.7.4;Any;161
7.8;4.8 Generics;162
7.9;4.9 Speicherverwaltung (Automatic Reference Counting);163
7.9.1;Weak Reference;167
7.9.2;Unowned Reference;168
8;5 Grundlagen der App-Entwicklung;171
8.1;5.1 Storyboard und Interface Builder;171
8.1.1;5.1.1 App im Storyboard;171
8.1.1.1;Storyboard und Interface Builder;172
8.1.1.2;Navigation mit Controller;174
8.1.1.3;ViewController dem Storyboard hinzufügen;175
8.2;5.2 Bausteine einer iOS-App;177
8.2.1;5.2.1 View, ViewController und wer noch?;179
8.2.1.1;UIScreen;179
8.2.1.2;UIWindow;179
8.2.1.3;UIView;179
8.2.1.4;UIViewController;179
8.2.1.5;UINavigationController;180
8.2.1.6;UIPageViewController;181
8.2.1.7;UITabBarController;181
8.2.1.8;UITableViewController;181
8.2.1.9;Segues;182
8.2.1.10;View mit ViewController;182
8.2.2;5.2.2 View-Ereignisse und View-Lebenszyklus;187
8.2.3;5.2.3 Outlets und Actions;189
8.2.3.1;Actions;190
8.2.4;5.2.4 MVC - Model View Controller;191
8.2.5;5.2.5 Controls;193
8.2.5.1;Switch;193
8.2.5.2;Slider;195
8.2.5.3;Activity Indicator;197
8.2.5.4;Segmented Control;198
8.2.5.5;Stepper;200
8.2.5.6;PickerView;201
8.2.6;5.2.6 UIAlertController;204
8.2.6.1;Standard-Dialog;204
8.2.6.2;Dialog mit mehreren Schaltflächen;206
8.2.6.3;Textfelder im Dialog;207
8.3;5.3 Delegate;210
8.3.1;Wie funktioniert ein Delegate?;211
8.3.2;ApplicationDelegate-Protokoll;212
8.4;5.4 Gestenverarbeitung (Touch Events);214
8.4.1;Skalierung mit Pinch-Geste;219
8.5;5.5 AutoLayout;222
8.5.1;AutoLayout programmiert;229
8.6;5.6 Workshop - Passwortverwaltung - Teil 1;231
8.6.1;5.6.1 Planung der App;232
8.6.2;5.6.2 Umsetzung des Projekts - Teil 1;235
8.6.2.1;Anpassung des Codes (Punkt 1);237
8.6.2.2;Erweiterung des Storyboards (Punkt 2);239
8.6.2.3;Klasse implementieren (Punkt 3);241
9;6 Fehlersuche und Problembehandlung;245
9.1;6.1 Breakpoints im Quellcode setzen;245
9.2;6.2 Inspizieren von Variablen;247
9.2.1;print bzw. Print vs NSLog;249
9.3;6.3 View Debugging;249
9.4;6.4 Fehlerbehandlung mit »try catch«, (NS)Error & Co.;252
9.4.1;Das Protokoll »Error«;255
9.4.2;Die defer-Anweisung;257
9.5;6.5 Fehlerbehandlung bei knappem Speicher;258
9.5.1;Knappen Speicher simulieren;259
9.6;6.6 Vorausetzungen prüfen, Fehler vermeiden;260
9.6.1;Überwachte Ausführung mit guard;260
10;7 Tabellen und Controller;263
10.1;7.1 Schnellstart: App mit Master-Detail-Application-Vorlage;263
10.1.1;7.1.1 Datenquelle für Master-Detail hinzufügen;265
10.1.2;7.1.2 Das Projekt testen;269
10.2;7.2 UITableView und Controller;270
10.3;7.3 UITableViewCell;272
10.4;7.4 CustomCell;274
10.5;7.5 NavigationBar anpassen;279
10.6;7.6 Workshop - Passwortverwaltung - Teil 2;281
10.6.1;Container für Testdaten;282
10.6.2;Anzeige der Passwörter im TableView;283
10.6.3;GeneratorViewController gestalten;284
10.6.4;Ein Segue für das Passwort;286
10.6.5;Detailansicht;287
10.6.6;Zwischenfazit;288
11;8 Core Data;291
11.1;8.1 Was ist Core Data?;291
11.2;8.2 Ein neues Projekt mit Core Data;291
11.3;8.3 Ein Modell für die Speicherung;293
11.4;8.4 Core-Data-Klassen verwenden;297
11.5;8.5 Workshop - Passwortverwaltung - Teil 3;299
11.5.1;Core Data im Projekt implementieren;301
12;9 Internet und Netzwerke;309
12.1;9.1 Das UIWebView;309
12.2;9.2 Wetter mit JSON;315
12.2.1;Eine JSON-Schnittstelle;317
12.2.2;Das OpenWeatherMap-API;318
12.2.3;JSON-Antwort interpretieren;319
12.2.4;9.2.1 Mit der App zum (aktuellen) Wetter;320
12.2.4.1;URL-Abfrage erstellen;322
12.2.4.2;JSON-Antwort im Code auswerten;323
12.3;9.3 Dateiaustausch mit AirDrop;325
12.3.1;Vorbereitungen für AirDrop;326
12.3.2;View und Datentypen;327
12.3.3;AirDrop implementieren;327
12.3.4;... und ab durch die Luft;328
12.4;9.4 Daten in der iCloud;329
12.4.1;Konfiguration der Cloud-App für die Cloud;330
12.4.2;Code für die Cloud;332
13;10 Sensoren;335
13.1;10.1 Kamera;335
13.2;10.2 Mikrofon;338
13.3;10.3 Beschleunigungssensor;343
13.3.1;Umsetzung im Code;344
13.3.2;Animation, Gravitation und Verhalten kontrollieren;346
13.3.3;Der Beschleunigungssensor spielt mit ...;346
13.4;10.4 Positionsdienste;347
13.4.1;Konfiguration des Projekts;348
13.4.2;Positionsermittlung durchführen;352
13.5;10.5 Workshop - Passwortverwaltung - Teil 4;354
14;11 iOS Maps;357
14.1;11.1 Das MapKit-Framework;357
14.2;11.2 Das MapView-Control;359
14.3;11.3 Markierung mit Annotation;360
14.4;11.4 Markierung auf der Karte anzeigen;361
14.5;11.5 Icon ändern;362
15;12 Lokalisierung;365
15.1;12.1 Statische Texte in der GUI;365
15.2;12.2 Eine Sprache hinzufügen;367
15.3;12.3 Lokalisierung von Bildern;370
15.4;12.4 Dynamische Texte;372
15.5;12.5 Lokalisierung des App-Namens;375
15.6;12.6 Workshop - Passwortverwaltung - Teil 5;375
15.6.1;Dynamische Texte hinzufügen;377
16;13 Universal Apps;381
16.1;13.1 Universal Apps;381
16.2;13.2 Ein Projekt als Universal App anlegen;381
16.3;13.3 Bilder in der App;383
16.4;13.4 Portrait oder Landscape?;386
16.5;13.5 iPad oder iPhone?;387
16.6;13.6 Icons und Launch Images;388
16.7;13.7 Workshop - Passwortverwaltung - Teil 6;389
17;14 App Extensions;391
17.1;14.1 Widgets und iOS;391
17.2;14.2 Ein Projekt für Widgets;392
17.2.1;Apps mit Extension;393
17.3;14.3 Today Extension anlegen;393
17.4;14.4 Code und GUI des Widgets entwerfen;395
17.5;14.5 Test des Widgets;396
18;15 WatchKit;399
18.1;15.1 Apple und die Watch;399
18.2;15.2 Zweiteilung;400
18.3;15.3 Das Projekt im Projekt;401
18.4;15.4 Das WatchKit-Projekt;403
18.5;15.5 GUI für die Watch-App;404
18.6;15.6 Der Code im anderen Abschnitt;406
18.7;15.7 Wie kommt die App auf die Watch?;408
19;16 Apps für Apple TV 4;411
19.1;16.1 Apps im Fernsehen;411
19.2;16.2 Projektvorlagen für Apple-TV-Apps;412
19.3;16.3 Auflösungen berücksichtigen;413
19.4;16.4 Fokus und Steuerung der App;413
19.5;16.5 Der Simulator und Apple Remote;414
19.6;16.6 Würfel im Fernsehen;415
19.7;16.7 Die Programmlogik der Würfel-App;416
19.8;16.8 Icons hinzufügen;418
19.9;16.9 Installation der App;420
20;17 NSOperation und Dispatch Queue;421
20.1;17.1 Operationen und Queues;421
20.2;17.2 Grand Central Dispatch und Queues im Überblick;421
20.2.1;17.2.1 Serielle Queues;422
20.2.2;17.2.2 Konkurrierende Queues;422
20.3;17.3 Queues in der praktischen Anwendung;423
20.4;17.4 Serielle Abarbeitung;425
20.5;17.5 NSOperation Queues;426
21;18 Handoff-API;429
21.1;18.1 Einrichtung von Handoff;429
21.2;18.2 Die Klasse NSUserActivity;430
21.3;18.3 Das Projekt einrichten;431
21.4;18.4 Activity anlegen;432
21.5;18.5 Update und Ereignisse;433
22;19 Das Core Spotlight Framework;435
22.1;19.1 Indizierung mit Spotlight;435
22.2;19.2 Neue Struktur für ein Zitat;437
22.3;19.3 Den Text analysieren;437
22.4;19.4 NSUserActivity verwenden;439
22.5;19.5 Activity-Instanz prüfen;441
22.6;19.6 Ein Activity wiederherstellen;442
23;20 3D Touch verwenden;445
23.1;20.1 Was ist 3D Touch?;445
23.2;20.2 3D Touch verwenden;446
23.3;20.3 Waage mit 3D Touch;447
23.4;20.4 Shortcuts definieren;449
23.5;20.5 Shortcut im Code;451
24;21 Drucken unter iOS;455
24.1;21.1 Was ist Airprint?;455
24.2;21.2 Der Printer Simulator;456
24.3;21.3 Drucken aus einem TextView-Control;457
24.4;21.4 Generierung eines PDF-Dokuments;459
24.4.1;21.4.1 Drucklayout mit HTML;460
24.4.2;21.4.2 PDF im Code erzeugen;461
25;22 Apps verteilen;463
25.1;22.1 Der Distributionsprozess;463
25.2;22.2 iTunes Connect verwenden;465
25.2.1;22.2.1 Meine Apps (App registrieren);466
25.2.1.1;Verkäufe und Trends;470
25.2.1.2;Zahlungen und Finanzberichte;470
25.2.1.3;Benutzer und Rollen;471
25.2.1.4;Vereinbarungen, Steuern und Bankverbindungen;471
25.2.1.5;Ressourcen und Hilfe;471
25.3;22.3 Apps verteilen;471
25.3.1;22.3.1 App Store;471
25.3.2;22.3.2 Ad Hoc Deployment;474
25.3.3;22.3.3 Enterprise Deployment;475
25.3.4;22.3.4 Bereitstellung einer App zur Verteilung;475
26;Nachwort;477
27;Index;479
28;www.dpunkt.de;0
mehr
Leseprobe
1 Einleitung

Viele Normalbenutzer waren wohl relativ enttäuscht, als auf der World 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önnen nicht 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 nur auf einem »echten« Gerät bestimmte Funktionen (z.B. den Beschleunigungssensor) auch aus dem Code heraus ansprechen. Ob Sie sich für ein iPhone, ein iPad oder gar einen iPod touch entscheiden, das bleibt Ihrem Geschmack überlassen. Möchten Sie in Ihrer App auch auf Telefoniedienste zugreifen, so muss das Testgerät natürlich ein iPhone sein. Achten Sie auch auf darauf, wie lange es noch Updates für das jeweilige Gerät gibt. Nichts ist ärgerlicher, als viel Geld für ein Gerät auszugeben, um dann festzustellen, dass das Gerät vom Hersteller nicht mehr mit neuen Versionen des Betriebssystems versorgt wird.
1.4 Xcode und das iOS-SDK

Apple hat eine Entwicklungsumgebung, die für die Entwicklung von Anwendungen sowohl für iOS als auch für macOS verwendet wird. Diese IDE trägt den Namen Xcode. Es gibt sie seit vielen Jahren (genauer gesagt seit 2003), und mittlerweile ist Xcode relativ umfangreich. Xcode unterstützt nicht nur eine Programmiersprache, denn neben Swift können Sie damit auch Programme in Objective-C, C++ und C schreiben. Im Gegensatz zu den bekannten Java-IDEs (Eclipse/Net Beans) gibt es Xcode nur für den Mac bzw. macOS.

Xcode besteht aus mehreren Komponenten. Zum einen ist da natürlich der Quellcodeeditor, in dem Sie den Code schreiben. Wenn eine grafische Oberfläche für eine Anwendung erstellt werden muss, dann kann man dafür den grafischen Designer von Xcode verwenden. Er trägt den Namen Interface Builder. Mit dem Interface Builder lassen sich Oberflächen von Anwendungen via Drag & Drop zusammenstellen. Das bedeutet: Ähnlich wie in Microsofts Visual Studio gibt es einen Bereich mit vorgefertigten Controls, die auf einem Formular (View) abgelegt werden können.
1.4.1 Download und Installation von Xcode
Neben Xcode benötigen Sie für die Entwicklung von Apps für iOS noch das entsprechende SDK. Es handelt sich dabei aber nicht um einen separaten Download neben Xcode, sondern Sie laden einfach die neueste Xcode-Version aus dem App Store herunter. Diese Version enthält dann alle benötigten Komponenten.

Es gibt mehrere Wege, um...
mehr