Geschrieben von & gespeichert unter Android App-Entwicklung, Events.

Diese Woche präsentierte der Android Entwickler Janusz Leidgens auf der Developer Week  in Nürnberg seinen Vortrag „Nützliche Bausteine für Android„.

Kerninhalt des Vortrags sind Frameworks, die von Android-Entwicklern zur Erleichterung der eigenen Entwicklungsarbeit verwendet werden. Metaphorisch erklärend passt hier das Bild der Bausteine, die beim Bau eines Hauses verwendet werden. Diese Softwarebausteine bieten fertige Funktionalität, die verwendet werden kann und sich in der Vergangenheit bewährte.

Neben der Zeitersparnis während der Entwicklungsarbeit bieten Frameworks also als zusätzlichen Vorteil gut getestet zu sein. Gelegentlich werden sogar von anderen Entwicklern Verbesserungen an der Funktionalität der Frameworks vorgenommen, welche sich meist auch in ein fortgeschrittenes eigenes Projekt leicht integrieren lassen.

Nachteil der Frameworks ist jedoch, dass das detaillierte Verständnis über die Funktionsweise verloren geht. Deshalb beginnt Janusz Leidgens seinen Vortrag mit dem Statement:

„If it’s a core business function — do it yourself, no matter what.“

Hiermit meint er, dass Kernfunktionen der eigenen App immer selbst entwickelt werden sollten um die eigene Flexibilität zu erhalten. Wer also eine PDF-Viewer App bereitstellt sollte die Funktion zum PDF-Betrachten selber schreiben.

In anderen Fällen bieten sich Frameworks an.

Zum Finden dieser verweist Janusz Leidgens auf Appbrain.

Der Dienst analysiert alle Apps im Google Play Store und deren verwendete Bibliotheken.
Aus diesen Daten könne man Kriterien für die Bewertung der Bibliotheks-Stabilität ableiten, so der Speaker.

ActionBarSherlock

ActionBarSherlockZiel der ActionBarSherlock ist es eine einheitliche Schnittstelle für die sogenannte ActionBar zu definieren unabhängig von der verwendeten Android Version.
App-Entwickler die auf ActionBarSherlock setzen können optisch moderne Elemente der Android Versionen >= 4.0 auch auf Smartphones mit niedrigeren Android-Versionen verwenden.

DiskLruCache

DiskLruCache ist ein Daten-Cache, des Entwicklers Jake Wharton. Beim Erzeugen des Caches wird eine Speichergröße festgelegt. Dateien werden gecached solange bis die definierte Größe erreicht ist. Gecached werden zum Beispiel Server-Aufrufe. Ein Locking für parallele Datenzugriffe ist noch nicht vorhanden. Für das Caching, können Informationen eines Servers über die Gültigkeitsdauer einer Datei verwendet werden. Es bietet sich an als Key für gecachte Daten die URL der heruntergeladenen Resource zu verwenden.

greenDAO

greenDAO ist ein Objekt Relationship Mapper für Sqlite. Es werden keine Annotations oder Refelections benötigt. Der Mapper vereinfacht den Zugriff auf Sqlite Datenbanken, sodass Entwickler keinen SQL-Code mehr schreiben müssen.

Jackson

Jackson ist eine Framework, dass beim Parsen von Json ein
Mapping von auf eine Model-Klasse vornimmt.
Eine bekannte Alternative zu Jackson ist google-gson. Von seinen Erfahrungen berichtend erwähnt Janusz Leidgens, dass Jackson Geschwindigkeitsvorteile gegenüber google-gson biete.

jackson-framework

SimpleXML

SimpleXML empfiehlt Leidgens zum Parsen von XML-Dateien. Ähnlich wie bei Jackson wird auch hier ein externes Datenformat über Annotations auf Model-Klassen gemappt. Dieses Mapping spart so Leidgens, Entwicklungszeit.

jsoup

Zum Parsen von HTML-Dokumenten wird jsoup empfohlen.

Crittercism

Crittercism ist ein Tool mit welchem Entwickler genauere, detaillSierte Fehlerberichte erhalten.
Darüber hinaus wird ein automatisches Decoding für Proguard angeboten. Somit enthalten die Fehlerberichte ausführliche Stacktraces. Proguard wird zur Obfuscation eingesetzt um Quelltexte der Android Apps zu verschleiern.

Für bedenklich hält es Leidgens, dass Benutzerdaten ohne Zustimmung auch an den amerikanischen Server des Unternehmens gesendet werden, welcher diese auswertet.
Aus Datenschutzrechtlichen Gründen sollte über ein Opt-In Verfahren nachgedacht werden, bei welchem der Benutzer der Verwendung von Crittercism zustimmt.

Eine bekannte Alternative sind die „Google Play bug reports“.

Facebook SDK

Das Facebook SDK bietet Entwicklern Zugriff auf die Graph API und Facebooks’s Single Sign-on Dienst.

Twitter4J

Um mit Twitter-Diensten zu kommunizierten empfiehlt Janusz Leidgens Twitter4J.

Google Play Services – Location

Mit den Location-Services lässt sich die Handyposition einfach bestimmen. Darüber hinaus wird ein Caching der Position über App-Grenzen hinweg ermöglicht. Geofences lassen sich einfach erstellen. Das bedeutet ein App-Entwickler kann ein geografisches Gebiet festlegen. Verlässt ein Benutzer mit seinem Smartphone dieses Gebiet bekommt die Android-App einen Callback.

Nachteil des Dienstes ist, dass eine asynchrone Verbindung zu den Play Services nötig ist.

Google Play Services – Map Api V2

Die Map Api V2 enthält das neue Mapfragment und eine verbesserte API. Somit ist es möglich die Karte zu kippen. Indoormaps sind verfügbar.

Zxing – Barcode Scanner

Der Zxing – Barcode Scanner lässt sich über einen Intent aufrufen und leicht in die eigene App integrieren.

SlidingMenu

SlidingMenu ermöglicht die Integration eines SlideOutMenus über Fragements.
Das Sliding Menu ist sehr gut individuell anpassbar.

Weitere empfohlene Tools &  Frameworks

Darüber hinaus empfiehlt Janusz Leidgens die folgenden Tools & Frameworks

  • Google Support Library
  • Google Play Services
  • StickyListHeaders
  • PullToRefresh
  • Apache Commons IO
  • Minecraft – zum Erstellen von Multipart HTTP-Bodys
  • ImageViewZoom – ein DropIn replacement für ImageView

Fazit

Eines der Kupferwerk Projekte nutzt 15 externe Bibliotheken. Das führt leider dazu, dass die App des Projekts zwischen vier bis fünf Megabyte Speicher zusätzlich verwendet. Um den Speicherverbrauch der eigenen App gering zu halten sollten Entwickler genau bedenken welche Bibliotheken & Frameworks sie wirklich benötigen. Drüberhinaus lässt sich der verwendete Speicher einer App auch mit Proguard optimieren.

Janusz Leidgens zeigt in einem Ausblick dass es neben den Software-Bausteinen die er bisher verwendet noch viele weitere nützliche gibt. Beispielsweise nennt er die folgenden Tools, die er persönlich gerne ausprobieren möchte.

  • Robolectric
  • Retrofit
  • Tape
  • Otto Event Bus
  • Dagger
  • OkHttp
  • Guava
  • ViewPageIndicator
War dieser Artikel hilfreich? Vergleiche bitte kurz Deinen Handy-Tarif mit den seriösen Allnet-Flatrate Tarifen ab 9€ pro Monat oder den Prepaid-Tarifen ohne Grundgebühr. Unseren Vergleich bieten wir unseren Lesern kostenfrei an.