iPhone Open Application Development

Jonathan Zdziarskis Einführung in die Programmierung von iPhone-Anwendungen avanciert zum Klassiker, erfordert aber mindestens sichere Kenntnisse in C++.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 4 Min.
Von
  • Karsten Kisser
  • Alexander Neumann

Jonathan A. Zdziarski

Oktober 2008
O'Reilly
2. Auflage
254 Seiten
US-$ 39,99
ISBN 978-0-596-15519-3

Jonathan A. Zdziarski ist nicht zuletzt seit seinem Werk "iPhone Forensics" als ausgezeichneter Kenner des iPhones und in der Community als Hacker NerveGas bekannt.

Mit dem hier besprochenen Werk führt er in die Programmierung des iPhones ein. Mit der 2. Auflage des Buches geht er auch auf die Firmeware-Version 2.x des iPhones ein. Er beschreibt dabei den Weg, wie man den Softwareschutz des iPhones aushebelt, um mit den freien Programmen und Tools der breiten Community Applikationen für das iPhone zu erstellen. Dieser nicht von Apple autorisierte Weg, da nicht das iPhone SDK benutzt wird, hat einige Vorteile, denn zum einen kann man mit dem Apple SDK einige Core-Routinen nicht benutzen, die aber ausgiebig Apples eigene Programme nutzen. Zudem verbietet Apple, zum Beispiel Hintergrundprozesse zu schreiben, was allerdings technisch möglich ist. Diesen von Apple gewollten Einschränkungen unterliegt man nicht, setzt man die von Zdziarski favorisierte freie Software ein. Dann kann man seine Applikation natürlich auch nicht in Apples App Store vertreiben.

Zunächst, um die freie Software auf dem iPhone oder iPod Touch installieren zu können, muss man den Softwareschutz aushebeln. Das erste Kapitel geht in wenigen Sätzen auf dieses Thema ein, was unbedarfte Naturen eventuell etwas überfordern könnte. Zusätzliche Informationen kann man sich gegebenenfalls in "iPhone Forensics" oder aus dem Internet holen.

Als Leser dieses Buches sollte man über gute C++-Kenntnisse verfügen sowie in der Lage sein, auf einem Unix-System arbeiten zu können. Zdziarski setzt nicht unbedingt Kenntnisse in Objective-C, der Haus- und Hofsprache des Macs und somit auch des iPhones voraus, seine Anmerkungen zu den Spracheigenschaften (zum Beispiel Klassen- und Methodendeklarationen, Kategorien) sind aber kurz gehalten. Für weiterführende Lektüre verweist er auf Lehrbücher aus dem gleichen Verlag.

In den einzelnen Kapiteln geht Zdziarski dem Framework des iPhones auf den Grund. Zunächst wird ein Beispielskelett erstellt, das als Ausgangspunkt für die weiteren Erkundigungen im UIKit dient. Die einzelnen Kapitel gehen mit den Beispielapplikationen gezielt auf das Framework ein. Schön von Zdziarski sind im Anschluss an ein Beispiel immer die Sektionen "What's Going On" und "Further Study", in denen er dazu einlädt, mit dem entsprechenden Sourcecode zu spielen und weitere Eigenheiten des Frameworks auszuprobieren, um mehr zu erfahren und nicht nur an der Oberfläche zu kratzen.

Neben den Grundlagen des UIKits geht Zdziarski in seinem Werk auch auf Event Handling, grafische Services, Core Surfaces, Core, Quartz und Core Audio ein. Im Anhang stellt er eine kleine Sammlung nützlicher Routinen aus anderen Frameworks bereit beziehungsweise auch solche Themen, die thematisch in kein anderes Kapitel passen, so zum Beispiel der Nutzen des iPhones-Vibrationsalarms oder das Einbauen der Cover-Flow-Ansicht in eigene Programme.

Ganz klar, Zdziarskis "iPhone Open Application Development" richtet sich an erfahrene Programmierer, die mindestens über sichere Kenntnisse in C++ (oder einer anderen objektorientierten Sprache) verfügen – wenn sie nicht schon Objective-C beherrschen – und die in die spannende iPhone-Programmierung einsteigen möchte, dabei aber nicht an Apples Knebel-SLAs (Service Level Agreements) gebunden sein zu müssen. Das Lesen des Werkes ist kurzweilig und spannend, schafft es Zdziarski doch gekonnt, Wichtiges in knapper Form darzustellen und die (Lehr-)Inhalte gut zu vermitteln. Man darf gespannt sein auf die 3. Auflage dieses zum Klassiker avancierenden Werkes, das dann die kommende Firmeware-Version 3.0 der am Horizont erscheinenden 4-Kern-Prozessor-iPhones unter die Lupe nehmen wird. (ane)