Menü
chevron_left
Blog » Warum hybride Apps überflüssig sind.

Warum hybride Apps überflüssig sind.

© Scanrail - Fotolia.com

Besonders in Deutschland werden Apps oft mit hybriden Toolkits entwickelt, z.B. Codorva / PhoneGap. Hartnäckig hält sich das Vorurteil, dass diese Vorgehensweise Vorteile hätte oder sogar „state of the art“ sei. Dies ist mitnichten der Fall, vielmehr sind hybride Apps schlechter bedienbar, langsamer, absturzgefährdet und über die gesamte Lebensspanne der App oft deutlich teurer als native Apps.

Begriffsverwirrung

Kurz zusammengefasst ist mit hybriden Ansätzen gemeint, dass eine App mit Technologien wie HTML, CSS und der Programmiersprache JavaScript entwickelt wird und dennoch als „echte App“ in die App Stores von Google und Apple eingestellt werden kann.

Eine native Entwicklung meint im Gegensatz dazu die Programmierung mit den Haus-Programmiersprachen wie Objective-C und Java sowie Benutzung der vom Hersteller vorgesehenen SDKs (software development kits).

Um eine größtmögliche Marktabdeckung zu erreichen, sollten aktuelle Apps müssen mindestens auf den Betriebssystemen von Google (Android) und Apple (iOS) lauffähig sein. Um dies zu erreichen, müssen Apps aufgrund der unterschiedlichen SDKs und Programmiersprachen quasi doppelt entwickelt werden. Das kostet natürlich Zeit und Geld, genau hier versprechen hybride Ansätze vermeintliche Vorteile: So sollen mit Hilfe der aus dem Web bekannten Standard-Technologien Apps für alle mobilen Endgeräte plattformübergreifend entwickelt werden können.
Prinzipiell funktioniert das auch, weist jedoch eine Vielzahl von Nachteilen auf, die nachfolgend beschrieben sind.

Native plattformübergreifende Entwicklung

Ein dritter Weg besteht aus der Kombination beider Ansätze: der plattformübergreifenden nativen Entwicklung (native cross platform). Auch hier wird auf eine einzige Programmiersprache gesetzt, es entstehen jedoch wirklich native Apps, die in Aussehen, Benutzbarkeit, Geschwindigkeit und Funktion in keiner Weise benachteiligt sind. Diese Apps fühlen sich wie echte Apps an, weil sie welche sind. Eine Möglichkeit, derartige Apps zu entwickeln, bietet die Entwicklungsumgebung Xamarin. Das amerikanische Unternehmen mit mittlerweile schon langer Tradition wurde in 2016 von Microsoft gekauft und unterstützt die App-Entwicklung für iOS, Android und Windows Phone aus einer einzigen Code-Basis heraus, hier wird die Programmiersprache C# verwendet.

Eine tiefere Beschreibung der unterschiedlichen Entwicklungsansätze haben wir bereits in einem früheren Beitrag beschrieben.

Das schlechteste aus zwei Welten

Nun aber zu den angesprochenen Nachteilen von hybriden Apps: Die Programmierung erfolgt hier mit HTML, CSS und Javascript. Das bedeutet, dass die App letztlich im Browser des Mobilgerätes abläuft. Zwar wird dies alles in eine „echte App“ verpackt, die im App Store veröffentlich werden kann. Derartige Apps sind letztlich aber Web-Anwendungen, die in einer Umgebung laufen, die eigentlich nicht dafür gedacht ist. Sehr häufig kommen umfangreiche JavaScript-Frameworks zum Einsatz, die sehr speicherhungrig sind. Entsprechend langsam laden und reagieren solche Apps. Dies wird von Nutzern durchaus negativ wahrgenommen, die App „fühlt sich nicht richtig an“, wie Anwender immer wieder äussern. Umfangreiche Daten lassen sich so ebenfalls kaum verarbeiten und oft kommt es zu ungewollten Abstürzen, die den Nutzer weiter verärgern.

Apps werden häufig nur kurz genutzt, und jede kleine Störung wird sehr schnell negativ wahrgenommen und schlecht bewertet. Nicht ohne Grund haben sich sowohl Google als auch Apple sehr viele Gedanken zur Nutzbarkeit (Usability) gemacht und pochen auf die Einhaltung ihrer Styleguides. Eine entsprechende Usability lässt sich mit hybriden Ansätzen nur sehr schwer - und somit mit deutlich erhöhtem Aufwand - gegenüber echt-nativen Apps realisieren.

Entwicklungskosten

Häufig werden die hohen Entwicklungskosten einer nativen App-Entwicklung angeführt. Durch die plattformübergreifende Entwicklung mit Xamarin ist dieses Argument unserer Erfahrung nach nicht mehr gültig. Im Gegenteil: durch die Unterstützung durch zahlreiche Zusatz-Bibliotheken und Xamarin.Forms lassen sich Xamarin Apps meist sogar deutlich schneller entwickeln, als die entsprechende hybride App.

Und, das wird häufig vergessen oder schlicht ausgeblendet: eine App - die ja hoffentlich erfolgreich sein soll - ist nie fertig und sollte laufend weiterentwickelt werden. Die Technologien verändern sich schnell, es kommen neue Möglichkeiten hinzu, Anwender geben Rückmeldungen und wünschen sich Produktverbesserungen. Dann kommt es darauf an, wie gut der Programm-Code einer App gewartet und ergänzt werden kann. JavaScript und darauf basierende Frameworks führen leider oft zu unverständlichem „Spaghetti-Code“, und ziehen hohe Wartungskosten nach sich!

Ab einer gewissen Größe der App lässt sich zudem beobachten, dass neue Funktionen gar nicht mehr sinnvoll umgesetzt werden können, weil die Basis einfach nicht mehr stimmt. An diesem Punkt muss die App dann komplett neu entwickelt werden, und etliche hybride Apps wurden spätestens dann nativ neu implementiert.

Auch sind JavaScript-Programmierer, die meist von der Web-Entwicklung her kommen, oftmals nicht erfahren genug, um wirklich gute Apps entwickeln zu können.

Insgesamt betrachtet sind die gesamten Entwicklungskosten (total cost of ownership) bei hybriden Ansätzen so deutlich höher, zumal wie beschrieben auch die Ersterstellungskosten bei Xamarin bereits unter denen einer hybriden Entwicklung liegen können. Das betrifft sowohl Apps, die sich an Privatnutzer (B2C) wenden, als auch Apps für den Unternehmenseinsatz (Enterprise Apps, B2B).

Xamarin hat zusammen mit einem weiteren App-Entwickler vor einiger Zeit ein reales App Projekt untersucht und systematisch die Vorteile einer nativen plattformübergreifenden Entwicklung herausgearbeitet.

Die wichtigsten Ergebnisse sind:

  • Der hybride Ansatz konnte ohne zusätzliche native Entwicklung nicht alle gewünschten Funktionalitäten liefern,
  • die echt-native App startet 25% schneller auf dem Gerät,
  • große Datenmengen werden von der nativen App signifikant schneller geladen,
  • der Speicherverbrauch der nativen App ist um 50% geringer, die CPU-Nutzung gleich um 76% niedrige. Dies wirkt sich wiederum positiv auf die Geschwindigkeit, Absturz-Wahrscheinlichkeit und Usability aus,
  • Rechen- und datenintensive Aufgaben (die in der Praxis häufig auftreten) werden bis zu 22x schneller ausgeführt,
  • Die Usability ist ungleich höher, da jeder Nutzer die von ihm auf seinem Endgerät erwartete Benutzerführung erhält. Die Frustrationen und Nutzungs-Abbrüche sind bei nativen Apps erheblich niedriger!
  • Eine native Apps ist für erfahrene Entwickler schneller, einfacher und sicherer zu schreiben. Die Wartungskosten sind niedriger, die Zeit bis zur Marktreife ist geringer.

Fazit

Aus unserer Sicht spricht absolut nichts für eine hybride App-Entwicklung, konsequenterweise bieten wir diese auch nicht an. Die Nachteile sind so offensichtlich, dass wir uns immer wieder fragen, warum derartige Apps noch beauftragt und erstellt werden. 

Für uns ist oberstes Ziel, dass eine mobile App ihre Ziele erreicht und so häufig wie möglich genutzt wird - dies lässt sich nur durch echt-native Apps mit einer größtmöglichen Usability realisieren.  Um die Kosten für unsere Auftraggeber so gering wie möglich zu halten und schnellstmögliche Ergebnisse zu erzielen, setzen wir dabei ausschließlich auf die Programmierung mit Xamarin.

 

Nachtrag: Nicht betrachtet haben wir hier echte Web Apps, die natürlich auch auf mobilen Endgeräten lauffähig sein können, aber nicht über die App Stores verteilt werden. Für derartige Anwendungen sehen wir im Einzelfall durchaus sinnvolle Einsatzgebiete, etwa da, wo die Usability nicht so wichtig erscheint oder im Unternehmenskontext bereits Browser-Anwendungen existieren, die mobilfähig gemacht werden sollen.