Native App vs Web App vs Hybrid App vs Cross Plattform: Was ist der Unterschied?


Mit der wachsenden Popularität von Smartphones werden von immer mehr Menschen massig viele Mobile Apps aus verschiedensten Gründen verwendet. Sie sind unser ständiger Begleiter und gehören inzwischen zu unserem Alltag. Mit ihnen kommunizieren und informieren wir uns. Spiele und andere Funktionen sind nur einen Klick entfernt.

Für den Nutzer ist oberflächlich betrachtet nicht direkt ersichtlich um was für eine App es sich tatsächlich handelt. Bei einem genaueren Blick lässt sich die Baustruktur des Systems je nach Nutzungszweck erkennen.

Ob Hybrid, Web, Cross Plattform oder Native – der Nutzungszweck entscheidet welche die geeignetere Variante für die Anwendung ist. Und sie kann über den Erfolg der App entscheiden.

Schließlich soll der User eine unkomplizierte und userfreundliche Erfahrung mit ihr machen. Eine Anwendung mit schlechter Usability und Performance wird schnell vom Endgerät gelöscht und wird generell auch nicht nochmal heruntergeladen.

Die verschiedenen Plattformen haben alle ihre Vor- und Nachteile, die je nach Nutzungszweck die effizientere Lösung für die Anwendung sein können.

Native

Die native App wird je nach Betriebssystem konzipiert.

Sie ist maßgeschneidert und funktioniert deshalb fehlerfrei und einheitlich über alle Schnittstellen.

So ist es mit ihr möglich eine hervorragende Performance zu erzielen. Besonders bei leistungsstarken Anwendungen und komplexen Eigenschaften ist sie die richtige Wahl für die Struktur des Systems.

Die individuellen Besonderheiten von iOS und Android sind für den Nutzer vertraut und schaffen einen natürlichen Umgang. Durch die userfreundliche Oberfläche und die optimale Nutzung der Ressourcen der Geräte ist es möglich sich schnell an den Aufbau zu gewöhnen.

Eine qualitativ hochwertig entwickelte, native App wird in der Regel besser bewertet und hat im Store im Gegensatz zu anderen Formaten eine bessere Bewertung.

Da die App mit individuellen Codes geschrieben wird, ist für die spätere Pflege auch ein größerer Aufwand vorhanden. Jede Entwicklung muss für jede Plattform separat eingepflegt werden, was unter Umständen sogar von den jeweiligen Programmierern vorgenommen werden muss. Da es sich um eine speziell angefertigte Software handelt, sind entsprechend höhere Kosten mit der Entwicklung verbunden.

Native Ansätze mit iOS (Objective-C oder Swift), Android (Java) oder Windows Phone (C#/Visual Basic & XAML).

Vorteile/ Nachteile:

(+) Sehr schnell in der Ausführung. Tolle Nutzererfahrung (neudeutsch: User Experience)
(+) Auch hochperformante Lösungen wie Spiele umsetzbar
(+) Sehr guter Zugriff auf Gerätespezifische Funktionalitäten (Gyroskop, Geschwindigkeitsmesser, GPS, Speicher, Kamera, etc.)

(-) Muss für jede Plattform (Android, iOS, Windows Phone, etc.) separat entwickelt werden. Codes lassen sich nicht wiederverwenden.
(-) Unterschiedliche Entwickler notwendig (Android Entwickler, iOS Entwickler, etc.)
(-) Mehr Zeit für das Testing notwendig, da alles separat getestet werden muss

Web

Bei Web Apps handelt es sich um Websites in Form einer App. Die Ansichten werden jeweils für Mobile Endgeräte optimiert dargestellt.

Hauptsächlich wird JavaScript, CSS und HTML5 genutzt um diese Lösungen zu bauen.

Zudem kommen auch Angular, Reach und Vue.js zum Einsatz, um native Funktionalitäten einzubauen (in diesem Fall auch Progressive Web App (PWA) genannt). Dann lassen sich auch Dinge wie Push Notifications, Offline Nutzung und ähnliche umsetzen.

Die Benutzeroberfläche jedoch ist ein Nachteil dieser Web Variante. Sie ist nicht so geschmeidig wie bei Native. Bei einer solchen Weblösung (PWA) handelt es sich schlussendlich um eine Webseite mit nativen Plugins, die natürlich nicht so konform agieren kann wie eine individuell gestaltete native App.

Außerdem besteht zwar auch ohne Internetzugang die Möglichkeit die Anwendung zu nutzen, allerdings ist die Verfügbarkeit im Offline Modus beschränkt, auch wenn das Browser Caching dies unterstützt.

Solche Lösungen können daher sinnvoll sein, wenn man eine erste Mobile Anwendung testen möchte und wenn man sieht das es erfolgreich ist, dann kann immer noch auf eine andere Umsetzungsform umsatteln.

Vorteile/ Nachteile:

(+) Schnell erstellt. Nur eine Code Basis notwendig
(+) Ähnlich zu einer normalen Website
(+) Werden über Browser wie Chrome, Safari und Firefox geladen
(+) Sehr leicht. Speicher und andere Funktionalitäten des mobilen Endgerätes werden nicht beansprucht

(-) Kaum Zugriff auf Gerätesspezifische Funktionalitäten. Über Umwege und nur eingeschränkt möglich
(-) Nicht möglich über die unterschiedlichen Stores zu vertreiben

Hybrid

Wenn Nativ und Web heiraten und ein Kind bekommen würden, währe es eine Hybrid App.

Mann installiert es ganz normal auf dem Handy wie eine Native Lösung, aber innerhalb der App läuft eine Web App.

Hybrid, wie auch beim Web Ansatz, werden mit JavaScript, HTML und CSS gebaut und laufen innerhalb einer sogeannten „Webview“, einem vereinfachten Browser innerhalb einer App.

Sie ist besonders benutzerfreundlich und auch die Entwicklungskosten sind weitaus geringer als bei Native.

Durch den nativen Code kann die Anwendung auf die Hardware der Endgeräte zugreifen und macht sich somit die Vorteile Web und Native zu Nutze. So können Einschränkungen der Web Apps durch native Komponenten reguliert werden.

Bei den vorhandenen nativen Inhalten ist es möglich die Software auch in die App-Stores bereitzustellen.

Besonders für Unternehmen, die bereits über eine Webseite verfügen und eine mobile Applikation entwickeln möchten, ist Hybrid die passende Variante.

Für die verschiedenen Betriebssysteme wie Android und iOS brauchen keine zwei separaten Versionen entwickelt werden. Stattdessen reicht es aus eine Anwendung zu erstellen die auf allen Plattformen fehlerfrei funktioniert. So entstehen natürlich geringere Kosten als bei einer nativen App. Bis zu 60 % an Entwicklungskosten können hierbei eingespart werden.

Hybrid lässt sich auch offline nutzen.

Technologien für Hybrid sind Cordova, Trigger.IO, Ionic Framework und die Telerik Platform. Zudem kommen Onsen UI, Kendo UI und Sencha Touch zum Einsatz, sollte man zum Beispiel Cordova verwenden, da man hierdurch das Frontend der Lösung besser steuern kann.

Bis zu einem bestimmten Grad kann für einen nativen Look mit dieser Technologie gesorgt werden. Allerdings ist es nicht möglich eine rein native Nutzungserfahrung zu erschaffen.

In der Regel ist Hybrid in der Performance langsamer als Native. Besonders leistungsstarke Anwendungen und mobile Games sind bei Native besser aufgehoben.

Unterschied von Hybrid und Web: Bei dem zuvor beschriebenen Web Ansatz wird die Lösung optimiert für den mobilen Webbrowser (Chrome, Safari, Firefoxe) angezeigt. Bei Hybrid handelt es sich um eine „übliche“ App, welche auch über einen Browser, innerhalb der App selbst, läuft (Webview).

Vorteile/ Nachteile:

(+) Code kann über unterschiedliche Versionen geteilt werden
(+) Viele Webentwickler kennen JavaScript, HTML, CSS bereits sehr gut
(+) Bibliotheken wie Ember, AngularJS, React, PaperJS können genutzt werden
(+) Updates der Lösung über die Stores vereinfacht möglich

(-) Der ganze Code kann nicht geteilt werden, manche Teile müssen Native geschrieben werden
(-) Nicht so schnell wie Native
(-) Zugang zu Gerätespezifischen Funktionalitäten hängen vom jeweiligen Framework und vom Plugin Support ab

Cross Plattform

Mit dem Cross Plattform Ansatz können native Apps für verschiedene Plattformen in nur einer Codesprache entwickelt werden.

Meistens wird eine „Zwischensprache“ wie JavaScript verwendet, welche wiederum nicht native für das jeweilige Betriebssystem ist. Das bedeutet dann, dass ein Teil oder in manchen Fällen der ganze Code über unterschiedliche Plattformen geteilt wird, beispielsweise für iOS und Android.

Außer der Oberfläche reicht das einmalige Entwickeln des Kerns der Anwendung vollkommen aus. So kann zum Beispiel bei einer späteren nachträglichen Erweiterung dies über Schnittstellen zentral vorgenommen werden, dabei wirkt sich die Änderung auf alle Betriebssysteme aus.

Allerdings verfügt Cross Plattform über weniger Flexibilität als die native Variante. Des Weiteren können für die Nutzung von Cross Plattform Frameworks Lizenzgebühren entstehen.

Ein weiterer Punkt ist, dass Entwickler sowohl in den jeweiligen Betriebssystemen (Android, iOS, Windows) als auch in Sachen Framework genügend Erfahrung mitbringen sollten.

Cross-platform Systeme werden mit Technologien wie Xamarin, Appcelerator, React Native und NativeScript erstellt.

Am Beispiel Xamarin:

Xamarin lässt den Entwickler Native Lösungen für Apple, Android und Windows Geräte mit einer einzigen „Zwischensprache“ C# und einem einzigen IDE (Integrated Developement Entvironment, ermöglicht das vereinfachte Programmieren für Softwareentwickler), beispielsweise Visual Studio oder Xamarin Studio, entwickeln. Mann kann also mit C# und Xamarin für alle diese Endgeräte (auf welchen iOS, Android oder Windows Phone laufen) Lösungen erstellen, anstatt alles zu erlernen (Objective-C, Java, C#). Xamarin übersetzt – kompiliert – alle die in C# geschriebenen Codes und lässt sie auf den anderen Plattformen (Android, iOS, Windows Phone) laufen.

Unterschied von Cross Plattform zu Hybrid: Der Unterschied ist zum Teil fliessend. An vielen Stellen werden beide Begriffe synonym verwendet. Dennoch lässt sich sagen, dass Cross Plattform sich zu Hybrid dadurch unterscheidet, dass Hybrid meistens auf HTML5 basiert und einen Mix aus Nativer App und Web App ist und Cross Plattform eher nur nach Nativen Konzepten arbeitet.

Vorteile/ Nachteile:

(+) Weniger Aufwand als für Native (bis zu 80 Prozent des Codes kann pro Plattform wiederverwendet werden)
(+) Das User Interface (Nutzeroberfläche) rendered „Native“ controls und ist damit fast so schnell wie Native Ansätze
(+) Im Idealfall kann nur ein Programmierer an allen Lösungen arbeiten

(-) Kompliziert in der Entwicklung. Daher werden erfahrene Entwickler benötigt, die es aufgrund der Neue des Ansatzes kaum gibt
(-) Der Entwickler muss sich mit dem jeweiligen Framework (Xamarin, React Native, etc.) sehr gut auskennen, als auch mit Nativem Code wie C#, Objective-C und Java
(-) Der Aufwand kann zum Teil, durch die vielen Anpassungen, so aufwendig werden wie Native Anwendungen
(-) Geschwindigkeit kann beeinflusst sein, da einige „Zwischensprachen“ „on the fly“/ während des Programmaufrufs übersetzt werden müssen

Fazit

Eins vorweg: es gibt nicht die eine ultimative Bauweise mit der sich jede Anwendung optimal gestalten lässt. Es kommt bei der Wahl ganz auf die Bedürfnisse und die vorhandenen Gegebenheiten an.

Hybrid kann in manchen Fällen die richtige Lösung sein. Besonders für Anwendungen die nicht so eine extreme Performance mit sich bringen müssen aber dennoch einen Nativen Zugriff (auf Smartphonespeicher, Kamera, etc.) benötigen, ist sie die optimale Anwendung.

Für leistungsstarke Systeme fahren Sie natürlich mit der native App am besten. Die rechenintensive Lösung eignet sich zum Beispiel für Spiele besonders gut.

Falls Sie ein geringes Budget zur Verfügung haben und eine plattformübergreifende Anwendung benötigen, ist die Web App für Sie am besten geeignet. Speziell in Fällen, wo die Lösung nur einfache Funktionalitäten hat, wie „Bilder anzeigen“, „Videos abspielen“, „Texte anzeigen“, etc.

Für Unternehmen und Abteilungen in diesen ist oftmals Cross Plattform, im Zusammenhang mit Xamarin der richtige Ansatz. Viele Unternehmen nutzen bereits .NET Technologien und C# und Programmierer können sich relativ gut in Xamarin einarbeiten. Der Entwicklungsaufwand sinkt zudem auch, dadurch dass man nicht separat programmiert. Und man braucht auch nicht seaparate Softwareentwickler für Android, iOS und Windows.

Neben der Vision von der Software sind reale Bedingungen wie Aufwand, Budget, Zeit und Ziel wichtige Faktoren bei der Entscheidung.

Des Weiteren ist der Zweck den die App erfüllen soll maßgebend. Soll sie als ständiges Instrument im Alltag involviert oder einfach Informationen kurz und bündig zusammenstellen? Hier kommt es ganz auf Ihre Wünsche an, die auch wirtschaftlich als Projekt umsetzbar sein sollten.

Welche Form der Umsetzung bevorzugen Sie?

Interessante Beiträge:
Informationen zu Web, Native und Hybrid auf Incloud.de
Auch auf app3null werden die unterschiedlichen App Varianten miteinander verglichen

Flickr.com / SCIS / Scott / MeeGo


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar