Objective-C 2.0

Literatur  –  Kommentare

Sebastian Meyer, Torben Wichers
Objective-C 2.0
Programmierung für Mac OS X und iPhone

mitp, 2. Auflage 2011
754 Seiten
ISBN 978-3-8266-9132-4
€ 39,95

Bücher zur Programmierung des Macs und des iPhones sind mittlerweile schon viele geschrieben worden, siehe etwa den Artikel iPhone-Bibliothek auf heise Developer. Doch eines, bei dessen Lesen echte Begeisterung zu verspüren ist, das den Leser regelrecht an das Werk und das geöffnete Xcode fesselt, ist noch nicht da gewesen. Doch jetzt haben zwei Profis ein schwergewichtiges Werk zu Objective-C 2.0 geschrieben.

Meyer und Wichers haben ihr Werk in drei Teile gegliedert. Zunächst wird die Programmiersprache Objective-C 2.0 vorgestellt (etwa Polymorphismus, Protokolle oder Kategorien). Der zweiteTeil geht auf die Programmierung für OS X und iOS ein (etwa Cocoa, Cocoa touch, Design Patterns). Der letzte Teil enthält die Anhänge.

Der eingangs genannte Tiefgang des Werkes soll am Beispiel des Abschnitts zum Memory Management geschildert werden. Dieses Kapitel hat mehr als 60 Seiten, eine vergleichbare Detaillierung und Aufbereitung des Themas ist dem Autor dieser Zeilen von keinem anderen Werk zu Objective-C auch nur annähernd bekannt. Dabei wird im Kapitel zum Memory Management etwa auf Reference Counting (und hier auch auf zyklische Abhängigkeiten) und Garbage Collection (finalize-Methode, schwache Referenzen) eingegangen. Ganz selbstverständlich für Meyer und Wichers wird auch dieses Kapitel mit Übungsaufgaben beschlossen. An der Stelle sei erwähnt, dass die Übungsaufgaben teilweise recht anspruchsvoll sind. Man fühlt sich dann schnell mal an Übungen im Rahmen eines Programmierpraktikums im Studium erinnert. Immerhin gibt es recht übersichtliche Musterlösungen.

Nur um nicht den Eindruck zu erwecken, dass obig beschriebe Kapitel stelle vielleicht eine rühmliche Ausnahme im Buch dar, sei gesagt, dass etwa das Threading-Kapitel auch über 70 Seiten Umfang hat.

Das MVC-Pattern wird bereits im Eingangskapitel des zweiten Teils behandelt. Das spezielle Pattern-Kapitel behandelt die für die Objective-C relevanten Muster (schnelle Iteration, Key-Value Coding, Observer, Delegation, Singletons). Natürlich verweisen die Autoren auf das Standardwerk zu Entwurfsmustern, die GoF-Bibel.

Im Abschnitt zu Cocoa und Cocoa touch wird auch die Entwicklung mit Xcode gezeigt. Dort finden sich entsprechende Abschnitte mit aussagekräftigen Screenshots. Auch wenn die Ausführungen bis hin zum Provisioning Profile gehen, um schlussendlich eine App in den App Store zu bringen, so sind diese Ausführungen im Vergleich zum Rest des Buches doch eher knapp gehalten – wobei sie jedoch ausreichen sollten, um mit Xcode arbeiten zu können und eigene Apps bei Apples App Store einreichen zu können. Wer mehr zu Xcode erfahren möchte, muss sich eventuell ein entsprechendes Buch durchlesen, etwa Fritz Andersons "Einstieg in Xcode" (das noch einer Überarbeitung für die Version 4.x bedarf). Es wird klar, dass die Autoren den Fokus auf Objective-C gelegt haben und die Ausführungen zu Xcode und dem Handling bezüglich Apps eher schmückendes Beiwerk sind.

Im Anhang findet sich eine kurze Einführung in C, die für einen hinreichend vorbelasteten Entwickler (Java, C#) ausreichen sollte, um die Sprachgrundlagen zu verstehen und anwenden zu können. Mit diesem Rüstzeug kann man sich dann dem Werk zuwenden. In der Regel werden es jüngere Entwickler sein, die C als Programmiersprache in ihrer Ausbildung nicht mehr kennenlernten, so dass diese Einführung in C durchaus ihre Berechtigung hat. Des Weiteren finden sich im Anhang Musterlösungen zu den Aufgaben der Kapitel.

"Objective-C 2.0" ist ein Werk mit Tiefgang. Durch seinen Umfang wie auch durch das akribische Aufbereiten verschiedener Sachverhalte kann den Autoren nur bescheinigt werden, dass sie mit ihrem Werk zur Haussprache Apples ein Standardwerk im deutschen Sprachraum geschaffen haben. Allerdings muss an dieser Stelle auch ganz klar der Hinweis kommen: Das Werk will erarbeitet werden und die Autoren fordern auch Mitarbeit ein, denn nur dann wird der angehende App-Entwickler auch in der Lage sein, nicht nur gute, sondern außergewöhnliche Apps zu schreiben, die gegebenenfalls ein Feature, das das SDK nicht bietet, mit eigenen Mittel erzeugen. (rl)