Herausforderungen in der Entwicklung hochwertiger Mobilapplikationen

Die Entwicklung qualitativ hochwertiger Mobilapplikationen ist alles andere als einfach. Grund genug, in diesem Blogpost die wichtigsten Herausforderungen etwas genauer zu betrachten.

Vielfalt

Lassen Sie uns zu Beginn ein kurzes Gedankenspiel machen: Wie viele Smartphone- und Tablet-Hersteller kennen Sie? Wie viele unterschiedliche Modelle haben diese Hersteller im Angebot? Und wie viele unterschiedliche Betriebssystem-Versionen laufen wohl auf all diesen Modellen?

Vermutlich haben Sie in Ihrem Kopf soeben eine ziemlich grosse Zahl ermittelt. In genau dieser grossen Zahl liegt die grösste Herausforderung der App-Entwicklung: die kombinatorische Vielfalt. Klassische Desktop-Software muss meist nur auf einer Plattform laufen. Mobile Apps, die unter Umständen von Millionen Menschen auf der ganzen Welt verwendet werden, hingegen auf den unterschiedlichsten Plattformen. Die drei wichtigsten veränderlichen Einflussfaktoren auf den Entwicklungsaufwand sind:

Gerätetypen
Auf welchen Gerätetypen soll die App laufen? Genügt das Smartphone oder sollen auch Tablets unterstützt werden? Eventuell sogar Smartwatches? Grundsätzlich gilt: Je mehr Arten unterstützt werden sollen, desto grösser der Entwicklungsaufwand.

Hardware
Die Hardware der Mobilgeräte unterscheidet sich in diversen Punkten, beispielsweise: CPU, Memory, Displaygrösse, Sensoren und Aktoren. Erschwerend kommt hinzu, dass die verbauten Teile von unterschiedlicher Qualität sind. Ferner kann der Anwender der App den Zugriff auf Hardware auch untersagen. All diese Aspekte haben wiederum Einfluss auf den Aufwand zur Umsetzung der App.

Betriebssysteme
Die Welt der Desktop-Software ist vergleichsweise einfach: Trotz wachsendem Marktanteil von Apple läuft noch immer auf fast jedem Heimcomputer Microsoft Windows. Nicht so bei Mobilgeräten: Google Android und Apple iOS sind in der Schweiz die beiden dominierenden Betriebssysteme. Sollen möglichst viele Endbenutzer erreicht werden, so muss eine App mindestens für diese beiden Betriebssysteme angeboten werden, was wiederum Mehraufwand bedeutet.

Veränderungen

Können Sie sich an BlackBerry-Geräte erinnern? Oder an das Betriebssystem Symbian OS? Beide konnten noch vor wenigen Jahren beachtliche zweistellige Anteile am Markt für sich beanspruchen. Und beide sind heute so gut wie von der Bildfläche verschwunden, siehe Abbildung unten.

Dies bringt uns zur zweiten grossen Herausforderung: Dem steten Wandel im Mobile-Markt. Produkte, die heute extrem gefragt sind, könnten in wenigen Jahren Auslaufmodelle sein. Wir sollten also Lösungen entwickeln, die möglichst unabhängig von der darunterliegenden Hard- und Software sind. So können wir unsere Anwendungen bei Bedarf auf neue Plattformen migrieren.

Die hohen Änderungsraten haben auch unmittelbare Auswirkungen: Apple, Google und Microsoft geben im Abstand weniger Monate neue Versionen ihrer Betriebssysteme heraus. Dies bedeutet wiederum, dass Apps für neue Versionen optimiert und getestet werden müssen. Und auch «hinter den Kulissen» ist steter Wandel an der Tagesordnung: Wissen über neue Programmiersprachen, Tools und Konzepte muss erarbeitet und angewendet werden. Um in diesem schnelllebigen Umfeld bestehen zu können, braucht es hochqualifiziertes und lernbegieriges Personal.

Verbreitung der Betriebssysteme zwischen 01/2009 und 01/2017 (Quelle):

Hardware

Im Blogpost «Mobile ist mehr als Smartphones» haben wir den Punkt «Hardware» unter dem Aspekt der Vielfalt beleuchtet. Das Thema bietet aber noch weitere Herausforderungen:

Rechenleistung
Im Gegensatz zu Computern besitzen Mobilgeräte weniger Leistung und Speicher. Aus diesem Grund müssen Apps ressourcenschonend und hoch performant implementiert werden.

Verfügbarkeit
Die verfügbare Hardware kann von Gerät zu Gerät sehr unterschiedlich sein. Das gilt insbesondere für Sensoren und Aktoren. Bei modularen Smartphones, wie beispielsweise dem mittlerweile eingestellten Google Ara, kann sich die Hardwareausstattung sogar während des Betriebs ändern. All diese Fälle müssen Apps erkennen und fehlerfrei behandeln können.

Modulares Smartphone «Project Ara»:

Testbarkeit
Das Testen von Hardware-Funktionalität ist eine anspruchsvolle Aufgabe. Wie kann man prüfen, dass eine App bei fehlendem Signalempfang weiterhin funktioniert? Wie kann die Korrektheit einer Kamera- oder Vibrationsfunktionalität geprüft werden? Und wie können solche Tests zwecks Wiederholbarkeit automatisiert werden?

Software

Technologien
An früherer Stelle wurde bereits betont, dass die Vielfalt und Änderungsrate bei Betriebssystemen, Tools und Konzepten extrem hoch ist. Die diversen Möglichkeiten bieten unterschiedliche Vor- und Nachteile, die je nach Anforderungen gegeneinander abgewogen werden müssen. Die Wahl der richtigen Technologie(n) ist mitunter die schwierigste Entscheidung zu Beginn der Entwicklung.

Spezialfälle
Mobile-Apps müssen mit Situationen umgehen können, die bei Desktop-Anwendungen kein Thema sind. Wie verhält sich die App bei einem Ausfall der Internetverbindung? Wie reagiert die Anwendung bei einem eingehenden Telefonanruf? Was passiert, wenn das Betriebssystem die App in den Hintergrund stellt und ihr die CPU entzieht?

Bedienkonzepte
Kleinere Displays und andere Ein- und Ausgabegeräte verlangen nach angemessenen Bedienkonzepten. Die vom PC gewohnten Muster können ohne geeignete Adaptierung nicht auf Mobilgeräte übernommen werden.

User Interface Guidelines
Alle grossen Betriebssystem-Hersteller besitzen Vorgaben und Leitlinien für den Entwurf der grafischen Oberfläche. Die darin enthaltenen Konzepte sind teilweise gleich, haben aber auch grosse Unterschiede. Das Kennen und korrekte Anwenden der Leitlinien ist wichtig für die Zulassung in den offiziellen App Stores und für die Akzeptanz bei den Endbenutzern.

Weiteres

Erwartungshaltung
Endbenutzer haben sehr hohe Erwartungen an die Qualität einer App. Werden die Erwartungen nicht oder nur teilweise erfüllt, so äussert sich das rasch in schlechten Bewertungen im App Store. Dies wiederum kann dem Ansehen der Unternehmung oder Marke empfindlich schaden.

Preisdruck
Hand aufs Herz: Wann haben Sie zum letzten Mal für eine App in einem der App Stores bezahlt? Und wie hoch war der Betrag? Studien zeigen, dass sich viele Endbenutzer mit Gratis-Apps zufriedengeben. Nur in seltenen Fällen wird für eine App bezahlt. Es stellt sich also früh in der Entwicklung die Frage, wie eine App gewinnbringend entwickelt werden kann.

Interdisziplinarität
Die Entwicklung von mobilen Lösungen tangiert die unterschiedlichsten Rollen: Requirements Engineers, UX-Designer, Softwareentwickler, Testmanager, Projektleiter und mehr. Die Zusammenarbeit in interdisziplinären Teams ist zwar spannend und lehrreich, kann aber auch ziemlich anspruchsvoll sein.


Der Text dieses Blogposts stammt aus unserem Booklet «Mobile: Entwicklung, UX & Testing». In diesem erfahren Sie ganz kompakt, welche Chancen Ihnen «Mobile» bietet und was Sie für die Entwicklung hochwertiger Mobilapplikationen benötigen und beachten sollten.

Weitere Blogposts aus dieser Reihe:


 

This entry was posted in App, Booklet, Mobile, UI, Uncategorized, Usability. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *