13 2 Installation und ein erstes Beispiel In diesem Einstiegskapitel lernen Sie zunächst das iPhone Dev Center als zentrale Quelle für Informationen rund um die Entwicklung von Anwendungen für das iPhone kennen. Danach folgt eine Erläuterung der Installation sowie der Deinstallation des iOS SDK. Zum Abschluss dieses Kapitels wollen wir uns noch ein Beispiel ansehen, das Ihnen ein erstes Gefühl für die iPhone-Anwendungsentwicklung vermitteln soll. Grundvoraussetzung für die Entwicklung mit dem iOS SDK Bevor dieses Kapitel direkt mit der Installation und einem Beispiel loslegt, sollen hier kurz die Grundvoraussetzungen für die Programmierung mit dem iOS SDK aufgezeigt werden. Für die Entwicklung mit dem iOS SDK benötigen Sie einen Apple Mac mit installiertem Mac OS X. Da Sie in diesem Kapitel auch schon Quellcode zu sehen bekommen, sei noch darauf hingewiesen, dass die verwendete Programmiersprache Objective-C ist. Eine Einführung dazu finden Sie im Anhang dieses Buches. 2.1 Das iOS Dev Center Alles, was Sie für den Start in die iPhone-Anwendungsentwicklung benötigen, u.a. das iOS SDK, finden Sie im iPhone Dev Center, einem umfangreichen Portal rund um die Entwicklung von iPhoneAnwendungen (http://developer.apple.com/ios). Das iPhone Dev Center ist ein spezieller Bereich innerhalb der Apple Developer Connection (http://developer.apple.com). Für den Zugriff auf die im iOS Dev Center abgelegten Informationen benötigen Sie zunächst einen Zugang bei der Apple Developer Connection: Ohne eine Anmeldung erhalten Sie zwar einen Überblick Das iOS Dev Center ist ein Unterbereich innerhalb der Apple Developer Connection. 14 2 Installation und ein erstes Beispiel Das iOS Developer Program darüber, welche Informationen im iOS Dev Center vorhanden sind, Sie können aber nicht darauf zugreifen. Es ist wichtig zu erwähnen, dass diese Anmeldung zur Apple Developer Connection nicht mit einer Anmeldung zum iOS Developer Program1 (http://developer.apple.com/programs/ios/) zu verwechseln ist. Apple Developer Connection vs. iOS Developer Program Wie erwähnt, ist die Anmeldung zur Apple Developer Connection obligatorisch, um das iOS SDK und auch weiterführende Dokumentation und Beispiele herunterladen zu können. Diese Anmeldung ist kostenlos. Apple möchte wohl einfach etwas Kontrolle über die Informationen haben. Das iOS Developer Program ist dagegen eine kostenpflichtige Angelegenheit. Eine Mitgliedschaft ist erforderlich, wenn Sie Ihre Anwendung vertreiben wollen, wobei es nicht darauf ankommt, ob dies kostenpflichtig oder umsonst geschehen soll. Eine Installation Ihrer entwickelten Anwendung auf einem iPhone kann nur über den Umweg des iPhone Developer Program erfolgen. Eine ausführliche Beschreibung des iOS Developer Program finden Sie in Kapitel 8 dieses Buches. Das iOS Dev Center können Sie als zentrale Stelle für Informationen rund um die Entwicklung mit dem iOS SDK verstehen. Die Einstiegsseite enthält drei wesentliche Bereiche: ■ Suche (Abb. 2–1) ■ Beispiele und mehr (Abb. 2–2) ■ Download (Abb. 2–3) Bereich 1: Suche Im oberen Bereich der Seite können Sie über das rechte Eingabefeld eine Volltextsuche innerhalb des kompletten iPhone Dev Center ausführen. Sollten mehrere Versionen des iOS SDK angeboten werden, können Sie zwischen ihnen am linken Rand der Titelzeile umschalten. Abb. 2–1 Volltextsuche innerhalb der zur Verfügung stehenden Dokumente Wie Sie in Abbildung 2–1 sehen, können Sie über die Schaltfläche iOS SDK 4.1 auf diese Version zugreifen. Sollten mehrere Versionen zur Verfügung stehen, befindet sich die neueste höchstwahrscheinlich im Betastatus. Im obigen Screenshot verweist iOS 4 beta auf das zum Redaktionsschluss noch nicht freigegebene iOS 4.2. Auf solch eine 1. Umbenannt von iPhone Developer Program. 2.1 Das iOS Dev Center Betaversion erhalten Sie nur Zugriff, wenn Sie beim iOS Developer Program angemeldet sind. Unterhalb der Suche finden Sie unter der Beschriftung Resources for iOS 4.1 Verweise zu wichtigen Hilfen für die Applikationsentwicklung mit dem iOS SDK. Der erste Link mit der Bezeichnung Downloads springt lediglich auf der gleichen Seite nach unten, in den eigentlichen Downloadbereich. Über den Link Getting Started Videos gelangen Sie zu einer Übersicht mit hilfreichen Videotutorials für den Einstieg in die iPhone-Entwicklung. Für das Betrachten der Videos (inklusive der Übersicht) wird eine installierte iTunes-Version benötigt. Über die Links Getting Started Documents und iOS Reference Library gelangen Sie zu Dokumenten, die die Anwendungsentwicklung für das iOS beschreiben. Hinter iAd JS Reference Library steht der Bereich rund um die Entwicklung zu iAd, dem mobilen Werbedienst von Apple. Der Verweis Coding How-To’s bietet Antworten auf viele Fragen der täglichen Entwicklung, wie z.B. How to create a table view? Ein sehr wichtiger Bereich steht hinter dem Verweis Sample Code. Hier erhalten Sie Zugriff auf die zur Verfügung gestellten Beispiele. Diese helfen Ihnen beim Einstieg in die Programmierung. Unter der Beschriftung Featured Content finden Sie speziell hervorgehobene Verweise, wie z.B. den Link auf Start Developing iPad Apps. 15 Bereich 2: Beispiele und mehr Quellcodebeispiele für den schnellen Einstieg Abb. 2–2 Nachschlagebereich innerhalb des iOS Dev Center 16 2 Installation und ein erstes Beispiel Bereich 3: Download Im Bereich Downloads (Abb. 2–3) kann die aktuelle Version des iOS SDK im Disk-Image-Format2 (.dmg) heruntergeladen werden. Zusätzlich stehen Ihnen eine Installationsanleitung, die Nutzungsbestimmungen (engl. Agreement) und der Zugriff auf das iPhone Configuration Utility zur Verfügung. Vor dem Einsatz des iOS SDK empfiehlt sich ein Blick in die Nutzungsbestimmungen. Zusätzlich kann es vorkommen, dass weitere wichtige Dokumente im Bereich Downloads angeboten werden. Neben dem iOS SDK können Sie in diesem Bereich auch das Entwicklerkit für iAd herunterladen. Abb. 2–3 Downloadbereich für das iOS SDK und iAd JS 2.2 Das iOS SDK installieren Um das iOS SDK zu installieren, müssen Sie zunächst die aktuelle Version aus dem Downloadbereich herunterladen. Wie schon erwähnt, steht das Paket als fertiger Installer im dmg-Format zur Verfügung. Der Name des Paketes lautet xcode_3.2.4_and_iphone_sdk_4.1.dmg. Der Dateiname passt sich bei jeder neuen Version des iOS SDK an. Anzunehmen ist, dass zumindest die Versionsnummer bei zukünftigen Versionen mit hochgezählt wird. Beim Übergang vom iPhone OS 2.1 auf 2.2 war im Dateinamen zusätzlich der Name des Builds (z.B. 9m2736) hinzugekommen, dieser wurde mit dem iOS SDK 4 aber wieder im Dateinamen entfernt. Das zuvor erwähnte Installationspaket hat eine stattliche Größe von 3,15 GB. 2. Ein Archivformat 2.2 Das iOS SDK installieren 17 iOS SDK – passende Version Für die Beschreibungen in diesem Buch wurde das iOS SDK 4.1 verwendet. Der dabei eingesetzte Build ist 10M2309, der am 08.09.2010 erschienen ist. Für die Verwendung ist nach Angaben von Apple im iOS Dev Center mindestens ein Mac OS X der Version 10.6.4 notwendig. Zusätzlich wird iTunes in der Version 9.2 benötigt. Sollte auf dem Zielsystem noch nicht die richtige Version installiert sein, können Sie dies über die integrierte Softwareaktualisierung von Mac OS X nachholen. Nach dem Download kann das heruntergeladene Paket mittels Doppelklick geöffnet werden. Aufgrund der Größe des Paketes kann das Öffnen etwas Zeit in Anspruch nehmen. Das geöffnete Archiv präsentiert sich mit den zwei Einträgen About Xcode and iOS SDK und Xcode and iOS SDK for Snow Leopard. Bereits im Namen der zwei Dateien wird ersichtlich, dass Xcode (die Entwicklungsumgebung) ein wichtiger Bestandteil bei der Programmierung für das iOS ist. Die PDF-Datei About Xcode and iOS SDK enthält eine kurze englischsprachige Erläuterung zur heruntergeladenen Version des iOS SDK. Auch die Änderungen in Xcode sind in diesem Dokument aufgeführt. Der Installer für das iOS SDK (Name: Xcode and iOS SDK for Snow Leopard) steht im mpkg3-Format zur Verfügung (ein Meta Package, enthält gebündelt alle Dateien für eine Installation). Die endgültige Installation wird per Doppelklick auf das Icon Xcode and iOS SDK for Snow Leopard gestartet. Zusätzlich zu Kommandozeilenwerkzeugen wird bei der Installation des iOS SDK auch noch die Entwicklungsumgebung Xcode in der Version 3.2.4 installiert. Vorsicht bei einer alten Version von Xcode Standardmäßig wird seit Mac OS X 10.5 die Entwicklungsumgebung Xcode im Verzeichnis /Developer installiert. Sollte auf Ihrem Rechner bereits eine alte Xcode-Version installiert sein, wird sie durch die Installation von Xcode in der Version 3.2.4 aktualisiert. Besteht der Wunsch zum Parallelbetrieb, müssen Sie für die neue Version ein anderes Verzeichnis (Variante Custom Install) angeben; falls Sie die neue Version aber im Verzeichnis /Developer installieren möchten, müssen Sie die alte vor der Installation in ein anderes Verzeichnis verschieben. 3. Dieses Paket ist innerhalb des dmg-Archives enthalten. About Xcode and iOS SDK Xcode and iOS SDK for Snow Leopard Installation starten 18 2 Installation und ein erstes Beispiel Nach kurzer Zeit erscheint das Fenster des Installers (siehe Abb. 2–4). Der Installer ist im Stile eines typischen Wizards aufgebaut. Das Fenster kann in drei Bereiche eingeteilt werden: ■ Bereich 1: Anzeige des aktuellen Schrittes innerhalb der Navigation. Die einzelnen Punkte (z.B. Einführung oder Lizenz) können nicht angeklickt werden, sondern dienen lediglich der Übersicht. ■ Bereich 2: Der eigentliche Inhaltsbereich des Installers ■ Bereich 3: Der Navigationsbereich mit den Schaltflächen für die Steuerung (Fortfahren oder Zurück) in der Installation Bei der Verwendung der deutschen Version des Installationsprogramms sollten Sie sich nicht davon verwirren lassen, dass einige Informationen während der Installation trotzdem in englischer Sprache erscheinen (z.B. die Lizenz für das iOS SDK, das iOS SDK Agreement). Abb. 2–4 Der Installer des iOS SDK, aufgeteilt in drei Bereiche Zu Beginn der Installation werden Ihnen nacheinander die Lizenz zu Xcode und zum iOS SDK präsentiert. Diesen Lizenzen müssen Sie für eine Installation zustimmen. Bei dem Schritt Installationstyp sollten Sie beachten, dass standardmäßig bereits eine Auswahl vorselektiert ist, die in den meisten Fällen auch passend ist. Das Paket Developer Tools kann nicht deaktiviert werden. Es enthält unverzichtbare Elemente für die Entwicklung einer Anwendung mit dem iOS SDK, wie z.B. Xcode. Zusätzlich sind die Pakete iOS SDK, System Tools und UNIX Development Support selek- 2.2 Das iOS SDK installieren 19 tiert. Die Tabelle 2–1 enthält eine kurze Beschreibung der sechs Pakete des Installationsdialoges. Name des Paketes Beschreibung Essentials Diese Option fasst die beiden Unterpunkte Xcode Toolset und iOS SDK zusammen. Standardmäßig ist diese Option selektiert. Für dieses Paket kann das Verzeichnis der Installation über »Ort« festgelegt werden. Das Basisverzeichnis ist auf /Developer voreingestellt. 7,28 GB Xcode Toolset 1,74 GB iOS SDK 3,35 GB System Tools 55,5 MB UNIX Development Support 806,6 MB Installiert Xcode, Instruments, Interface Builder, Dashcode, Compiler (GCC) und weitere Entwicklungswerkzeuge. Zusätzlich wird das SDK für Mac OS X installiert. Dieses Paket muss installiert werden und kann auch nicht vom Entwickler deaktivert werden. Entwicklungswerkzeuge, Header-Dateien, Bibliotheken und Dokumentation für die Anwendungsentwicklung. Die Installation erfolgt innerhalb des /Platforms-Verzeichnisses im Entwicklungsverzeichnis, standardmäßig ist dies /Developer/ Platforms. Das iOS SDK benötigt einen Intel-basierten Mac mit mindestens Version 10.6.2a (oder höher) von Mac OS X. Beinhaltet generelle Werkzeuge wie Shark zur Messung der Performance. Shark ist Bestandteil der CHUD-Werkzeugsammlung (Computer Hardware Understanding Development) rund um das Thema Performance. Zusätzlich werden DTrace-Komponenten installiert. DTrace wird u.a. von Instruments verwendet. Wichtig ist, dass nur eine Version (und zwar immer die neueste) der System Tools installiert sein kann. Diese wird auch immer im /Developer-Verzeichnis abgelegt. Enthält zusätzliche Werkzeuge zur Entwicklung auf der Kommandozeile. Installiert einen zusätzlichen GCC-Compiler und Kommandozeilenwerkzeuge in Verbindung mit dem reinen Xcode-Entwicklungspaket. Daneben werden HeaderDateien, Bibliotheken und andere Dateien für die Softwareentwicklung mit Mac OS X installiert. Dieses Paket wird mit Shellskripten ausgeliefert, die auf Dateien in vordefinierten Verzeichnissen zugreifen; darum ist eine Änderung des Installationsortes nicht möglich. Documentation Wenn diese Option aktiviert ist, wird beim ersten Start von Xcode die Entwicklungsdokumentation heruntergeladen. Die Dokumentation wird automatisch aktuell gehalten. Es empfiehlt sich sehr, diese Option zu aktivieren. Bei Deaktivierung kann auf die Dokumentation nur mit aktiver Internetverbindung zugegriffen werden. Die Einstellung dieser Option kann jederzeit in Xcode verändert werden. Mac OS X 10.4 SDK Unterstützung für die Anwendungsentwicklung für Mac OS X 10.4. a) Xcode 3.2.4 benötigt mindestens Mac OS X 10.6.4. Tab. 2–1 Die Distribution des iOS SDK enthält mehr als nur das reine SDK. Die Bestandteile können bei der Installation ausgewählt werden. 20 2 Installation und ein erstes Beispiel Für die Installation der vorselektierten Pakete werden insgesamt ungefähr 8,17 GB Speicherplatz benötigt. Eine Änderung des Installationsverzeichnisses ist möglich, sollte vorher aber gründlich überdacht werden. Für die ersten Schritte ist es sicherlich sinnvoll, die Verzeichnisse beizubehalten. Sollten Sie später doch noch ein anderes Verzeichnis vorziehen, können Sie das iOS SDK immer noch deinstallieren und in einem neuen Verzeichnis installieren. Nach der Auswahl der entsprechenden Pakete wird die letztendliche Installation der einzelnen Pakete über Fortfahren gestartet. Für die Installation des iOS SDK benötigen Sie Administratorrechte, deshalb fordert der Installer Sie zur Eingabe des entsprechenden Kennwortes auf. Das Ende der Installation wird mit der Meldung Installation erfolgreich bestätigt. Nach der erfolgreichen Installation des iOS SDK sollten, wie in Abbildung 2–5 dargestellt, die 3 Verzeichnisse unterhalb /Developer/Platforms stehen. Abb. 2–5 Die Verzeichnisse nach der Installation Wie am Namen schon zu erkennen, befinden sich im Verzeichnis iPhoneOS.platform Dateien rund um das sogenannte iOS, das Betriebssystem des iPhone. Im Verzeichnis iPhoneSimulator.platform sind die Dateien zum iPhone Simulator enthalten. Zusätzlich zum iOS SDK werden, wie schon erwähnt, die Entwicklungsumgebung Xcode und zusätzliche Tools installiert. Diese befinden sich unterhalb des Verzeichnisses /Developer/Applications. Abb. 2–6 Werkzeuge des iOS SDK 2.3 Das iOS SDK deinstallieren 2.3 21 Das iOS SDK deinstallieren In der kurzen Startdokumentation4 für das iOS SDK wird beschrieben, dass bei der Installation einer neuen Version des iOS SDK die letzte Version überschrieben wird. Falls Sie auf Nummer sicher gehen möchten, besteht auch die Möglichkeit, ein bereits installiertes iOS SDK vorher zu entfernen. Für eine Deinstallation stehen vier unterschiedliche Varianten zur Verfügung, die inklusive einer kurzen Erläuterung in der nachfolgenden Tabelle 2–2 beschrieben werden. Die Erläuterungen gehen davon aus, dass das iOS SDK im vorgegebenen Standardverzeichnis /Developer installiert wurde. Falls das Verzeichnis geändert wurde, müssen Sie den Basispfad /Developer in den Befehlen anpassen. Beschreibung Abzusetzender Befehla Komplette Deinstallationb des iOS SDK und der dazugehörigen Komponenten, d.h. inklusive der Entwicklungsumgebung Xcode. sudo /Developer/Library/ uninstall-devtools --modec=all Deinstallation des reinen iOS SDK. Mit dieser Variante wird die Entwicklungsumgebung Xcode beibehalten. sudo /Developer/Library/ uninstall-devtools --mode= systemsupport Deinstallation des Unix Development Support. Die anderen Bestandteile, wie z.B. Xcode, werden beibehalten. sudo /Developer/Library/ uninstall-devtools --mode=unixdev Deinstallation von Xcode. Neben dem angegebenen Befehl kann für eine Deinstallation auch einfach der Xcode-Ordner auf den Papierkorb gezogen werden. sudo /Developer/Library/ uninstall-devtools --mode=xcodedir a) b) c) Varianten zur Deinstallation des iOS SDK Die angegebenen Befehle sind über das Terminal auszuführen. Eine Deinstallation ist selbstverständlich nur mit Administratorrechten möglich. Ohne Angabe des Parameters mode wird immer --mode=all herangezogen. Die Deinstallation des kompletten Paketes kann einige Minuten in Anspruch nehmen. Das Terminalfenster sollten Sie während dieser Deinstallation nicht schließen, um den Prozess auch sauber beenden zu können. 4. Tab. 2–2 Das iOS SDK Readme ist online verfügbar unter der URL https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/ about_xcode_3.2.4_and_ios_sdk_4.1.pdf. 22 2 Installation und ein erstes Beispiel 2.4 Ein erstes Beispiel Als Einstiegsbeispiel habe ich nicht die übliche Hello-World-Anwendung gewählt, sondern einen sehr einfachen Taschenrechner für die Zahlen 0 bis 9. Der Name des kleinen Helferleins soll fast.calc sein. Als Basis verwenden wir dafür eine eigens für diese Buch geschriebene Anwendung namens my-calculator, die Sie von der Buchwebsite herunterladen und im Folgenden erweitern können. Dieses Beispiel soll Ihnen einen ersten Einblick geben, wie die Entwicklung mit dem iOS SDK aussieht. Es geht nicht näher auf die Details der iPhone-Anwendungsentwicklung ein, sondern zeigt lediglich die erforderlichen Schritte, um eine einfache, lauffähige Version der Anwendung zu erhalten. Damit erhalten Sie ein Gefühl, wie die Entwicklung einer eigenen App vonstatten geht. Die Erläuterung der Hintergründe folgt in den späteren Kapiteln. Die Anwendung my-calculator besitzt im Grundzustand nur die Grundrechenart Addition. In diesem ersten Beispiel werden wir gemeinsam die Anwendung um die Grundrechenart Subtraktion (siehe Abb. 2–7) erweitern. Abb. 2–7 Oberfläche von fast.calc Schritt 1: Der Download Wie bereits erwähnt, wird fast.calc auf Basis einer einfacheren Beispielanwendung entwickelt. Laden Sie daher das Beispiel von der Buchwebseite herunter (http://www.dpunkt.de/iphone, Link »MyCal- 2.4 Ein erstes Beispiel 23 culator«) oder über http://www.dpunkt.de/leseproben/3402/my-calculator.zip. Dann extrahieren Sie dieses Archiv in ein beliebiges Verzeichnis. Nach dem Entpacken präsentiert sich das Beispiel wie in der Abbildung 2–8. Abb. 2–8 Das entpackte Beispiel my-calculator Für die Bearbeitung der Anwendung öffnen Sie sie über einen Doppelklick auf die Datei my-calculator.xcodeproj. Daraufhin öffnet sich nach kurzer Zeit die Entwicklungsumgebung Xcode mit dem Projekt my-calculator (siehe Abb. 2–9). Abb. 2–9 Schritt 2: Entwicklungsumgebung öffnen Xcode mit dem geöffneten Projekt my-calculator Um die Anwendung ein erstes Mal zu starten, müssen Sie das Beispiel übersetzen. Dies erfolgt mittels Klick auf die Schaltfläche Build and Run (siehe Abb. 2–10). Schritt 3: Das Beispiel mit den Änderungen starten 24 2 Installation und ein erstes Beispiel Abb. 2–10 Das Beispiel übersetzen und starten Nach kurzer Zeit ist der Quellcode übersetzt und die Anwendung wird im mitgelieferten iPhone Simulator gestartet. Danach präsentiert sich sofort die Anwendung my-calculator (Abb. 2–11). Den iPhone Simulator können Sie per Maus bedienen: Eingaben nehmen Sie per Klick auf die Schaltflächen vor, und über die Schaltfläche »C« setzen Sie den Taschenrechner zurück. Das Gleichheitszeichen wurde aus Gründen der Einfachheit weggelassen: Nach Betätigung der Schaltfläche »+« gefolgt von einer Zahl wird sofort das Additionsergebnis ausgegeben. Abb. 2–11 my-calculator gestartet Bei der Betätigung des schwarzen iPhone-Knopfes (genannt Home) in der Mitte des unteren Randes kommt der Nutzer auf das Hauptmenü zurück. Hier ist die Beispielanwendung my-calculator mit einem eigenen Icon vertreten (siehe Abb. 2–12). 2.4 Ein erstes Beispiel 25 Abb. 2–12 my-calculator im Hauptmenü Für das Schließen der Anwendung muss der iPhone Simulator über den Menüpunkt iPhone-Simulator/iPhone-Simulator beenden geschlossen werden, alternativ funktioniert auch die Tastenkombination cmd+Q. Nach dem Beenden können Sie nun Änderungen an der Anwendung vornehmen. Wie in Abbildung 2–12 zu erkennen, erscheint unter dem Anwendungsicon der Projektname my-calculator. Unsere erste Änderung besteht darin, diesen Namen anzupassen. Diese Änderung nehmen Sie in der Einstellungsdatei my_calculator-Info.plist vor. Nach einfachem Klick auf die Datei öffnet sich der Inhalt im rechten Bereich von Xcode. Nun ändern Sie in der Zeile Bundle display name den Wert auf fast.calc (siehe Abb. 2–13). Per Doppelklick auf eine Zelle können Sie deren Wert ändern. Speichern Sie die Änderung nun mittels Tastaturkürzel cmd+S. Schritt 4: Das Beispiel beenden Schritt 5: Name der Anwendung anpassen Abb. 2–13 Einstellungsdatei my_calculator-Info.plist im geöffneten Editor Nach einem Neustart der Anwendung mittels Build and Run öffnet sie sich im iPhone Simulator. Nach Betätigen der Home-Schaltfläche sehen Sie die Änderungen unter dem Icon. Sollten die Änderungen nicht sichtbar sein, beenden Sie den iPhone Simulator, rufen Sie über das Menü von Xcode den Befehl Build/Clean All Targets auf und starten Sie erneut den Simulator. Nun sollte die Änderung auf jeden Fall sichtbar sein. Bisher unterstützt der Taschenrechner nur die Addition, in unserem Beispiel wollen wir ihn um die Subtraktion erweitern. Hierfür müssen Sie zunächst eine Schaltfläche mit einem Minuszeichen hinzufügen. Die Oberfläche der Anwendung ist in der Oberflächendefinitionsdatei my_calculatorViewController.xib definiert. Für die Bearbeitung solcher Dateien steht das Werkzeug Interface Builder zur Verfügung. Mittels Doppelklick auf die Datei in Xcode wird diese direkt im Interface Builder geöffnet. Neben dem Projektfenster (linkes Fenster in Abb. 2–14) sollten Sie auch die Oberfläche mit den bereits enthaltenen Schritt 6: Oberfläche anpassen 26 2 Installation und ein erstes Beispiel Schaltflächen sehen. Sollte nur das Projektfenster sichtbar sein, öffnen Sie per Doppelklick auf das Symbol View die zugehörige Oberfläche. Abb. 2–14 Oberfläche im Interface Builder geöffnet Am einfachsten fügen wir die Schaltfläche mit dem Minuszeichen hinzu, indem die bereits vorhandene Schaltfäche mit dem Pluszeichen kopiert wird. Hierfür markieren Sie die Schaltfläche und kopieren sie über den Menüpunkt Edit/Copy (Tastaturkürzel: cmd+C). Sie lässt sich dann über den Menüpunkt Edit/Paste (Tasturkürzel: cmd+V) einfügen und mit der Maus an die richtige Stelle verschieben. Es bietet sich der Platz links neben dem Pluszeichen an (siehe Abb. 2–15). Für die Anordnung der Schaltfläche zeigt der Interface Builder während des Verschiebens blaue Führungslinien. Abb. 2–15 Führungslinien helfen bei der Positionierung im Interface Builder Schritt 7: Schaltfläche mit Quellcode verbinden Um den Text bzw. das Symbol der Schaltfläche zu ändern, genügt ein Doppelklick auf die Schaltfläche. Nun können Sie das Zeichen »-« einfügen. Über File/Save speichern Sie die Änderung. Die Oberfläche ist nun angepasst. Jetzt fehlt noch die Erweiterung im Quellcode. Hierfür muss eine Verbindung5 zwischen der neuen Schaltfläche und dem Quellcode hergestellt werden. Im Detail sieht das 2.4 Ein erstes Beispiel 27 so aus: Da beim Klick auf eine Schaltfläche ein Event ausgelöst wird, muss dieses Event nun mit einer Methode verbunden werden. Hierfür klicken Sie im Projektfenster auf das Symbol File’s Owner und wählen im Menü die Aktion Tools/Identity Inspector aus. Der Identity Inspector (siehe Abb. 2–16) öffnet sich und zeigt die zur Oberflächendefinitionsdatei gehörige Klasse an. In diesem Fall ist die Anzeige my_calculatorViewController. Abb. 2–16 Geöffneter Identity Inspector Neben dem Namen wird ein weißer Pfeil angezeigt. Per Klick auf den Pfeil öffnet sich die Oberflächenbibliothek (siehe Abb. 2–17) mit dem selektierten my_calculatorViewController. Im unteren Bereich befindet sich ein Auswahlmenü, bei dem Inheritance ausgewählt ist. Für das Hinzufügen einer neuen Aktion müssen Sie den Menüpunkt Actions auswählen. Abb. 2–17 Der Controller in der Oberflächenbibliothek Nach Auswahl von Actions werden alle bereits vorhandenen Actions angezeigt. Hier sehen Sie die schon definierten Methoden für die anderen Schaltflächen. Über die Schaltfläche »+« wird eine neue Methode hinzugefügt. Diese Methode bekommt den sprechenden Namen pressMinus: (siehe Abb. 2–18). Der generische Rückgabewert id wird dabei nicht angepasst. 5. Als Outlet bezeichnet. Mehr zu Outlets im Kapitel 3. 28 2 Installation und ein erstes Beispiel Abb. 2–18 Hinzufügen der neuen Aktion pressMinus: Über den Menüpunkt File/Save speichern Sie die vollzogene Änderung ab und schließen den Identity Inspector und die Oberflächenbibliothek. Nun gilt es, die Methode mit der Schaltfläche zu verbinden. Hierfür selektieren Sie das Symbol File’s Owner und öffnen das Kontextmenü (siehe Abb. 2–19) über die rechte Maustaste. Unterhalb von Received Actions finden Sie die definierte Methode pressMinus:. Nun klicken Sie auf das Pluszeichen und ziehen die blaue Linie mit gedrückter linker Maustaste auf die hinzugefügte Schaltfläche. Beim Loslassen der Maustaste werden die zur Verfügung stehenden Events der Schaltfläche angzeigt. Hier wählen Sie Touch Down aus und speichern die Änderungen über File/Save ab. Abb. 2–19 Herstellen der Verbindungen zwischen Methode und Schaltfläche Automatische Übernahme in den Quellcode Die Änderungen befinden sich nun in der Oberflächendefinitionsdatei und müssen noch in den Quellcode übertragen werden. Über den Menüpunkt File/Write Class Files... werden die Änderungen in den Quellcode zurückgeschrieben. Zuerst müssen Sie den Ort auswählen, an dem die Datei gespeichert wird. Das richtige Verzeichnis ist Classes innerhalb des Projektordners. Der nächste Dialog fragt, ob die Datei ersetzt (Replace) oder zusammengeführt (Merge...) werden soll. In diesem Fall ist Merge... die passende Variante. Nun öffnet sich das Hilfsprogramm FileMerge, um die Datei zusammenzuführen. Das Programm wird automatisch mit den 2.4 Ein erstes Beispiel Dateien my_calculatorViewController.h (Header-Datei) und my_calculatorViewController.m (Implementierungsdatei) geöffnet. Wählen Sie die Option Choose both (left first) am unteren Rand des Fensters aus und speichern Sie die Datei über File/Save Merge. Dies müssen Sie für beide Dateien durchführen, sowohl für die Header-Datei als auch für die Implementierungsdatei. Nach Abschluss können Sie FileMerge über den Menüpunkt File Merge/Quit FileMerge beenden. Die Arbeiten im Interface Builder sind damit auch abgeschlossen und Sie schließen ihn über Interface Builder/Quit Interface Builder. Beim folgenden Start der Anwendung über Build and Run in Xcode werden Sie den Taschenrechner mit der neuen Oberfläche sehen. Beim Klick auf Minus wird sich aber noch keine Änderung ergeben. Das liegt daran, dass im Quellcode die Methode pressMinus: bisher ohne Funktionalität ist. Lediglich der Methodenrumpf ist in der Datei my_calculatorViewController.m (siehe Listing 2–1) enthalten. Diesen Methodenrumpf hatten Sie zuvor über das Zuschreiben der Klassendatei aus dem Interface Builder erzeugt. - (IBAction)pressMinus:(id)sender { } Der Taschenrechner ist relativ einfach konstruiert. Über eine boolesche Variable wird festgehalten, ob die Plus-Schaltfläche zuletzt gedrückt wurde oder nicht. Diese Variable trägt den Namen plusPressed (siehe Listing 2–2) und ist innerhalb der Datei my_calculatorViewController.h definiert. @interface my_calculatorViewController : UIViewController { IBOutlet UITextField *displayField; BOOL plusPressed; int value; } 29 Subtraktion implementieren Listing 2–1 Leere Methode pressMinus: Listing 2–2 Definition der Variablen plusPressed Da eine boolesche Variable nur zwei Zustände speichern kann, führen wir für die Subtraktion eine weitere Variable des Datentyps BOOL mit dem Namen minusPressed ein (siehe Listing 2–3). Diese Variable (1) fügen wir der Header-Datei my_calculatorViewController.h hinzu. @interface my_calculatorViewController : UIViewController { IBOutlet UITextField *displayField; BOOL plusPressed; BOOL minusPressed; 1 int value; } Listing 2–3 Defintion der Variablen minusPressed 30 2 Installation und ein erstes Beispiel Der nächste Schritt ist die Implementierung der Methode pressMinus (siehe Listing 2–4). In dieser Methode wird lediglich die Variable minusPressed auf den Wert YES (1) und plusPressed auf NO (2) gesetzt. Analog ist die Methode pressPlus anzupassen. Listing 2–4 Implementierung der Methoden pressPlus und pressMinus - (IBAction)pressPlus:(id)sender { plusPressed = YES; minusPressed = NO; } - (IBAction)pressMinus:(id)sender { minusPressed = YES; 1 plusPressed = NO; 2 } Nun fehlt noch die Erweiterung der Rechenlogik. Die Implementierung erfolgt in der Methode input: (siehe Listing 2–6). Diese Methode wird aufgerufen (1), sobald eine Schaltfläche mit einer Zahl angeklickt wurde, und erhält die eingegebene Zahl als Argument (siehe Listing 2–5). Listing 2–5 Eingabe der Ziffer 2 - (IBAction)press2:(id)sender { [self input:2]; 1 } In der Ausgangsvariante des Taschenrechners ist nur die Addition enthalten. Dieser Zweig ist in (1) umgesetzt. Für die Subtraktion wird ein weiterer Zweig (2) hinzugefügt. Wenn weder ein Plus noch ein Minus vom Anwender gedrückt wird, soll einfach die eingegebene Zahl an die bisherige Eingabe angehängt werden. Durch das Hinzufügen von Subtraktion kann nun auch eine negative Zahl dargestellt werden. Darum ist der Algorithmus in (3) anzupassen. Die Ausgabe des Textes ist in allen drei Varianten gleich, siehe (4). Für die Ausgabe der Zahl 0 ist eine eigene Implementierungszeile (5) vorgesehen. Listing 2–6 Umsetzung der Rechenlogik - (void) input:(int)theInput { if (plusPressed) { 1]] value = value + theInput; [displayField setText:[[NSNumber numberWithInt:value] stringValue]]; 4 plusPressed = NO; minusPressed = NO; } else if (minusPressed) { 2 value = value - theInput; [displayField setText:[[NSNumber numberWithInt:value] stringValue]]; 4 plusPressed = NO; minusPressed = NO; } else { 3 2.5 Beispiele aus dem iOS Dev Center nutzen 31 if (theInput != 0 || value != 0) { if (value >= 0) { value = value*10 + theInput; }else { value = value*10 - theInput; } [displayField setText:[[NSNumber numberWithInt:value] stringValue]]; 4 } else { [displayField setText:@"0"]; 5 } } } Der letzte Schritt besteht darin, die Anwendung richtig zu initialisieren. Dabei wird der aktuelle Wert des Taschenrechners auf den Wert 0 gesetzt und die Variablen plusPressed und minusPressed auf NO gesetzt. Die richtige Stelle ist bei Erscheinen der Eingabeoberfläche. Die passende Methode hierfür ist viewDidLoad (siehe Listing 2–7). - (void)viewDidLoad { [super viewDidLoad]; plusPressed = NO; minusPressed = NO; value = 0; [displayField setText:@"0"]; } 2.5 Listing 2–7 Initialisierung bei Anzeige der Oberfläche Beispiele aus dem iOS Dev Center nutzen Für einen schnellen Einblick in die Programmierung fürs iOS bieten sich – neben unserer kleinen Einführung aus dem vorigen Abschnitt – die »offiziellen« Beispiele aus dem iOS Dev Center an. Diese erreichen Sie über den Link http://developer.apple.com/library/ios/navigation/#section=Resource%20Types&topic=Sample%20Code. Auf der Übersichtsseite sehen Sie alle Beispiele mit ihrer jeweiligen thematischen Einordnung. Über die Spaltenköpfe (siehe Abb. 2–20) der Ansicht können Sie die Liste entsprechend sortieren. Für eine Suche steht am oberen Rand der Liste eine Volltextsuche zur Verfügung. Abb. 2–20 Liste der Beispiele im iOS Dev Center 32 2 Installation und ein erstes Beispiel Beschreibungsseite eines Beispiels Direkter Zugriff auf die Quelldateien About-Seite des Projektes Download des Beispiels Abb. 2–21 Seite des Beispiels SeismicXML im iOS Dev Center Bei der Auswahl eines Beispiels (z.B. »GLPaint«) erscheint das selektierte Beispiel. Die Einzelseiten der Beispiele sind alle nach dem gleichen Muster aufgebaut (siehe Abb. 2–21). Die linke Seite (Table of Contents) enthält einen Link auf die einzelnen Dateien des Beispiels. Zusätzlich besitzt jedes Beispiel eine About-Seite mit einer Beschreibung des Beispiels. Beim Klick auf eine einzelne Datei wird sie im aktuellen Browserfenster dargestellt. Damit können Sie die Quelldateien ansehen, ohne dass Sie sie herunterladen müssen. Standardmäßig wird die About-Seite des Projektes dargestellt. Nach der Überschrift mit dem Namen des Beispiels enthält die nächste Zeile die aktuelle Versionsnummer und das Datum der letzten Änderung. In der Zeile Build Requirements folgt eine Aufzählung der Anforderungen an das Entwicklungssystem, um das zur Verfügung gestellte Beispiel selbst zu erzeugen. Die letzte Informationszeile (Runtime Requirements) enthält die notwendigen Anforderungen an das System, auf dem die Beispielanwendung ablaufen soll. Für den Download der Quelldateien im Zip-Format steht eine Schaltfläche über der Überschrift zur Verfügung. Die Schaltfläche trägt den Titel Download Sample Code. Um die Änderungen an einem Beispiel nachzuverfolgen, bietet sich die Versionshistorie an, die über den Link Revision History im linken Bereich angeboten wird. 2.6 Zusammenfassung Alle Beispiele können Sie nach dem Extrahieren direkt über die enthaltene .xcodeproj-Datei in Xcode starten und übersetzen. 2.6 Zusammenfassung In diesem Kapitel habe ich Ihnen zunächst das iOS Dev Center als das zentrale Informationszentrum rund um die iPhone-Entwicklung vorgestellt. Danach haben wir einen kurzen Blick auf die Installation sowie die Deinstallation des iOS SDK geworfen. Anschließend haben wir auf Basis des auf der Buchwebseite zur Verfügung gestellten Beispiels my-calculator eine erste eigene Anwendung entwickelt. Hier haben wir den Taschenrechner um die Grundrechenart Subtraktion erweitert. In die Tiefen des iOS SDK ist dieses erste Beispiel noch nicht vorgedrungen, aber trotzdem sollten Sie schon ein erstes Gefühl für die Anwendungsprogrammierung mit dem iOS SDK entwickelt haben. Außerdem wissen Sie nun, wo Sie innerhalb des iOS Dev Center den Quellcode von weiteren Anwendungen finden und wie Sie ihn schnell testen können. Diese Möglichkeit sollten Sie nutzen, um sich die neuen Wissensbereiche rund um die iOS-Entwicklung auf praktischem Wege zu erschließen. 33 Öffnen in Xcode
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
advertisement