99% der Schweizer nutzen das Internet auf einem mobilen Endgerät und haben so jederzeit Zugang zu den wichtigsten Informationen. So sagt es zumindest das Schweizer Bundesamt für Statistik. Da sich die Bedienung von Smartphones und Tablets grundlegend von einer Desktop-Applikation unterscheiden, benötigt es einiges an Know-how und Vorüberlegungen, um eine Applikation zu migrieren. “Write once, run anywhere” funktioniert in diesem Fall leider nicht. Deshalb dreht sich meine heutige Kolumne um die offensichtlichen und weniger sichtbaren Fallstricke in Bezug auf die Entwicklung von Mobile Apps.
Das Offensichtliche: Darstellung und Interaktion
Smartphones und Tablets bieten aufgrund ihrer Grösse weniger Fläche im Vergleich zu einem Monitor. Bestimmte Inhalte können also schlichtweg gar nicht dargestellt werden. Hinzu kommt, dass aufgrund unterschiedlicher Formate auch die Darstellung responsiv sein muss. Während auf Desktops und Tablets das Landscape-Format verwendet wird, nutzen Smartphones eher das Hochformat (Porträt). Auch die Interaktion mit den dargestellten Inhalten unterscheidet sich grundlegend: anstatt Maus und Tastatur kommen auf mobilen Geräten Touch, Gesten und eine Displaytastatur zum Einsatz.
Neben diesen mehr oder minder offensichtlichen Aspekten gibt es auch noch eine Reihe von Design-Konventionen, Best Practices und Trends. Alles das hat direkte Auswirkungen auf das visuelle Design. Für die Entwicklung einer guten, intuitiv benutzbaren mobilen Applikation ist die Einbeziehung von UI/UX-Expertinnen und Experten folglich unumgänglich.
Prominente Beispiele für zumindest nur zögerlich angenommene mobile Applikationen sind die Microsoft Office Anwendungen oder auch iTunes, deren Funktionalität auf dem Smartphone nicht die gleiche Benutzererfahrung bieten konnten wie die Desktop-Anwendungen.
Das weniger Sichtbare: Der Technologie-Stack
Mindestens genauso wichtig wie Design-Themen sind Fragen zum Technologie-Stack, auf welchem eine mobile Applikation aufgebaut werden soll. Um eine Technologie-Entscheidung treffen zu können, sollten Sie folgende Fragen beantworten können:
- Wie und von wem wird die Applikation benutzt?
- Wie daten- und rechenintensiv ist die zu entwickelnde Anwendung?
- Wie viel Zeit haben Sie für die Entwicklung und wie gross ist Ihr Budget?
- Von wem soll die App entwickelt werden?
Die ideale Plattform
Für die Entwicklung von Apps gibt es grundsätzlich zwei Möglichkeiten:
- als native App oder
- als hybride App
Native Apps werden jeweils nur für ein bestimmtes Betriebssystem (z.B. iOS oder Android) und eine Hardware-Umgebung erstellt (z.B. iPhones). Dies verbessert in der Regel die Leistung, da die Anwendung auf das OS und die Hardware optimiert ist. Die (mögliche) Nutzung aller Gerätefunktionen bietet eine tiefe Integration und ein gutes Benutzererlebnis.
Hybride Apps hingegen können durch die Verwendung von Frameworks mit nur einer Codebasis auf mehreren Betriebssystemen eingesetzt werden. Klingt super, oder? Leider bedeutet dieses Argument aber auch nachteiliges. Zum Beispiel ist die Performance im Vergleich zu nativen Anwendungen potenziell geringer. Vor allem bei rechenintensiven Anwendungen kann das sehr störend sein. Und last but not least sind hybride Apps nicht immer in der Lage, alle Features eines mobilen Geräts vollumfänglich zu nutzen.
Kurz zusammengefasst hier meine Orientierungshilfe:
- Eine native App ist dann eine gute Wahl, wenn die Zielnutzer auf einer Plattform unterwegs sind und/oder Ihnen Leistung und direkter Zugriff auf möglichst viele Gerätefunktionen wichtig sind.
- Die hybride App ist die bessere Option, wenn sie eine weniger rechenintensive App für beide grossen Mobile-Plattformen entwickeln wollen.
Für alle anderen Fälle gibt es Pros und Cons, die differenziert beleuchtet werden müssen. Der richtige Umsetzungspartner kann Sie umfassend beraten.
Das richtige Framework
Die Wahl der Plattform hat einen entscheidenden Einfluss auf die Programmiersprache. Und wie zu befürchten war, unterscheiden sich die beiden Paradigmen, was die Nutzung von Programmiersprachen angeht.
Bei der Entwicklung von nativen Anwendungen für Android-basierte Geräte scheint Kotlin neuerdings dem langjährigen Platzhirsch Java den Rang streitig zu machen. Kotlin ist mit Java interoperabel, punktet mit einer einfacheren Struktur und ist damit leichter erlernbar. Bei iOS-Apps kann ebenfalls ein neuer Player punkten: Während bisher Objective-C verwendet wurde, setzen mehr und mehr Entwickler nun auf Swift. Diese Sprache punktet mit einfacher Syntax und – im Vergleich zu Objective-C – besserer Performance.
Bei hybriden Apps ermöglichen Frameworks durch den Einsatz von Webtechnologien die Bereitstellung von vereinheitlichten Schnittstellen. Dadurch können Apps für beide Plattformen mit einer Codebasis bereitgestellt werden. Und hier kommen aktuell die Sprachen Typescript (React Native, Nativescript) und Dart (Flutter) ins Spiel. Der Einsatz dieser scheint das Staffing des Teams zunächst deutlich zu vereinfachen, da aus der Entwicklung von Webapplikationen vorhandenes Know-how wiederverwendet werden kann. Doch der Teufel liegt im Detail. Auch wenn Frameworks die plattformspezifischen Details zunächst kapseln, zeigt die Praxis, dass sich Entwicklungsteams bis zum Release weiterhin mit dieser befassen müssen.
Mein Tipp: Achten Sie bei hybriden Apps im Hinblick auf Investitionssicherheit immer auf die Wartung und Weiterentwicklung der verwendeten Technologien. Dies wird entweder von grossen Tech-Unternehmen wie zum Beispiel von Google (Flutter) und Meta (React) oder aber von einer entsprechend grossen Entwickler-Community gewährleistet. Da sich deren Grösse und Aktivitäten ständig ändern, sollte vor einer Technologie-Entscheidung unbedingt eine Evaluation der Stärke der zugehörigen Community gemacht werden.
Da war doch noch was: die App-Stores
App-Stores sind das zentrale Element für die Vermarktung von mobilen Apps. Der Autorisierungsprozess einer plattformübergreifenden Anwendung in Google Play oder dem Apple Appstore ist zeitaufwändig und setzt die Umsetzung verschiedener Policies voraus. Hierzu zählen beispielsweise eine Auflistung der verarbeiteten Daten einer Anwendung und der Zustimmung dazu, eine Datenschutzrichtlinie inklusive definierter Massnahmen zum Schutz dieser Daten, usw. Aber Vorsicht: diese Policies können sich bei den gängigen Plattformen unterscheiden und so die Aufwände abermals in die Höhe treiben.
Planung ist das halbe Leben
Die Entwicklung von mobilen Applikationen verlangt einige Spezialkenntnisse. Sind diese nicht vorhanden, sollten Sie den Aufwand zur Einarbeitung in diese Themen nicht scheuen. Ansonsten kommt es möglicherweise zum bösen Erwachen. Die App wird wesentlich teurer und – noch viel Schlimmer – womöglich den Ansprüchen von Nutzerinnen und Nutzern nicht gerecht. Das resultiert postwendend in Desinteresse und kritischem Feedback in den Reviews. Deswegen gilt auch hier wie so oft: Gute Planung ist die beste Voraussetzung für den Erfolg eines Softwareprodukts.
Soko Maier ist die Software-Kolumne von inside-it.ch. Hier schreibt Karakun-Verwaltungsrätin Elisabeth Maier regelmässig über Themen rund um Software und Programmiersprachen.