02 Nov 2008

Software-Entwicklung für iPhone / iPod-Touch

Projektlabor 7 Kommentare

Für ein aktuelles Projekt beschäftige ich mich zur Zeit mit der Programmierung des iPhones bzw. iPod Touch. Eine spannende Sache, da dieser Mobilplattform sicherlich – neben Googles Android und eventuell anderen freien Varianten – ein großes Stück der mobilen Zukunft gehören wird.

Da ich bisher noch überhaupt nicht für die Mac-Plattform entwickelt habe und mit den Entwicklungs-Tools (Xcode & Co.) dementsprechend nicht vertraut war, musste ich gleich mehrere Einstiegs-Hürden nehmen:

  • Einarbeitung in Objective-C, eine Mischung aus C und Smalltalk,
  • Verständnis für die Entwicklungs-Philosophie (Frameworks, Programmier-Paradigmen) der Mac-Plattformen,
  • Kenntnis des spezifischen iPhone-Frameworks (Cocoa Touch).

Glücklicherweise ist zwischenzeitlich der von Apple auferlegte NDA-Maulkorb gefallen, so dass der – gerade für Neulinge – so wichtige Austausch zwischen Entwicklern mittlerweile in Gang kommt. Ohnehin habe ich Apple’s Position in diesem Punkt nicht verstanden, schließlich möchte der Hersteller sicherlich die Verbreitung von iPhone, Framework und entsprechenden Anwendungen weiter fördern – schließlich scheint der AppStore eine gute Einnahmequelle zu sein.

Immer wieder sehr geholfen hat mir das iPhone Dev SDK Forum, und vor kurzem hat auch Apple selbst im iPhone-Developer Center ein Entwicklerforum eröffnet.
Update: Jonas weisst auf die ebenfalls sehr ausführliche deutschsprachige Seite www.mobile-dev.de hin.

Langsam entwickelt sich auch das Buchangebot, neben der offiziellen Apple-Dokumentation (die wirklich brauchbar ist, wenn die ersten Hürden genommen sind) möchte ich hier besonders folgende Bücher hervorheben:

  • Become an Xcoder – Programmieren mit dem Mac in Objective-C (E-Book in deutscher Sprache, hier kostenlos erhältlich.
    Die englische Ausgabe ist bereits für die Xcode 3-Umgebung angepasst, die deutsche basiert noch auf der Vorgängerversion, was teilweise die Benutzung besonders des aktuellen Interface-Builders erschwert.
    Das Buch erläutert hauptsächlich das Sprachkonzept von Objective-C, geht aber auch auf die GUI-Erstellung und die – etwas anstrengende! – Speicherverwaltung ein.
  • The Objective-C 2.0 Programming Language
    Das direkt von Apple bereitgestellt E-Book erklärt die zugrundeliegende Programmierung ausfürlich mit allen Sprachbestandteilen, geht allerdings nicht auf weiterführende Konzepte oder die SDKs ein. Erhältlich in der Apple Dev-Connection.
  • Cocoa: Programmierung für Mac OS X von Aaron Hillegass
    Von vielen als Standardwerk gehandelt, und tatsächlich hat mir die Lektüre schnell ein gutes Grundverständnis der gesamten Entwicklungsarchitektur vermittelt. Das Buch geht mittlerweile auf die Neuerungen in Xcode 3 ein und ist seit kurzem auch in einer deutschen Übersetzung erhältlich, was ich persönlich besonders hilfreich fand. Bei jedem gut sortierten EDV-Buchhändler.
  • Spezifische Dokumentation für das iPhone-SDK: Allen voran ist der iPhoneOSProgrammingGuide zu nennen, ergänzt durch spezifische Guides wie TableView_iPhone und ViewControllerPGforiPhoneOS. Ebenfalls durchaus hilfreich sind die (wenigen) Code-Beispiele, die Apple zum iPhone bereitstellt, hier lassen sich einige Sachen abschauen und besser verstehen.
  • iPhone Developers Cookbook von Erica Sadun. Hier werden viele praxiserprobte Rezepte vorgestellt, um konkrete Aufgaben zu lösen. Eigentlich werden alle Bereiche des Touch-SDKs behandelt, zudem gibt es sogar noch einige echte Schmankerl, die von Apple nicht dokumentiert sind! Hier schaue ich zwischendurch immer wieder schnell nach, um eine (Teil-)Aufgabe umzusetzen (wie funktioniert das noch mal gleich mit der Abfrage der aktuellen Position?)
    Das Buch ist sowohl in gedruckter Form als auch als Online-Version erhältlich.

Um die Registrierung als iPhone-Entwickler und der damit verbundenen jährlichen 99,- $-Zahlung an Apple kommt man übrigens nicht herum, da sonst die Programme auf realen iPhones oder iPod nicht getestet werden kann. Und der Zugang zum AppStore ist natürlich auch daran gekoppelt.

An einigen Stellen habe ich während der Entwicklung allerdings auch das Gefühl gehabt, dass manche Dinge im SDK noch nicht so ganz ausgereift sind: Beispielsweise ist es mit geringstem Aufwand möglich, Videodateien im Player abzuspielen, für reine MP3s ist dies jedoch nur mit erheblichem Aufwand auf absolute Low Level-Frameworks möglich. Auch das Instruments-Tool, dass zum Aufspüren von Memory Leaks und zum Performance Monitoring dient, versagt leider doch recht häufig die Zusammenarbeit mit dem angeschlossenen Entwicklungs-iPod.

Aber ich bin guter Dinge, dass mit der bereits angekündigten Firmware 2.2 bereits wieder weitere Verbesserungen Einzug halten werden und über kurz oder lang denke ich, dass Cocoa Touch eine mehr als konkurrenzfähige Mobilumgebung ist. Auf jeden Fall macht es ziemlichen Spass, für die kleinen Zwerge zu entwickeln!

7 Kommentare to “Software-Entwicklung für iPhone / iPod-Touch”

  1. Jonas says:

    Auf http://www.mobile-dev.de findet man auch einige deutschesprachige hilfreiche Tutorials und Tips und Tricks zur iPhone Programmierung.

  2. Flo says:

    Hi,
    will mir mit einem Kollegen auch das Developer Kit für’s iPhone bestellen und wollte dich fragen, wie lange du auf Apple warten musstest, bis du die Software bekommen hast. Dauerte das mehrere Tage oder Wochen?
    Danke für eine kurze Antwort!

    LG Flo

  3. Nils Ehnert says:

    Hallo Flo,

    die Software selbst kriegst Du (nach vorheriger Registrierung) sofort kostenlos auf http://developer.apple.com/iphone.
    Um damit aber testen zu können, brauchst Du ein Zertifikat, dass Du bei Apple erst kaufen musst. Die Bearbeitungszeit hat bei mir dann ca. 2 Wochen gedauert, das mag aber auch wesentlich schneller gehen. Ohne das Entwicklerzertifikat kannst Du zwar im Simulator entwickeln, aber nicht auf echten Geräten (iPhone, iPod Touch) testen.

    Viel Erfolg
    Nils

  4. akram says:

    Hallo,
    Is it necessary to have a Mac platform, pc to develop Program for IPOD? Can windows platform be used to learn and see it it works?
    Best Regards

  5. Nils Ehnert says:

    yes, it’s mac-only ;-(

  6. Ulli says:

    Bin in Sachen Mac-Entweickler totaler Neuling, aber die Begeisterung für das iPhone lässt mich doch die Hürde der Einarbeitung in objektorientierte Programmierung und MacOSX nehmen. Eine Verständnis-Frage was das Zertifikat angeht. Mit dem Zertifikat kann man dann ja fertige Applikationen in den Store einstellen. Wie bekommt man denn zu Testzwecken vorher die Applikation auf ein iPhone? Nur über den Store? Gibt es so was wie eine Prüfung eingereichter Software? Gilt diese auch für Testversionen, die nur lokal auf einem iPhone laufen sollen? Danke für die Infos!

  7. Nils Ehnert says:

    Hallo,

    Zertifikate braucht man bei Apple für alles ;-) Development-Zertifikate zum Testen, Distribution-Zertifikate zur Verbreitung über den App Store. Natürlich kann man testen, ohne über den Store gehen zu müssen. Mittlerweile ist das ganze Prozedere im iPhone Dev Center bei Apple selbst ganz gut beschrieben.

Hinterlassen Sie einen Kommentar