In meinem
ersten Beitrag ging es um die Voraussetzungen, welche erfüllt werden müssen, um iPhone Applikationen zu entwickeln. Nach dem nun gut drei Monate vergangen sind möchte ich euch meine Erfahrung mit dem iPhone SDK schildern.
Nach dem wir das aktuell 2.7 GB grosse SDK heruntergeladen und installiert haben, konnten wir auch schon mit der Entwicklung beginnen. Im SDK befinden sich neben dem Cocoa Touch Framework unteranderem auch die IDE Xcode, der Interface Builder sowie der iPhone Simulator.
Das Developer Programm
Das erste "HelloWorld" war auch dank zahlreicher Tutorials, welche wir über Google gefunden haben, recht schnell programmiert und lief auf dem iPhone Simulator. Die erste Hürde war somit gemeistert und vor ungefähr drei Wochen beschlossen wir, eine kleine Applikation zu entwickeln, welche das Mikrofon des iPhones benötigt. Da stiessen wir bereits auf das erste Problem. Der iPhone Simulator besitzt logischerweise kein Mikrofon Deshalb mussten wir dem Developer Program beitreten, um die Funktionen unserer App testen zu können. Die Freischaltung des Developer Accounts dauerte gute 24 Stunden nach dem Versand der Bestellung. Grund dafür ist eine Account Verifizierung.
Falls ihr euch überlegt, ebenfalls dem Developer Program beizutreten, müssen die Angaben eures Accounts mit den Angaben des Kreditkartenbesitzers übereinstimmen. Falls die Angaben des Kreditkarteninhabers nicht mit dem des Accounts übereinstimmen müsst ihr das bei Apple telefonisch klären.
Development Provisioning Profile
Bevor wir aber die erste Applikation auf unserem iPhone 3G installieren konnten, mussten wir über Apple den
Development Provisioning Assistant ausführen. Dieser führt den Benutzer sicher durch die einzelnen Schritte. Nach dem wir eine AppID und ein iPhone inklusive Device ID registriert haben, wird dann ein Provisioning Profile generiert, das wir herunterladen mussten. Diese Datei muss am Ende per Drag and Drop in den Organizer von Xcode verschoben werden.
SDK und Objective-C
Das Entwickeln mit Objective-C ist für mich, aufgrund meiner mangelnden Programmiererfahrung anfangs ein Puzzle gewesen. Doch mit der Zeit konnte ich mich zurechtfinden, jedoch noch mit einigen grossen Lücken. Das CocoaTouch Framework beinhaltet zahlreiche Klassen, welche für mich noch immer sehr komplex erscheinen und den Einstieg nicht sonderlich leicht machen. Anfangs war ich sehr skeptisch, ob Tobias und ich es schaffen würden, eine eigene Applikation zu entwickeln. Auch trotz der Hilfe von Google schwirren mir noch einige unbeantwortete Fragen im Kopf herum, z.B. wie man eine View komplett neu lädt, nachdem ein Spiel beendet wurde und der Spieler auf den „Try Again“ Button gedrückt hat. Auch der Interface Builder bietet zahlreiche Funktionen und Eigenschaften die auf den ersten Blick sehr verwirrend erscheinen. Aber nach einer gewissen Einarbeitungszeit weiss man damit umzugehen.
Code Beispiel
Vielleicht haben sich einige Anfänger auch gefragt, warum die Tastatur nicht automatisch geschlossen wird, wenn man den "Done"-Button der Onscreen-Tastatur berührt. Dies lässt sich mit einer einfachen Funktion realisieren.
Startet euer Xcode und öffnet das Projekt, in welchem ihr die Tastatur schliessen möchtet, sobald ihr "Done" auf der Tastatur berührt. Nun müssen wir eine Funktion in unsere Controller Class hinzufügen. Öffnet dafür die Header-Datei *ViewController.h und fügt folgendes hinzu:

Nach dem ihr die Änderungen gemacht habt, speichert ihr diese und wechselt zur Implementations-Datei und fügt folgende Funktion hinzu:

Dieser simple Code teilt dem Textfeld mit, das es den First Responder Status abgeben soll, sofern es diesen besitzt. Speichert eure Änderungen ab und öffnet den Interface Builder, wählt über das nib Hauptfenster eure View und dann das TextField. Öffnet den Connections Inspector und verbindet nun das Did End On Exit mit dem Files’s Owner Icon im nib Hauptfenster. Wählt hier nun die Funktion Done:, welche wir vorher definiert haben.

Nun sollte die Tastatur verschwinden, wenn ihr den "Done"-Button berührt.
Fazit
Die iPhone Entwicklung hat positive, als auch negative Eindrücke bei mir hinterlassen. Die Einarbeitung in Objective-C sowie in den Interface Builder nimmt wesentlich mehr Zeit in Anspruch als gedacht. Wer sowieso einen Mac zu Hause stehen hat, empfehle ich auf jeden Fall mal einen Blick auf das SDK zu werfen. Wer sich dann ernsthaft überlegt, eine App zu schreiben, sei gewarnt: denn Apple überprüft jede Applikation vorher auf Herz und Nieren, bevor diese im AppStore landet. Falls eine Applikation Apples Normen nicht gerecht wird, wird diese nämlich nicht veröffentlicht.