SmartBooks "Objective-C und Cocoa - Programmieren unter Apple Mac OS X"
Rezension dieses Buches
Seit der ersten Vorstellung von Mac OS X wurde Cocoa und Objective-C von Apple zum Programmierstandard für Entwickler erhoben. Nachdem nun Apple bekannt gegeben hatte, zukünftig Macs mit Intel-Prozessoren auszustatten, ist Cocoa die einfachste Möglichkeit die Programme als Universal-Binary zu erstellen und damit auch die bisherigen PowerPC-Prozessoren zu unterstützen. Angesichts dieser eindeutigen von Apple publizierten Präferenz ist es umso erstaunlicher, dass bisher kein deutschsprachiger Einstieg in Buchform zur Mac-OS-X-Programmierung existierte.
Der SmartBooks-Verlag hat sich diesem Problem angenommen und im August 2005 das Buch "Objective-C und Cocoa - Programmieren unter Apple Mac OS X" veröffentlicht. Das von Klaus M. Rodewig verfasste Buch richtet sich dabei nicht nur an Einsteiger, sondern bedient in Teilen auch den erfahrenen Mac-OS-X-Entwickler. Aufgeteilt in 9 Kapitel werden auf über 500 Seiten Grundlagen und tiefergehende Aspekte der Programmierung unter Mac OS X behandelt, wobei das letzte Kapitel etwas aus der Rolle fällt und kaum etwas mit der Programmierung unter Mac OS X zu tun hat. Ergänzt wird das Buch durch die enthaltene CD-ROM mit allen im Buch behandelten Projekten für Xcode.
Das erste Kapitel beschäftigt sich mit der Entstehung von Objective-C und Mac OS X. Dabei beschränkt sich das Kapitel nicht nur auf geschichtliche Fakten, sondern erklärt auch, inwieweit sich die einzelnen Unix-Varianten in der Entwicklung beeinflusst haben, und wie Apple nach vielen gescheiterten Projekten letztendlich zu Mac OS X gekommen ist. Im zweiten Kapitel werdem dem Leser die Entwicklungsumgebung Xcode und der Interface-Builder näher gebracht. Als Beispiel-Projekt wird das unter Programmierern bekannte "Hello World!" genutzt, um dem Leser die grundlegende Struktur von Cocoa zu erklären. Auf eine genauere Erklärung der wenigen Objective-C-Befehle diese Projekts hingegen wurde verzichtet.
Die eigentliche Einführung in die Programmierung und damit auch in die Sprache Objective-C erfolgt im dritten Kapitel. Da Objective-C eine Weiterentwicklung der Programmiersprache C ist, werden dem Leser vor der eigentlichen Einführung in Objective-C die Grundlagen von C vermittelt. Warum der Autor dafür allerdings auf den mächtigen Editor Emacs zurückgreift ist unverständlich, da sich die im vorherigen Kapitel eingeführte Entwicklungsumgebung Xcode auch für die Programmiersprachen C und C++ eignet. Beim echten Einsteiger ohne jegliche Programmiererfahrung kann dies zu Verwirrungen führen, da er sich nicht nur mit der Programmiersprache C auseinandersetzen muss, sondern auch noch mit dem Editor Emacs. Nachdem die Einführung in C stattgefunden hat, wird kurz die objektorientierte Programmierung und der dahinterstehende Sinn erklärt. Dazu wird als gut verständliches Beispiel ein Instrument-Objekt herangezogen, welches nach der theoretischen Einführung auch als praktische Einführung in die die Programmiersprache Objective-C dient. Hier werden nun auch erstmals die Objective-C-Befehle und ihre Syntax näher erklärt.
Im vierten Kapitel wird zunächst die Initialisierung von Klassen und Objekten unter Objective-C erläutert. Darüber hinaus findet auch eine ausführliche Erklärung der String-Behandlung (Zeichenketten) in Objective-C statt, bevor sich dann im überwiegenden Teil des Kapitels einigen häufig verwendeten Interface-Elementen zugewandt wird. Doch auch auf Aspekte wie die Ausrichtung von Elementen, die Lokalisierung oder das Programmsymbol wird näher eingegangen. Spätestens in diesem Kapitel ist allerdings eine Komplexität der Beispiele erreicht, die den Einsatz der enthaltenen CD-ROM nötig macht, um die Erklärungen angemessen verfolgen zu können. Hier wird auch auf die Dokumentation von Apple hingewiesen, die natürlich aktueller und umfangreicher, jedoch in englischer Sprache, auf alle Aspekte der Mac-OS-X-Programmierung eingeht.
Das recht kurze fünfte Kapitel beschäftig sich mit Events und im Speziellen mit den Tastatur und Maus-Events, mit denen man den Status von Tastatur und Maus ermitteln kann. Die komplexen Themen Verzeichnis- und Dateibehandlung sowie Netzwerkprogrammierung werden im sechsten Kapitel behandelt. Nach einer kleinen Einführung in die Datei-Struktur von Mac OS X und den Besonderheiten von HFS+ wird neben dem allgemeinen Lesen und Schreiben von Dateien auch auf die wichtigen XML-Dateien eingegangen. Danach erfolgt recht kurz, aber auf den Punkt gebracht, die wichtigsten Aspekte der Netzwerkprogrammierung anhand des TCP/IP-Protokolls. Spätestens bei diesem Thema wird sich der Einsteiger verabschieden, während es für den fortgeschrittenen Programmierer interessanter wird.
So ist auch das siebente Kapitel für den fortgeschrittenen Programmierer interessant, der sich mit dir Programmierung des Kopieren/Einfügen-Menü, der Drag-and-Drop-Behandlung oder der Rückgängigmachung von ƒnderungen beschäftigen will. Das achte Kapitel behandelt unter dem Titel "Extreme programming" die komplexen Themen Multitasking, Multithreading und Multiprocessing sowie deren besondere Implementierung in Cocoa. Das neunte und letzte Kapitel fällt, wie schon in der Einleitung dieser Rezension erwähnt, etwas aus dem Rahmen, da es kaum etwas mit der Programmierung unter Mac OS X zu tun hat. In diesem Kapitel wird die Programmierung der Unix-Shell Bash im Zusammenhang mit Skripten behandelt. Doch auch Programme wie Cron, Syslog, Webmin oder Fink werden in diesem Kapitel abgedeckt. Am Ende des Kapitels und damit auch am Ende dieses Buches wird dann allerdings doch noch ein für größere Software-Projekte wichtiges Thema behandelt: die Versionsverwaltung. Anhand von CVS wird erklärt, wie man eine Versionsverwaltung zu seinem Vorteil einsetzt und hier im Speziellen, wie man CVS in Xcode einbindet.
Fazit:
Das von SmartBooks herausgegebene Buch "Objective-C und Cocoa - Programmieren unter Apple Mac OS X" von Klaus Rodewig eignet sich durch sein breites Spektrum an Themen sowohl für Einsteiger, als auch für fortgeschrittene Programmierer. Jedoch sollte auch klar sein, dass es sich bei diesem Buch nicht um ein Kompendium handelt. Vielmehr werden neben der Einführung in Cocoa und Objective-C einzelne Aspekte der Programmierung von Mac OS X aufgegriffen und dem Leser anhand von guten Beispielen näher gebracht. Die Entwickler-Dokumentation von Apple kann und will das Buch nicht ersetzen. So ist das Buch all denen zu empfehlen, die eine Einführung in eines der vom Buch abgedeckten Themen benötigen. Erwähnt werden sollte noch die teilweise holprige ‹bergänge von einem zum anderen Aspekt innerhalb eines Themas, weswegen vor allem Einsteiger ein Kapitel zunächst in einem Stück durchlesen sollten. Jedoch ist dies Kritik auf hohem Niveau. "Objective-C und Cocoa - Programmieren unter Apple Mac OS X" bietet einen guten Einstieg in die Programmierung von Mac OS X.