Die Nachrichten sind dieser Tage voller Erfolgsmeldungen über Google’s mobiles Betriebssystem. Zuerst die höchsten Zuwachsraten im Smartphone Bereich, dann das Überholen der iPhones in den USA und zuletzt das vermehrte Auftauchen der Android Fanboys. Die eben erst auf der Google I/O vorgestellte Version 2.2, welche auf den Namen ‘Froyo’ hört, hat das Potential um Apple, RIM und Microsoft das Fürchten zu lehren.

Grund genug für Firmen, welche schon in eine iPhone Applikation investiert haben, auch nach dem Android Markt die Finger auszustrecken. Eine Suche auf www.amazon.de nach Android liefert das im dpunkt.verlag erschienene Buch mit dem Titel ‘Android 2‘ als erstes Ergebnis. Wie gut hilft nun dieses Buch bei dem Einstieg in die Android Entwicklung?

Aus diesem Blickwinkel wurde also das bereits in der zweiten Auflage erschienene Buch begutachtet: ich selbst bin als Senior Developer bei www.tripwolf.com tätig, ein Reiseführer für die ganze Welt basierend auf dem Prinzip sozialer Netzwerke. Die iPhone Applikation von tripwolf wurde schon über 100.000 mal heruntergeladen und unterstützt Reisende auf der ganzen Welt.

Aufbau

Das Buch ist unterteilt in drei Teile. Der Erste gibt einen oberflächlichen Überblick über Android, der Zweite stellt zu Beginn gleich die Beispielapplikation Amando vor, welche mit Codefragmenten die Kapitel begleitet. Ausführlich werden dann die wichtigsten Bausteine für eine Android Applikation beschrieben. Dieser zweite und längste Teil des Buches muss nicht unbedingt in der vorgegebenen Reihenfolge gelesen werden, sondern kann auch kapitelweise zu Rate gezogen werden, je nach Wissensbedarf. Der letzte und dritte Teil nennt sich ‘Android für Fortgeschrittene’ und gibt Tipps zu Debugging, Log Dateien, Monitoring, Profiling, Sicherheit und – wichtig aus Unternehmenssicht – automatisiertes Testen, um Anwendungen marktreif machen.

Grundsätzlich geht das Buch recht konsequent mit der Problematik um, dass in der Informatik die meisten Fachbegriffe im allgemeinen, und im speziellen jede API, sich der englischen Sprache bedienen.  Es wurden wo immer möglich deutsche Begriffe eingesetzt, was die flüssige Lesbarkeit fördert. Leider wurde dieser Ansatz in einem Punkt übertrieben, was den Effekt der Lesbarkeit an den wichtigsten Stellen wieder zerstört: In den Codebeispielen werden deutsche Klassen-, Variablen-, Methodennamen verwendet.  Subjektiv von mir als unlesbar und als schlechten Stil empfunden, und objektiv gibt es es eine ganze Reihe von Gründen warum man dieses nicht tun sollte – technisch wie ökonomisch. Doch ist dies nicht der Platz die absoluten Grundlagen der Programmierung zu wiederholen, nur die Codebeispiele sind also nicht unbedingt beispielhaft. Man kann sich online davon überzeugen, die Quelltexte sind zum Download hier verfügbar: http://www.androidbuch.de/beispiele.htm

Das Eingemachte

Gleich im ersten Kapitel startet das Buch mit einem Programmierbeispiel – ohne sich lange mit irgendwelchen Grundlagen aufzuhalten. Dieser Ansatz macht Spaß, denn man sieht sofort wie Android tickt. Nachdem man Blut geleckt hat, lesen sich die folgenden Kapitel, welche Grundlagen wie die Systemarchitektur behandeln, viel leichter.
Nach einem oberflächlichen Einblick  über den Aufbau und den Hintergrund von Android werden danach häppchenweise die einzelnen Komponenten einer Android Applikation beschrieben. Immer begleitet von einer Beispielapplikation, Amando. Besonders gut gelungen ist dabei das fünfte Kapitel welches die Oberflächengestaltung behandelt. Strukturiert und klar zu lesen, auch geeignet um es immer wieder als Referenz zur Hand zu nehmen. Im Gegensatz steht dazu das Kapitel über die Hintergrundoperationen, welchem Struktur fehlt. Hier macht es der Mix aus englischsprachiger API und deutscher Benennung von Klassen, Methoden und Variablen es noch schwerer den Programmierbeispielen zu folgen. Es entstehen teilweise eigenartige Sprachhybride wie z.B. etwa bei den automatisch generierten Stubs. Doch das Komplizierte müsste nicht sein, die Android API ist auch hier sehr simpel.

In den späteren Kapiteln tritt die Beispielapplikation Amando immer mehr in den Hintergrund. Die Chance diese als roten Faden für das Buch zu verwenden ist vertan. Amando ist nur mehr eine lose Kopplung in den Codebeispielen (hauptsächlich verbunden über den verwendeten Namespace) doch im Fließtext wird sie nicht mehr verwendet, um den ganzen einen Rahmen zu geben. Wäre dies anders würde es gerechtfertigt sein, dass zugunsten des ‘Handlungsstrangs’ Basiskapitel wie das über die Lebenszyklen erst sehr spät im Buch auftauchen.
In den Kapitel über Datenbanken gestehen die Autoren ein, dass diese wohl vor Android nicht mobil entwickelt haben – mit dem Eingeständnis mit DAOs beziehungsweise O/R Mapping Konzepten gescheitert zu sein. Ansonsten gibt es nützliche Einblicke in die Programmierung mit SQL Datenbanken mit Android und auch Starthilfe für SQL-Unerfahrene.
Gut ist, dass Dinge wie das Zusammenarbeiten und Entwickeln mit anderen Applikationen und Komponenten – wie Google Maps – ausführlich und genau erklärt wird, da dies sonst Schritte sind, die zwar kein komplexes Problem darstellen, aber oft mühsam bei der ersten Verwendung sind. Generell ist das Kapitel über die Geopositionierung sehr ausführlich.

Der dritte Teil ist der aus professioneller Sicht nützlichste. Er gibt Starthilfe über Debugging, Sicherheit, automatisiertes Testen und vieles mehr von dem was benötigt wird, um mit einer Applikation Marktreife zu erlangen. Auf diesen letzten 53 Seiten sammeln sich kleine und nützliche  Anleitungen für eben diese Teile, die eben nicht so viel Spaß bei der Entwicklung machen aber notwendig sind. Allerdings ist auch hier Kritik angebracht, nachdem sich dieser Teil exklusiv an Leser aus dem professionellen Umfeld richtet, hätte auch das Niveau an diese angepasst werden sollen. Die starken Vereinfachungen haben auch den Effekt, dass manche Dinge sehr ungenau oder nicht-so-ganz richtig erklärt werden.

Unter dem Strich

Das Buch gibt einen schnellen Überblick über die Programmierung von Android Applikationen, doch schweift es oft ab und erklärt (zu) ausführlich Dinge, die nicht direkt eine Besonderheit der Android Plattform sind, sondern normaler Programmieralltag. Für einen Einsatz im professionellen Umfeld oder Lehre ist es daher nur bedingt geeignet – dafür ist es von der Informatik her zu schwach. Eine kleine Ausnahme ist hier der dritte Teil, welcher zumindest eine gute Starthilfe für den go-to-market Schritt gibt.
Hobbyisten könnten aber ihr Auslangen mit dem Buch finden. Als Richtschnur ob dieses Buch für Sie geeignet ist, können Sie diese Faustregel verwenden: Wer es hilfreich findet wenn noch einmal in einem Absatz der Unterschied zwischen Prozess und Thread erklärt wird oder was jetzt nochmal eine URI oder ein MIME Type ist, dem wird dieses Buch sehr gute Dienste leisten können. Andere laufen Gefahr sich stellenweise zu langweilen, bzw. werden sich teilweise gebremst fühlen im Vorhaben die Programmierung von Android Applikationen zu erlernen.

Fazit: Das von den Autoren erklärte Vorhaben ein Spektrum vom technischen Projektleiter bis zum beginnenden Android Entwickler zu adressieren, hat sich als zu ambitioniert herausgestellt. Es zielt in die Mitte zwischen den beiden Rollen. Doch wer befindet sich dort?


Über den Autor: DI(FH) Simon Lachinger ist als Senior Developer bei dem “Social Media Reiseführer” tripwolf tätig, wo er unter anderem die Tripwolf iPhone Applikation mitentwickelt. Seit mehr als 6 Jahren beschäftigt sich er der Entwicklung von mobilen Applikationen u.a. bei 3united mobile ag oder VeriSign Inc. .

Android 2 – Grundlagen und Programmierung ist am 31.5.2010 in der 2. Auflage im dpunkt.verlag erschienen und kann von dort auch für € 39,90 (D), € 41,10 (A) oder sFR 65,00 bezogen werden.