Native, Hybrid oder Web – Welche Variante ist die beste?

04 Oktober 2015,   By ,   0 Comments

Welche Variante ist die beste um meine App umzusetzen?
In vielen Projekten taucht diese Frage spätestens bei der Aufwandsschätzung im Raum.

Wir stellen hier die einzelnen Varianten vor und probieren die Vor- und Nachteile der Varianten für unterschiedliche Projekte deutlich zu machen.

Welche Variante ist die beste um meine App umzusetzen?
In vielen Projekten taucht diese Frage spätestens bei der Aufwandsschätzung im Raum.

Wir stellen hier die einzelnen Varianten vor und probieren die Vor- und Nachteile der Varianten für Projekte deutlich zu machen.

Native App

Native Apps sind in der jeweiligen Hochsprache geschriebene Anwendungen. Dies sind Apps die ganz spezifisch für ein bestimmtes Betriebssystem selten auch für eine spezielle Version entwickelt wurden und die alle Funktionen und Fähigkeiten optimal ausnutzen können. Auf Apple-Geräten sind das etwa in Objective-C oder Swift geschriebene Applikationen die meist mithilfe von XCode geschrieben werden, für Android-Smartphones und Tablets sind die Anwendungen in Java geschrieben. Native Apps nutzt neben der jeweiligen Sprache auch direkt die bereitgestellten APIs und Programmierrichtlinien des jeweilige Systems. Selten werden Apps auch in anderen Hochsprachen als den Standardsprachen geschrieben, ein gutes Beispiel sind reine C Apps für iOS

Ausgewählte Technologien:
Objective-C (Apple, iOS)
Java (Google, Android)
C# (Microsoft, Windows Phone)

Welche Vorteile haben native Apps?:
Optimaler (Schnell ohne Verzögerung) Zugriff auf die Ressourcen des Geräts
Zugriff auf alle Hardware-Funktionen
Verteilung über die App Stores
Mögliche Bugs können meist gelöstwerden
Etablierte Zahlungsmöglichkeiten, meist durch die Anbieter der App Stores

Welche Nachteile haben native Apps?:
Für jede Plattform ist eine separate Entwicklung notwendig
Hoher Pflege- und Wartungsaufwand
Höhere Erstellungskosten

Optimale Einsatzgebiete aus Kosten/Nutzen Sicht:
Spiele
Hardware- und Performance kritische Apps
Bei sehr hohen Sicherheitsanforderungen

Web-App

Eine Webapp ist eine Website welche Mithilfe z.B. eines Webviews in einen nativen Rahmen geladen wird Also etwas, das mit Hilfe eines Browsers auch über eine URL aufgerufen werden könnte.

Web-Apps können theoretisch auch in gängigen normalen Desktop-Browsern genutzt werden. Auf mobilen Endgeräten können diese zudem ein Icon auf dem Startbildschirm erhalten, um sie schneller aufrufen zu können. Letztlich wird aber die Webseite aufgerufen, und das bedingt in den allermeisten Fällen auch eine Online-Verbindung. In einigen Fälle nutzen Web-Apps auch einen Offlinespeicher der allerdings sehr begrenzt ist und auch anderen technischen Restriktionen unterliegt

Ausgewählte Technologien:
HTML 4/5 inklusive CSS3
WebGL

Welche Vorteile haben Web-Apps?
Kostengünstige Entwicklung
Leicht an unterschiedliche Endgeräte anpassbar
Sehr schnelle Updates

Welche Nachteile haben Web-Apps?
Stark begrenzte Möglichkeiten
Meist schlechtere Usability als andere Apps
Kein Zugriff auf Hardware-Funktionen wie z.B. Kompass, Kamera oder Bluetooth
Keine Distribution über den jeweiligen Appstore (Dies würde dann eine Hybride App erfordern)

Hybride App

Bei diesem Ansatz wird eine Web App mit einer nativen App kombinieren.
Dabei wird möglichst viel Logik über eine Web-App umgesetzt und nur in kritischen Bereichen auf native Entwicklungen zurückgegriffen
Die Bestandteile in der Web-App können sowohl Online geladen werden als auch direkt in der App mitausgeliefert werden.

Ausgewählte Technologien:
HTML 4/5 inklusive CSS3
WebGL
Cordova/Phonegap oder ein selbstentwickelter Rahmen in der jeweiligen Hochsprache

Vorteile:
Plattformübergreifende Entwicklung möglich
Verteilung und Bezahlung über App Stores.
Zugriff auf Hardware-Funktionen wie Kamera und GPS.
Kostengünstige Entwicklung

Nachteile:
Aktualisierungen müssen ebenfalls über die App Stores erfolgen.
Performance-Probleme im Web-App Bereich

Schwerpunkte:
Hybrid Apps sind je nach Einsatz das beste oder schlechteste aus zwei Welten. Die Kosteneinsparung gegenüber rein nativen Apps sprechen für einen Einsatz in nicht 100% Performance hungrigen Apps bei welchen Kosten/Nutzen eine stärkere Rolle spielt.

Crosscompile Apps

Ein neuerer Technologie die es ermöglicht aus einer Codebasis verschiedene Native Apps zu kompilieren.
Dies ermöglicht eine plattform-übergreifende Entwicklung von Features mit Ausspielungen für unterschiedliche (mobile) Betriebssysteme zu entwickeln. Einer der bekannten Anbieter, Xamarin (Mono) verwendet C# welches dann in Java bzw. Objective-C übersetzt wird. Aus Sicht des Betriebssystems sieht eine derartige App nicht anders als eine echt-native aus. Hierbei ist es wichtig das nicht alle Bestandteile durch den Crosscompile abgedeckt werden, bei Xamarin wird das Frontend meist Plattform spezifisch entwickelt. Je nach Projekt können ca. 40-60% des Codes weiter genutzt werden.

Ausgewählte Technologien:
Xamarin

Vorteile:
Plattformübergreifende Entwicklung möglich
Verteilung und Bezahlung über App Stores.
Zugriff auf Hardware-Funktionen wie Kamera und GPS.
Kostengünstigere Entwicklung

Nachteile:
Lizenzkosten pro App
40 – 60% Plattform abhängiger Code

Fazit

Je nach Anforderung gibt es verschiedene Lösungen die zielführend sind. Nach einer Anforderungsanalyse kann eine entsprechende Einschätzung erfolgen, meist sollten hierfür aber auch kriterien wie gewünschte Userexperiance oder zukünftige Planung gewichtet werden. Eine zu schnelle Entscheidung z.B. nur nach dem Kostenaspekt für eine der erwähnten App-Technologien kann zu hohen (Folge-)Kosten und auch negativem Kundenfeedback führen. In einigen Fällen ist ein Mehrstufiges Vorgehen über einen Prototypen mit abschließendem Usertest, das beste Vorgehen. Anschließend kann die App mit den gewonnenen Erkenntnissen auf der richtigen technischen Basis implementiert werden.

    Leave a Reply







    Bleiben Sie auf dem Laufenden