Programmieren für iPhone und iPad - Der Einstieg in die App-Entwicklung für das iOS 5
von: Markus Stäuble
dpunkt, 2012
ISBN: 9783864911026
Sprache: Deutsch
464 Seiten, Download: 9651 KB
Format: EPUB, PDF, auch als Online-Lesen
Mehr zum Inhalt
Programmieren für iPhone und iPad - Der Einstieg in die App-Entwicklung für das iOS 5
Inhaltsverzeichnis | 8 | ||
1 Einleitung | 14 | ||
1.1 Begriffe | 15 | ||
1.2 Was behandelt dieses Buch? | 16 | ||
1.3 Wie sollten Sie dieses Buch lesen? | 21 | ||
1.4 Was können Sie, wenn Sie dieses Buch durchgearbeitet haben? | 22 | ||
1.5 Danksagung | 23 | ||
Grundlagen | 24 | ||
2 Installation und ein erstes Beispiel | 26 | ||
2.1 Das iOS Dev Center | 26 | ||
2.2 Das iOS SDK installieren | 30 | ||
2.3 Das iOS SDK deinstallieren | 33 | ||
2.4 Ein erstes Beispiel | 34 | ||
2.5 Beispiele aus dem iOS Dev Center nutzen | 44 | ||
2.6 Zusammenfassung | 45 | ||
3 Grundlagen einer iOS-Anwendung | 46 | ||
3.1 iOS: Basis für die Anwendungsentwicklung | 46 | ||
3.2 Core OS | 49 | ||
3.2.1 Accelerate Framework: Mathematik für Audio und Video | 50 | ||
3.2.2 Accessory Support: Anbindung von externen Geräten | 50 | ||
3.2.3 Core Bluetooth | 50 | ||
3.2.4 Generic Security Services | 50 | ||
3.2.5 Security: Basisdienste für Applikationssicherheit | 51 | ||
3.2.6 System: Zugriff auf Low-Level-Funktionalitäten | 51 | ||
3.3 Core Services | 52 | ||
3.3.1 Accounts Framework | 53 | ||
3.3.2 Address Book: Die Kontaktdatenbank | 53 | ||
3.3.3 CFNetwork: Basisdienste für die Netzwerkkommunikation | 54 | ||
3.3.4 Core Data: Management Ihrer Anwendungsdaten | 54 | ||
3.3.5 Core Foundation: Basisdienste für die Programmierung | 55 | ||
3.3.6 Core Location: Basisdienste für Location Based Services (LBS) | 56 | ||
3.3.7 Core Media | 57 | ||
3.3.8 Core Telephony | 57 | ||
3.3.9 Event Kit | 57 | ||
3.3.10 Foundation Framework | 58 | ||
3.3.11 Newsstand Kit | 58 | ||
3.3.12 Mobile Core Services | 59 | ||
3.3.13 Quick Look Framework | 59 | ||
3.3.14 Store Kit Framework | 59 | ||
3.3.15 System Configuration Framework | 60 | ||
3.3.16 Automatic Reference Counting | 60 | ||
3.3.17 Block Objects | 60 | ||
3.3.18 Grand Central Dispatch | 62 | ||
3.3.19 In App Purchase: Erweiterung gegen Bezahlung anbieten | 68 | ||
3.3.20 iCloud Storage | 69 | ||
3.3.21 SQLite: Die eingebaute Datenbank | 69 | ||
3.3.22 Unterstützung für die Arbeit mit XML | 69 | ||
3.4 Media | 70 | ||
3.4.1 Grafik | 70 | ||
3.4.2 Audio | 72 | ||
3.4.3 Video | 73 | ||
3.4.4 AirPlay | 74 | ||
3.5 Cocoa Touch | 74 | ||
3.5.1 Was ist Cocoa? | 74 | ||
3.5.2 Grundlagen der Cocoa-Programmierung | 75 | ||
3.5.3 Cocoa Design Patterns | 77 | ||
3.5.4 Frameworks des Cocoa Touch Layer | 83 | ||
3.5.5 Wichtige Konzepte des Cocoa Touch Layer | 87 | ||
3.6 Laufzeitumgebung einer iOS-Anwendung | 92 | ||
3.6.1 Grundfunktionen | 92 | ||
3.6.2 Dateisystem | 92 | ||
3.6.3 Sicherheit | 93 | ||
3.6.4 Sicherheitskopie der Daten | 94 | ||
3.6.5 Erkennung der Laufzeitumgebung | 95 | ||
3.7 Lebenszyklus einer iOS-Anwendung | 95 | ||
3.7.1 Aktivierung der Anwendung (Initialisierung) | 96 | ||
3.7.2 Abarbeitung von Ereignissen (Events) | 98 | ||
3.7.3 Anwendung in den Hintergrund schicken | 99 | ||
3.7.4 Zustände einer Anwendung unter iOS | 100 | ||
3.8 Objektkommunikation | 101 | ||
3.8.1 Outlets | 101 | ||
3.8.2 Delegates | 102 | ||
3.8.3 Notifications | 104 | ||
3.8.4 Target-Actions | 105 | ||
3.9 Grundelemente einer Benutzeroberfläche | 105 | ||
3.9.1 Window oder View | 106 | ||
3.9.2 Window | 106 | ||
3.9.3 View | 107 | ||
3.9.4 View Controller | 107 | ||
3.10 Game Center | 110 | ||
3.11 Zusammenfassung | 118 | ||
4 Das SDK im Detail | 120 | ||
4.1 Die Bestandteile des iOS SDK | 120 | ||
4.2 Xcode – die Entwicklungsumgebung | 121 | ||
4.2.1 Grundelemente in der Xcode-Entwicklung | 121 | ||
4.2.2 Die Startseite | 122 | ||
4.2.3 Neues Projekt in Xcode erstellen | 126 | ||
4.2.4 Migration auf Automatic Reference Counting | 130 | ||
4.2.5 Das Projektfenster von Xcode | 132 | ||
4.2.6 Ein Kernstück in der Entwicklung: Der Quelltexteditor | 137 | ||
4.2.7 Grafische Editoren für Core Data | 139 | ||
4.2.8 Quick Help: Der kleine Helfer | 141 | ||
4.3 Der Interface Builder | 142 | ||
4.3.1 NIB und XIB: Behälter für den Interface Builder | 143 | ||
4.3.2 Storyboard | 144 | ||
4.3.3 Die zentralen Oberflächenelemente | 144 | ||
4.3.4 Oberflächen erzeugen | 145 | ||
4.3.5 Layoutgestaltung mit dem Interface Builder | 147 | ||
4.3.6 Ein einfaches Beispiel: Schritt für Schritt zur ersten Oberfläche | 150 | ||
4.4 Der iOS Simulator | 153 | ||
4.4.1 Grundfunktionen der Bedienung | 155 | ||
4.4.2 Die Gesten für das iPhone | 156 | ||
4.4.3 Apps anordnen | 158 | ||
4.4.4 Anwendungen deinstallieren | 158 | ||
4.4.5 Erweiterte Funktionen des iOS Simulator | 160 | ||
4.5 Instruments | 162 | ||
4.5.1 Instruments starten | 163 | ||
4.5.2 Eine eigene Vorlage zusammenstellen | 167 | ||
4.5.3 Ein Beispiel für den Einstieg | 168 | ||
4.6 Der Debugger | 170 | ||
4.6.1 Debugging ohne Debugger | 170 | ||
4.6.2 Debugging in Xcode | 171 | ||
4.6.3 Debugging-Arten | 174 | ||
4.7 Der Organizer | 175 | ||
4.8 Zusammenfassung | 179 | ||
5 Entwickeln für das iPad | 180 | ||
5.1 Unterschiede zum iPhone | 180 | ||
5.1.1 Neue Konfigurationsschlüssel | 180 | ||
5.1.2 Neue Oberflächenelemente | 183 | ||
5.2 Vorlagen für das iPad | 185 | ||
5.3 Die Universal-App | 187 | ||
5.4 Migration einer vorhandenen App | 189 | ||
5.5 Zusammenfassung | 192 | ||
Programmierung | 194 | ||
6 Einstiegsbeispiele | 196 | ||
6.1 Programmieren mit dem Adressbuch | 196 | ||
6.1.1 Der Rahmen für die Anwendung | 197 | ||
6.1.2 Lesender Zugriff auf das Adressbuch | 205 | ||
6.1.3 Schreibender Zugriff auf das Adressbuch | 216 | ||
6.2 Persistierung von Daten | 229 | ||
6.2.1 Verwendung der integrierten Datenbank SQLite | 230 | ||
6.2.2 Verwendung von Core Data | 238 | ||
6.3 Location Based Services | 243 | ||
6.3.1 Anzeige der Karte mit MapKit | 243 | ||
6.3.2 Anzeige einer Region mit MapKit | 245 | ||
6.3.3 Position in der Karte markieren | 246 | ||
6.3.4 Einsatz von Core Location | 248 | ||
6.4 Zusammenfassung | 250 | ||
7 Eine App für das Lesen von RSS entwickeln | 252 | ||
7.1 Der Rahmen für die Anwendung | 252 | ||
7.2 Datenstruktur für die RSS-Nachrichten | 255 | ||
7.3 Einlesen der RSS-Nachrichten als XML | 255 | ||
7.4 Erzeugen des XML-Parsers | 257 | ||
7.5 Anzeige der Nachricht im Browser | 262 | ||
7.6 Zellen der Tabelle anpassen | 266 | ||
7.7 Öffnen der Nachrichten im angepassten Browser | 271 | ||
7.8 Zusammenfassung | 274 | ||
8 Eine Aufgabenliste entwickeln | 276 | ||
8.1 Rahmen der Anwendung | 276 | ||
8.2 Datenmodell erstellen | 278 | ||
8.3 Oberfläche für eine Aufgabe | 282 | ||
8.4 Eigene Tabellenzelle gestalten | 292 | ||
8.5 Anzeigen und Ändern einer Aufgabe | 298 | ||
8.6 Aufgaben sortieren und löschen | 299 | ||
8.7 Weitere interessante Themenbereiche | 303 | ||
8.8 Zusammenfassung | 304 | ||
9 Testen auf dem Endgerät | 306 | ||
9.1 Das iOS Developer Program | 306 | ||
9.1.1 Die Varianten des iOS Developer Program | 307 | ||
9.1.2 Das erweiterte iOS Dev Center | 309 | ||
9.2 Installation auf einem Endgerät | 311 | ||
9.2.1 Das Team definieren | 311 | ||
9.2.2 Das Entwicklungszertifikat erstellen | 313 | ||
9.2.3 Zertifikat von Apple | 319 | ||
9.2.4 Anmeldung der Geräte, auf denen getestet werden soll | 320 | ||
9.2.5 Die App ID erstellen | 324 | ||
9.2.6 Das Provisioning Profile erzeugen | 327 | ||
9.2.7 Auf dem Endgerät über Xcode installieren | 329 | ||
9.3 Distribution der Anwendung | 332 | ||
9.4 Erzeugung des Development Provisioning Profile über einen Assistenten | 338 | ||
9.5 Erzeugung des Development Provisioning Profile über den Organizer | 342 | ||
9.6 Zusammenfassung | 343 | ||
Anhang | 344 | ||
A Einführung in die Programmiersprache Objective-C | 346 | ||
A.1 Grundlagen | 346 | ||
A.2 Strukturierung des Quellcodes | 348 | ||
A.3 Klassen | 349 | ||
A.4 Erzeugung von Instanzen | 353 | ||
A.5 Speicherverwaltung | 355 | ||
A.6 Kategorien | 359 | ||
A.7 Properties | 361 | ||
A.8 Protocols | 366 | ||
A.9 Fast Enumeration mittels for...in | 370 | ||
A.10 Behandlung von Exceptions | 370 | ||
A.11 Zusammenfassung | 372 | ||
B Quelltext der Beispiele | 374 | ||
B.1 Quelltext fast.calc | 374 | ||
B.2 Quelltext my.address | 378 | ||
B.3 Quelltext web.address | 381 | ||
B.4 Quelltext Einkaufsliste | 387 | ||
B.5 Quelltext CDEinkaufsliste | 395 | ||
B.6 Quelltext MapKitSample | 404 | ||
B.7 Quelltext i.RSS | 407 | ||
B.8 Quelltext just.do | 417 | ||
C Glossar | 440 | ||
D Literatur und Weblinks | 448 | ||
D.1 Literatur | 448 | ||
D.2 Weblinks | 448 | ||
Index | 452 | ||
A | 452 | ||
B | 453 | ||
C | 454 | ||
D | 454 | ||
E | 455 | ||
F | 455 | ||
G | 455 | ||
H | 456 | ||
I | 456 | ||
K | 458 | ||
L | 458 | ||
M | 459 | ||
N | 459 | ||
O | 459 | ||
P | 460 | ||
Q | 460 | ||
R | 460 | ||
S | 461 | ||
T | 461 | ||
U | 461 | ||
V | 461 | ||
W | 462 | ||
X | 462 | ||
Z | 462 |