Rezension: iOS 7 Programming Fundamentals

Veröffentlicht von am 24. Februar 2014 in Buchrezensionen

Noch vor einigen Jahren hätte wohl niemand damit gerechnet, dass Objective-C seine Blütezeit noch vor sich hat und innerhalb weniger Jahre zu einer der gefragtesten Programmiersprachen werden würde. Objective-C dient als ideales Beispiel dafür, wie die Veröffentlichung nur eines neuen Gerätes die Rangordnung der Programmiersprachen auf den Kopf stellen kann: War die, bereits in den 1980er Jahren in Anlehnung an Smalltalk entwickelte, Programmiersprache bis 2008 in erster Linie das Werkzeug der Wahl für Entwicklungen unter Mac OS X, stieg die Nachfrage nach der Veröffentlichung des iPhones und der Öffnung der Plattform mit dem AppStore rasant an. In den letzten Jahren ist Objective-C stets unter den Top-Platzierungen von Rankings wie dem TIBOE-Index zu finden, auf dem sie 2011 und 2012 auf Grund des enormen Zuwachses bereits „Programmiersprache des Jahres“ war.

Kein Wunder also, dass auch die Nachfrage und dementsprechend das Angebot an Büchern zur Programmierung in Objective-C im Allgemeinen, und der iOS-Programmierung im Speziellen, in den letzten Jahren stetig gestiegen ist. Als weiterer belebender Faktor für die stetige Nachfrage nach aktueller Literatur dient das Tempo mit dem Apple die Programmiersprache in den letzten Jahren weiterentwickelt und verbessert hat. Mit der Umstellung auf den LLVM-Compiler und dem Hinzufügen von neuen Sprachkonstrukten wie Automatic Reference Counting, Literals und Blocks sind wenige Jahre alte Bücher zur Einführung in die Objective-C-Programmierung inzwischen nahezu komplett veraltet.

Das Buch

Wie der Name „iOS 7 Programming Fundamentals“ bereits erahnen lässt, bewegt sich das im Oktober 2013 erschienene Buch von Matt Neuburg auf der Höhe der Zeit. Es wendet sich explizit an Einsteiger in die iOS-Programmierung und berücksichtigt bereits die neusten Entwicklungen, die iOS 7 und Xcode 5 mit sich gebracht haben. Für Matt Neuburg ist dies auch nicht das erste Buch über Objective-C und iOS; er kann bereits mit Büchern zur iOS 4, 5 und 6 Programmierung aufwarten. Bis zu dieser Ausgabe waren die Bücher allerdings stets allumfassende Wälzer mit über 1000 Seiten und entsprechendem Gewicht. Mit iOS 7 wurde dies nun auf zwei Bücher aufgeteilt: „iOS 7 Programming Fundamentals“ und „Programming iOS 7“. Diese Bücher verstehen sich laut Author als zwei Teile: Der erste Teil deckt auf 422 Seiten die Grundlagen der Programmiersprache, ihre von C abstammende Basis und die wichtigsten Eckpfeiler der iOS Programmierung inklusive Grundlagen zu Xcode ab. Der zweite Teil setzt genau dort an, wo der erste endet und geht mit View, ViewControllern, Animationen und der großen weiten Welt von UIKit ins Eingemachte, um den Leser in die Lage zu versetzen Apps für iOS zu entwickeln.

Der Aufbau

Wie bereits erwähnt, soll es in diesem Review um den ersten Teil gehen, der sich seinerseits in drei Teile untergliedert: Teil 1 beschäftigt sich zunächst mit den Wurzeln von Objective-C. Als strikte Obermenge von C sind grundlegende Kenntnisse dieser Programmiersprache unabdingbar. Nach dem C-Exkurs geht es in Richtung Objective-C und Grundlagen der Objektorientierung. Teil 2 beschäftigt sich mit dem wichtigsten Werkzeug für iOS-Entwickler: Der Apple-eigenen Entwicklungsumgebung Xcode. Der dritte Teil wirft dann einen ersten Blick auf das Cocoa-Touch Framework für grafische Oberflächen und behandelt außerdem Sprachkonstrukte wie Categories, Protocols und Notifications.

Der Stil

Der Buchinhalt ist aus technischer Sicht anstandslos: Die gezeigten Code-Beispiele, das empfohlene Vorgehen und die vermittelten Do’s and Dont’s sind fundiert und decken sich mit der eigenen Erfahrung. Die Gliederung des Buches ist nachvollziehbar und sinnvoll. Laut Klappentext und Einleitung richtet sich das Buch an „Einsteiger in die iOS-Programmierung“. Leider wird hier nicht näher spezifiziert, ob Erfahrungen in anderen Programmiersprachen hilfreich oder Voraussetzung sind. Vom Schwierigkeitsgrad des Einstieges richtet sich das Buch allerdings nicht wirklich an absolute Programmierneulinge. Es wird nicht viel Energie darauf verwendet zu erklären, was eine Schleife, eine Klasse oder ein Datentyp ist, sondern mehr Wert darauf gelegt zu erklären wie dies in Objective-C bewerkstelligt wird. Für Leute die bisher noch nie programmiert haben, empfiehlt es sich also eventuell zunächst ein grundlegenderes Buch zu lesen, bevor sie sich mit diesem auf die iOS-Programmierung stürzen. Bedingt durch die thematische Strukturierung des Buches kommt es an einigen Stellen dazu, dass der Autor ein Thema kurz anreißt und dann auf eine spätere Stelle im Buch verweist. Für einen recht frischen Einsteiger in die Thematik erfordert dies eine gewisse Disziplin zunächst dem roten Faden zu folgen und darauf zu vertrauen, dass die entstehenden Lücken im weiteren Verlauf des Buches gefüllt werden und die angesprochenen Themen so letztendlich verstanden werden können. Die Gliederung zunächst die Grundlagen von C und Objective-C zu erörtern und dann die Entwicklungsumgebung Xcode zu erklären macht durchaus Sinn, nur hat dieses Vorgehen in diesem Fall den Nachteil, dass der Leser erst nach 114 Seiten Hand an den Computer legen darf um Dinge auszuprobieren. Insgesamt ist der Leser in diesem Buch eher in einer passiven Rolle als animiert dazu, Dinge durch Learning-by-Doing auszuprobieren.

Fazit

Für ein Buch, welches sich explizit an Einsteiger in die iOS-Programmierung richtet, ist der gewählte Erklärungsstil nicht optimal. Für diese Zielgruppe wäre ein eher Tutorial-mäßiger Ansatz sicherlich hilfreicher um schneller erste eigene Erfolgserlebnisse zu produzieren. Für jemanden, der in einer anderen Programmiersprache schon sehr geübt ist und mit diesem Buch den Umstieg auf Objective-C und iOS wagen will, ist dieses Buch auf Grund seiner Aktualität und guten technischen Basis durchaus zu empfehlen. Diese Leser würden sich vermutlich in einer ausführlichen Schritt-für-Schritt-Anleitung eher langweilen.

Diese Rezension ist ein Gast-Beitrag von Jonas Panten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert