Pressestimmen
Objective-C hat in der Programmiererlandschaft viel an Terrain gewonnen, und damit gewinnt auch Apples Cocoa an Popularität. Amin Negm-Awad und Christian Kienle liefern dazu nach gut einem Jahr den zweiten Band ihres Grundlagenwerks ab (c't 8/09, S. 188). Sie setzen die Lektüre des ersten Bands voraus, den sie konsequent fortführen. Haben sie im ersten Teil lediglich erklärt, wie die View- und Control-Klassen von Cocoa zu verwenden sind, passen sie diese nun an spezifische Bedürfnisse an. Auch die Ereignisbehandlung nehmen sie selbst in die Hand. So vertiefen sie bestehendes Wissen und zeigen neue Techniken: Mit Core Image und Core Animation stehen dem Entwickler mächtige Werkzeuge zur Bildmanipulation zur Verfügung, und auch über das Textsystem von OS X gibt es viel zu lernen. Erfolgreiche Anwendungen zeichnen sich auch durch ihre Fähigkeit zur Integration aus. Die zweite Hälfte des Buchs stellt daher das Zusammenspiel einer Mac-Anwendung mit OS X und Web-Services in den Vordergrund. Die Autoren erläutern unter anderem die Realisierung eines Plugin- Systems, machen Anwendungen fit für AppleScript, greifen sowohl synchron als auch asynchron auf REST-Services zu und nutzen nebenläufige Prozesse. Praxisnah beschreibt das Duo, wie eine Anwendung sinnvoll gewartet werden kann, wenn sie in verschiedenen Versionen existiert. Eine kurze Einführung in die Datenmigration mit Core Data und eine Referenz zu Objective-C runden dann das Ganze ab. Enthielt der erste Band lediglich die Pflichtübungen, sind Negm-Awad und Kienle im zweiten Band zur Kür übergegangen. Beide Teile enthalten gemeinsam im Grunde genommen alles, was ein Entwickler über die ganzheitliche Programmierung von Cocoa-Anwendungen auf dem Mac wissen muss. (Maik Schmidt/fm) (c't 3/2011)
Kurzbeschreibung
Nach dem großen Erfolg des ersten Bandes erscheint nun die Fortführung für den fortgeschrittenen Entwickler. Beide Bände umfassen damit sämtliche wichtigen Themengebiete zur Software-Entwicklung unter Mac OS X und sie dienen auch als Grundlage für die Entwicklung auf dem iPhone. Das Werk befindet sich auf dem Stand Mac OS X 10.6 Snow Leopard und behandelt daher auch neueste Technologien: die Blocks und Grand Central Dispatch.
Während bei dem ersten Band die Anwendung der vorhandenen Klassen von Cocoa im Vordergrund stand, geht es nunmehr um die Anpassung an eigene Bedürfnisse des Anwenders und um vertiefende Themen wie Multithreading und Systemintegration. Abgeschlossen wird der Band mit einer Referenz zu Objective-C auf dem aktuellen Stand.
Inhalt
Die ersten drei Kapitel behandeln die Ableitung von Viewklassen, um eigene Darstellungen zu erzeugen (Kapitel 1), die Nutzereingaben zu empfangen (Kapitel 2) und die automatische Synchronisation mittels eigenen Bindings zu ermöglichen. Dabei wird nicht, wie in vielen Tutorials, der einfache Fall besprochen, sondern darüber hinaus auch das Zusammenspiel komplexer Viewhierarchien am praktischen Beispiel gezeigt.
Kapitel 4 befasst sich mit den spezielleren Fällen von Controls und Cells einerseits und der Anpassung von Fenstern (Transparenz, nicht-rechteckige Fenster) andererseits.
Im Anschluss daran ist den wichtigen Systemtechnologien Core Animation und Core Image ein eigenes Kapitel (5) gewidmet, ebenso wie dem Textsystem von Cocoa (Kapitel 6).
Kapitel 7 befasst sich mit der Systemintegration, also der Einbettung der Applikation in ihren Workspace, dem Dateisystem und Zusätzen wie Dock-Icon und Statusmenüs. Außerdem wird hier die Möglichkeit des Netzwerkzugriffes mit Web-Technologien und Distributed-Objects gezeigt.
Die gerade auf modernen Multicore-Maschinen immer wichtig werdenden und von Apple enorm geförderten Technologien zur Parallelisierung behandelt Kapitel 8: Hierbei werden von einfachen Techniken wie Timer-Loops bis hin zum von Mac OS X 10.6 implementierten Grand Central Dispatch alle Grade der Parallelisierung berücksichtigt. Spezielle Probleme wie Modes der Run-Loop bleiben nicht unberücksichtigt und werden gelöst.
Kapitel 9 beschäftigt sich mit der Auslieferung und Versionierung von Anwendungen einschließlich der praktisch relevanten Mappingtechnologie von Core Data zur Migration von Modellen sowie der Berücksichtigung verschiedener Architekturen und der daraus entstehenden Problematiken.
Als Abschluss dient ein Referenzkapitel (10), welches formal die Sprache beschreibt und einen Überblick über die Technologien auf dem neuesten Stand ermöglicht.
Über die Zielgruppe
Zum einen wendet sich der zweite Band noch einmal an die Leser des ersten Bandes. Aber auch Leser anderer Einführungsbücher werden mit Hilfe dieses Buches vertiefte Technologien verstehen und umsetzen können. Die grundlegenden Konzepte von Objective-C und Cocoa sollten allerdings vor der Lektüre bereits bekannt sein.