Von der Idee zum Produkt – Prinzipien der App-Entwicklung

Das jährliche Gesamtvolumen an App-Downloads für mobile Betriebssysteme liegt weltweit im dreistelligen Milliardenbereich, Tendenz steigend. Produktiv-Apps, wie auch Sander & Doll sie zur mobilen Arbeitsunterstützung entwickelt, haben daran einen stetig wachsenden Anteil. Da Apps viel Funktion auf kleinstem Raum bieten müssen, folgt die App-Entwicklung anderen Prinzipien als die der Desktop-Anwendungen. Ein innovatives Tätigkeitsfeld, das Fachwissen und Kreativität der Entwickler gleichermaßen fordert. Mit der Etablierung eines „Best-Practice“ über fünf Entwicklungs-Schritte sichert Sander & Doll die hohe Qualität und optimale Nutzbarkeit seiner mobilen Werkzeuge.

Das gesamte Umfeld der mobilen Apps weist im Vergleich zu klassischen Desktops und ihren Anwendungen Besonderheiten auf: Mobilgeräte wie Smartphones oder Tablets sind technische Alleskönner, die ihre Features auf kleinstem Raum komprimieren. Ihre Vielfalt ist sehr hoch und ihr Hardware- und Software-technischer Fortschritt immens. Ihre Hardware bietet meistens Systeme wie WLAN, Bluetooth, GPS, Kamera, Gyroskop und viele weitere out of the box. Aufgrund ihrer geringen Maße ist es natürlich, dass sie unterwegs verwendet werden. Die genutzten Apps sollen jedoch trotzdem jederzeit auf ortsgebundene Datenbestände, beispielsweise Dokumente oder Termine aus dem Büro Zugriff haben. Es gilt nun, eine App an die Voraussetzungen und Anforderungen dieses Umfeldes anzupassen.

Die Anforderungen eruieren

Vor der technischen Umsetzung einer Idee, gilt es also zunächst, die tatsächlichen Anforderungen zu klären. Anhand von beispielhaften Arbeitsabläufen, die die App abbilden soll, werden Schwerpunkte für die Entwicklung definiert. Die Abstimmung dieser Punkte findet im Rahmen von Scrum zwischen dem Product Owner und dem Entwickler statt, der die Machbarkeit und den zeitlichen Aufwand prüft.
Fragen wie „Wie ist der Arbeitsablauf gestaltet?“, „Wie lässt dich der Arbeitsprozess verbessern?“ und „Wie lässt sich die Datenkonsistenz im verteilten System (Cloud Computing) wahren?“ müssen im Vorfeld geklärt werden. Die Beantwortung dieser Fragen ist essenziell, um während der Umsetzung der App nicht nur richtig zu entwickeln, sondern auch das Richtige zu entwickeln.

1. Der horizontale Prototyp

Anhand der definierten Anforderungen erstellt der Entwickler im ersten Schritt einen horizontalen Prototyp, der die Präsentationsschicht darstellt. Sie bildet die gesamte Benutzeroberfläche der App ab und ermöglicht damit einen ersten Eindruck des Look & Feel und der Interaktionsweise aller Funktionen. Die Anwendungslogik, die im Hintergrund der App ausgeführt wird und die Datenbasis, sind in diesem Abschnitt der Entwicklung noch nicht vorhanden.
Mit Hilfe des horizontalen Prototyps findet eine iterative Abstimmung zwischen dem Product Owner und dem Entwickler statt, um frühzeitig den Erwartungen der Kunden gerecht zu werden.

Horizontaler Prototyp

Abbildung: Schematische Darstellung des horizontalen Prototyps

Bereits in diesem frühen Stadium ist es wichtig, sich mit den Anforderungen an die Benutzeroberfläche auseinanderzusetzen. Sander & Doll legt besonderen Wert auf:

Checkliste

Abbildung: Checkliste wichtiger Merkmale

Ein Plus des horizontalen Prototyps liegt in seiner Wiederverwendbarkeit. Viele Segmente lassen sich in die spätere, tatsächliche Implementierung der finalen Produktivitäts-App übernehmen.

2. Die Datenhaltung

Nach Fertigstellung des horizontalen Prototyps beginnt der nächste Schritt, die Umsetzung der Datenhaltung. Diese lässt sich unterteilen in die Datenmodellierung und das Datenschema. Das heißt: Wie werden abstrakte Objekte auf Datenebene abgebildet und in welcher Beziehung stehen sie zueinander. Aus dem Ergebnis erfolgt eine Ableitung in ein Datenbankschema, in dem die Objekte permanent abgelegt werden. Im Bereich von Apps für mobile Betriebssysteme ist das Datenbanksystem SQLite populär.
Ähnlich zum horizontalen Prototyp, lässt sich auch dieser Bereich separat entwickeln. Diese modulare Entwicklung bietet drei Vorteile:

  • Durchführung automatisierter, in sich abgeschlossener Tests
  • Einfaches Zusammenfügen
  • Austauschbarkeit

3. Die Feature-Liste …

Der dritte Schritt bildet die Umsetzung der Features ab. Sander & Doll bietet beispielsweise die Produktivitäts-Apps „Mobilaufmaß“ und „Mobilrapport“ an. Ihre Kernfunktionen umfassen:

  • Anbindung an Lasermessgeräte diverser Hersteller über die Bluetooth-Schnittstelle
  • Abgleich von Dokumenten zwischen Büro und Mobilgerät (auch mehreren)
  • Unterstützung der Fotofunktion und integriertes Versenden von Fotos ins Büro
  • Unterstützung von GPS und der Navigation zum nächsten Kunden
  • Abnahme der Tätigkeit durch den Kunden durch Unterschriftsfunktion

Auch diese Features lassen sich aufgrund ihrer modularen Umsetzung separat testen, zusammenfügen und austauschen.

4. … und ihr technischer Hintergrund

Die technische Umsetzung der Features stellt den Software-Entwickler vor weitere Herausforderungen. Es gilt zu definieren, welche Prinzipien und Systeme verwendet werden sollen, die im Hintergrund der Produktivitäts-App ihren Dienst verrichten. Darunter fallen beispielsweise die Strukturen, in der die Aufgaben abgearbeitet werden, die Kommunikation der einzelnen Module untereinander und die Abstimmung der ermittelten Ergebnisse.

Dem Software-Entwickler stehen mit moderner Mobilgeräte-Hardware diverse Prinzipien zur Verfügung. Eine breite Verfügbarkeit von Mehrkernprozessoren bietet die Möglichkeit, die Architektur auf das sogenannte Multithreading abzustimmen und zu optimieren. Dabei wird die Last der App verteilt, sodass mehrere Aufgaben gleichzeitig erledigt werden können.

Ein Beispiel ist die Darstellung einer Liste innerhalb der App, die dem Anwender Informationen anzeigt, die innerhalb einer Datenbank gespeichert sind. Statt alle Informationen auf einmal zu laden und damit für eine hohe Ressourcenbeanspruchung zu sorgen, können die Informationen dynamisch geladen werden, sodass dem Anwender nur die Teile der Informationen innerhalb der Liste angezeigt werden, deren Bereich er gerade sieht. Während der Anwender durch die Liste scrollt, findet gleichzeitig das Laden der Informationen aus der Datenbank statt. Dabei erfolgt die Lastverteilung auf zwei Abarbeitungsstränge. Dieses Prinzip bietet den großen Vorteil, dass beide Abarbeitungen sich nicht in die Quere kommen und ermöglicht ein weiches Scrolling durch die Liste, was für ein angenehmes Benutzererlebnis sorgt.

Der Software-Entwickler hat bei diesem Prinzip dafür zu sorgen, dass beide Abarbeitungsstränge sich untereinander abstimmen. Die Abstimmung ist ein nicht zu unterschätzender Bereich, da sie Potential für schwer auffindbare Programmierfehler bietet.

Weitere Einsatzgebiete, die diesem Prinzip folgen, sind die Datensynchronisation, die mittels der mobilen Datenverbindung oder des WLANs stattfindet, oder die Fotoverarbeitung, die aufgrund ihrer Struktur noch stärker parallelisierbar ist.

5. Betrieb und Wartung

Nach Abschluss der Entwicklung und der Durchführung erfolgreicher Tests wird die die App veröffentlicht. Doch meistens ist das Projekt damit noch nicht abgeschlossen. Beispielsweise können Kundenwünsche eine Erweiterung der App erforderlich machen. Durch den fortwährenden Fortschritt und die Eingliederung neuer Schnittstellen innerhalb der mobilen Betriebssysteme kann die App im Funktionsumfang mitwachsen. Auch die Änderungen seitens der Betriebssystemhersteller, die mit jeder Major-Release-Version erfolgen, erfordern Anpassungen, um eine Kompatibilität mit der aktuellen Entwicklung zu gewährleisten.
Mithilfe von Nutzungsstatistiken lässt sich ermitteln, welche Features besonders beliebt sind und Absturzberichte helfen beim raschen Auffinden und Beheben von Fehlern in der veröffentlichten Version.

Übersicht

Abbildung: Übersicht über die App-Abstürze auf Kundengeräten

Abschließend lässt sich sagen, dass die App-Entwicklung dem Software-Entwickler einen diversifizierten Arbeitsbereich bietet. Die Entwicklung neuer, angelehnter Produktkategorien, wie die der Smartwatches, zeigt, dass die App-Entwicklung auch künftig spannende Aufgaben bereithält.

Andreas Heisterkamp

Andreas Heisterkamp

Andreas Heisterkamp absolvierte ein Studium zum Bachelor of Science Software Engineering und arbeitet seit 2012 als Software-Entwickler bei Sander & Doll.