09. Januar 2019

Mobile Apps entwickeln - so wählen Sie das Setup für Ihr Unternehmen

Die App-Stores von Apple und Google verzeichneten im Jahr 2016 laut einer Studie von App Annie über 90 Milliarden Downloads. Jeder Europäer verbringt täglich 90 Minuten in Apps auf seinem Mobile-Phone. Ja, es stimmt, wenn Unternehmen sagen: Wir brauchen eine App. In diesem Blog-Artikel fassen wir die verschiedenen App-Möglichkeiten zusammen und beschreiben die Vor- und Nachteile für Auftraggeber.

Mobile app development

Mobile Apps sind in. Der Umsatz 2016 von Apps stieg in Deutschland um 40% auf 750 Millionen Dollar. 1.6 Millionen neue Jobs schuf die Apponomics im Jahr 2016 in Europa. Die Traffic-Zahlen sprechen eine eindeutige Sprache: Seit Ende 2015 surfen mehr Menschen mobil im Internet als über einen stationären Computer. Unternehmen investieren zu Recht in eine angepasste Ansprache ihrer mobilen Kunden oder in die Digitalisierung mobiler Prozesse für Kundendienst, Marketing oder Lagerbewirtschaftung.

Die Gründe für eine App sind vielfältig: Kundenansprache im mobilen Kontext, Präsenz markieren im schnellst-wachsenden Umfeld, Effizienzsteigerung bei internen und externen Prozessen. Das Spektrum für Applikationen reicht von einer simplen, responsiven Website bis hin zu einer eigens für einen spezifischen Gerätetyp entwickelten Applikation für interne Business-Prozesse. Entsprechend viele Möglichkeiten für das App-Development bieten sich an.

Web- vs. Native-Apps

Um sich einen Überblick zu verschaffen, helfen Kategorien. Ein Systematisierungsversuch greift dabei die Unterscheidung von Web-Applikationen und Native Applikationen auf. Eine mobile Web-App läuft innerhalb der auf dem Handy installierten Browser, die auf Standards beruhen. Die Applikation muss grob gesagt nur einmal geschrieben werden und läuft auf allen Geräten und Betriebssystemen, jedoch nur innerhalb des Webbrowsers, was einer etwas isolierten Sandbox gleichkommt. Ein responsiver Webshop z.B. funktioniert auf dem Desktop-Computer, auf dem Handy und auf dem Tablet gleichermassen.

Eine Native App hingegen ist für die Hardware und für die Geräteschnittstelle eines spezifischen Geräts programmiert. Ein grafisch anspruchsvolles Handy-Game benötigt genau diesen tiefen Systemeingriff, um optimale Performance zu garantieren. Über die Native API erhalten Entwickler Zugriff auf Kamera, Datenspeicher, GPS oder gespeicherte Kontaktdaten. Sehr vorteilhaft zum Beispiel für eine App wie Tripadvisor, um in der App geschossene Fotos automatisch mit einem Geotag zu versehen und an seinen Freundeskreis zu senden. Der Haken daran ist, dass sich die Geräte-APIs stark voneinander unterscheiden und der Entwicklungsaufwand für die Abdeckung vieler Plattformen enorm ist.

Varianten der App-Entwicklung

Hier kommen nun verschiedene Ansätze zum Tragen, die sich auf einem Spektrum von «Web» hin zu «Native» einteilen lassen.

Range

Reine Web- resp. Native-Apps haben wir bereits oben besprochen. Wir stellen die drei Mischformen vor:

Progressive Web App

Eine Progressive Web App (PWA) bleibt eine Web-Applikation, bedient sich jedoch sogenannter Service Worker, um auf naheliegende und standardisierte Elemente des Geräts zugreifen zu können. Ebenso speichert eine PWA Daten in den Cache (Zwischenspeicher) des Telefons, um einen Offline-Betrieb sicherzustellen. Eine PWA wird direkt über den Browser aufgerufen, kann also ohne aktiven Download einer App aus einer Google-Suche auf dem Handy gestartet werden. Auf Android-Geräten meldet eine PWA selbständig, dass sie als Web-App lokal auf dem Gerät installiert werden kann. Einmal installiert, können Push-Nachrichten für z.B. Updates verschickt werden. Eine PWA funktioniert grundsätzlich auf allen Geräten und Betriebssystemen, der Zugriff auf die Geräte-Hardware und -Daten ist jedoch eingeschränkt. Zudem kann eine PWA nicht über den App Store oder Google Play vertrieben werden.

Hybrid App

Eine Hybrid App nutzt einfach gesprochen einen nativen Rahmen und bildet darin Web-Content ab. Frameworks wie das JavaScript-basierte «Cordova» stellen den Rahmen für die mobilen Geräte bereit. Darauf setzen verschiedene UI-Frameworks wie «Ionic» auf. Der Inhalt, der in diesem Rahmen angezeigt wird, basiert wiederum auf Web-Standards und kann von allen Geräten interpretiert werden. Es ist wie ein Bilderrahmen mit vielfältigsten Aufhänge-Vorrichtungen. Passend auf viele unterschiedliche Haken in der Wand, wobei die darin eingespannte Leinwand, also der Inhalt, austauschbar bleibt. Entwickler erstellen die Inhalte in HTML5, CSS und JavaScript einmal. Das Framework übernimmt die «Übersetzung» für die verschiedenen Geräte und Betriebssysteme und bietet weitreichenden Zugriff auf Hardware-Elemente und Speicher-Daten.

Da es sich beim Rahmen um Native Apps handelt, die bei Gebrauch Web-Content hinzuladen, können Unternehmen ihre Apps in den verschiedenen App-Plattformen für iOS, Android und Windows vertreiben. Die App installiert sich lokal auf dem Gerät des Benutzers, womit Kommunikation und Zugriff gesichert ist. Der grosse Vorteil besteht darin, dass der Entwickler den Inhalt nur einmal programmieren muss, um im Endprodukt drei quasi-Native Apps zu erhalten. Obwohl der Zugriff auf das Gerät selber weiter reicht als bei einer PWA, muss auch bei einer Hybrid App sehr genau auf Performance der Ladezeiten und Rechenleistung geachtet werden. Häufig werden Inhalte auch in einer Hybrid App aus dem Internet geladen und in Real-Time aufbereitet.

Cross-Platform-App

Diese Variante der App-Entwicklung bedient sich Entwicklungstools wie Xamarin, React Native oder Unity. Der Entwickler programmiert in der Sprache des Tools, bei Xamarin z.B. C#, das Tool selber wandelt bei der Erstellung den Quellcode so um, dass Native Apps für iOS, Android und Windows Phone entstehen. Je nach Feature-Satz, Zugriffsanforderungen auf spezifische Geräteteile oder Einbindung von Dritten wie Facebook oder Google kommt man jedoch nicht darum herum, die einzelnen aus dem Quellcode erstellten Apps individuell anzupassen. Ebenso kann diese Art der App-Erstellung Probleme bei der Generierung von reinen HTML5-Web-Apps mit sich bringen, da die Standards nicht zu 100% eingehalten werden können. Grob gesagt können ca. 80% des Codes einmalig auf dem Tool programmiert werden, 20% Entwicklungsaufwand fällt jedoch auf den verschiedenen App-Derivaten für Individualisierung an.

Als Vorteil muss dafür der höchst individuelle Zugriff auf jeden Gerätetypen mit allen Sensoren und Drittschnittstellen ins Feld geführt werden. Ebenso können diese Apps über die reichweiten-starken Stores bei Apple und Google vertrieben werden. Der Mehraufwand muss gerechtfertigt sein, dann lohnen sich Cross-Platform-Apps sehr, da doch ein grosser Anteil nur einmal programmiert werden muss.

Marc Jenzer
Ihr Ansprechpartner
@marc.jenzer