Dynamische iPhone-Anwendungen entwickeln Lee S. Ba rney Dynamische iPhone-Anwendungen entwickeln .~.. . ADDISON-WESLEY An imprint of Pearson Education München • Boston • San Francisco • Harlow, England Don Mills, Ontario • Sydney • Mexico City Madrid • Amsterdam Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http:/ /dnb.d-nb.de abrufbar. Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Autorisierte Übersetzung der amerikanischen Originalausgabe: "Developing Hybrid Applications forthe iPhone". Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hard-und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben, die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt. Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das ®-Symbol in diesem Buch nicht verwendet. Authorized translation from the English language edition, entitled "Developing Hybrid Web Applications" by Barney,lee S., published by Pearson Education, lnc, publishing as Addison Wesley Professional, Copyright© 2009 All rights reserved. No part ofthis book may be reproduced ortransmitted in anyform or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education,lnc. GERMAN language edition published by PEARSON EDUCATION DEUTSCHLAND, Copyright© 2010 Umwelthinweis: Dieses Buch wurde auf chlor-und säurefreiem PEFC-zertifizierten Papier gedruckt. Um Rohstoffe zu sparen, haben wir auf Folienverpackung verzichtet. s 10 9 8 7 6 4 3 2 1 13 12 11 10 ISBN: 978-3-8273-2918-9 © 2010 by Addison-WesleyVerlag, ein lmprint der Pearson Education Deutschland GmbH, Martin-Kollar-Straße 10-12, D-81829 München/Germany Alle Rechte vorbehalten Übersetzung: G&U Language & Publishing Services GmbH, Flensburg, www.GundU.com Fach Iektorat: Philipp Homann, [email protected] Lektorat: Brigitte Bauer-Schiewek, [email protected] Korrektorat Sandra Gottmann, Münster Covergestaltung: Marco Lindenbeck, [email protected] Herstellung: Philipp Burkart, [email protected] Satz: mediaService (www.media-service.tv) Druck und Verarbeitung: Kösel Druck, Krugzell (www.KoeseiBuch.de) Printed in Germany Dieses Buch ist meiner wundervollen Frau Joan und unseren fünf Jungs gewidmet, die es ertragen haben, dass ich beim Schreiben dieses Buches ständig zu beschäftigt war. Die Ewigkeit reicht nicht aus, um mit euch zusammen zu sein. Inhaltsverzeichnis ln haltsverzeichnis Vorwort 11 Entwicklungswerkzeuge für Web-Apps 11 Der Aufbau dieses Buches 12 On Ii ne-Queiien 14 Voraussetzungen 15 Danksagungen 15 Der Autor 15 Kontakt mit dem Autor 15 1 Entwicklung mit Dashcode und Xcode 17 1.1 Dashcode und die benutzerdefinierte Vorlage Quick-ConnectiPhone 17 1.2 Xcode und die benutzerdefinierte QuickConnect-Vorlage verwenden 21 1.3 Erste Einführung in Objective-C 26 1.4 Die Struktur von QuickConnectiPhone-Anwendungen in Objective-C 29 1.5 Webinhalt einbetten: QuickConnectiPhone 33 1.6 Zusammenfassung 2 JavaScript-Modularität und iPhone-Anwendungen 41 2.1 Modularität 41 2.2 Das JavaScript-Framework von QuickConnectiPhone ein Beispiel für Modularität 43 2.3 Die QuickConnectiPhone-Umsetzung des modularen Entwerfens 53 2.4 Implementierung von Unternehmens- und Ansichtsanwendungscontrollern 2.5 Die Implementierung des Fehleranwendungscontrollers 2.6 Die Funktionalität der Anwendung erstellen 2.7 Zusammenfassung Inhaltsverzeichnis 3 Benutzerschnittstellen für das iPhone erstellen 67 3.1 Die Schnittstellenrichtlinien von Apple 68 3.2 Listen-und browsergestützte Schnittstellen 71 3·3 Anwendungen mit nicht auf Listen beruhenden Ansichten 75 3·4 Immersionsanwendungen 8o 3·5 Benutzerdefinierte (55-Transformationen erstellen und verwenden 82 3.6 Ein Modul für Drag&Drop, Skalierung und Drehung erstellen und verwenden 90 3·7 Zusammenfassung 102 4 GPS, Beschleunigungsmessung und andere systemeigene Funktionen von QuickConnect 103 4·1 Geräteaktivierung in JavaScript 104 4·2 Geräteaktivierung in Objective-C 111 4·3 Die Objective-C-Implementierung der QuickConnectiPhone-Architektur 120 4·4 Zusammenfassung 127 5 Google Maps einbetten 129 5·1 Abschnitt 1: Eine Karte in einer JavaScript-Anwendung mit QuickConnect anzeigen 129 5·2 Abschnitt 2: Die Objective-C-Implementierung des Kartenmoduls von QuickConnect 134 5·3 Zusammenfassung 147 6 Datenbankzugriff 149 6.1 Abschnitt 1: Die Beispielanwendung BrowserDBAccess 149 6.2 Abschnitt 2: SQLite-Datenbanken der WebKit-Engine verwenden 151 6.3 Abschnitt 3: Native SQLite-Datenbanken verwenden 157 6.4 Abschnitt 4: Das DataAccessObject in Datenbanken der WebKit- Engine verwenden 159 6.5 Abschnitt 5: DataAccessObject in nativen Datenbanken verwenden 172 8 Inhaltsverzeichnis 7 Datenzugriff über das Netzwerk 187 7.1 Abschnitt 1: Die Beispielanwendung BrowserAJAXAccess 188 7.2 Abschnitt 2: ServerAccessObject verwenden 190 7·3 Abschnitt 3: ServerAccessObject 196 7·4 Abschnitt 4: Sicherheitsfunktionen 208 7-5 Zusammenfassung 209 A Einführung in JSON 211 A.1 Abschnitt 1: Hintergrund 211 A.2 Abschnitt 2: Eine JSON-API für JavaScript 213 A.3 Zusammenfassung 216 B Evolution von QuickConnectFamily 217 8.1 Definitionen 219 Stichwortverzeichnis 221 9