Web-, Native und hybride App Entwicklung – Wo sind die Unterschiede?
Web-, Native und hybride App Entwicklung – Wo sind die Unterschiede?
In diesem Artikel stellen wir die drei unterschiedlichen Möglichkeiten für die Entwicklung von Apps vor: Web vs. Nativ vs. Hybrid.
Abhängig von den Unternehmens- und Gesamtzielen kann die Wahl der Entwicklungsplattform den Erfolg oder Misserfolg der Strategie für Mobile Devices bestimmen. Wenn man sich daher entscheidet, eine Web-, native oder hybride App zu entwickeln, gibt es eine Vielzahl von Faktoren die man berücksichtigen sollte. In diesem Artikel werden alle drei Entwicklungsansätze untersucht und die Vor- und Nachteile aus der Sicht eines Unternehmens beschrieben, welches eine App entwickeln möchte.
Native App-Entwicklung
Native Apps sind für bestimmte Betriebssysteme konzipiert und werden in den dafür gängigen Programmiersprachen geschrieben (z.B. Swift und Objective-C für iOS-Apps und Java für Android-Apps). Native Anwendungen sind leistungsstark und reaktionsschnell, werden in App-Stores zum Download angeboten, bieten individualisierte Interaktionsmöglichkeiten und benötigen keine Internetverbindung. Insgesamt bieten native Apps ein optimales Benutzererlebnis, sind aber teurer in der Entwicklung als die anderen beiden Optionen.
Web App Entwicklung
Webanwendungen werden in Webbrowsern eingebettet und sind im Wesentlichen Websites, die wie native Anwendungen aussehen. Anstatt die Anwendung jedoch wie eine native Anwendung auf dem Homescreen des Geräts zu installieren, interagieren Benutzer mit der Anwendung über eine Website. Diese Art von App ist einfach zu erstellen, einfach zu warten und eine kostengünstige Option; sie benötigt jedoch einen Webbrowser, sind deutlich langsamer als native Apps und haben keinen Zugriff auf Geräte-APIs oder bestimmte Hardware (wie Bluetooth oder GPS). Web-Apps sind auch weniger interaktiv als native Apps was jedoch in der Regel nicht der Limitierung durch Hardware oder Programmanbindungen geschuldet ist, sondern vielmehr den häufig einhergehenden niedrigen Budgets für solche Apps.
Hybride App-Entwicklung
Hybride Apps sind im Wesentlichen eine Kombination aus nativen und Web-Apps. Eine Hybrid-App besteht aus zwei Teilen: Teil Eins ist die eigentliche Anwendung, programmiert mit Webtechnologien. Teil Zwei ist der native Wrapper, der heruntergeladen werden kann und den Anwendungscode über eine Webansicht lädt. Hybride Anwendungen sind kostengünstiger als native Anwendungen, benötigen keinen Browser und können Geräte-APIs nutzen; sie sind jedoch etwas langsamer als native Anwendungen.
Web App Entwicklung
Kommen wir zu den Details…
Inwiefern unterscheiden sich Web-Apps von einer Website? Eine Website bietet den Benutzern in der Regel mehr Informationen als normalerweise auf einer mobilen Website angezeigt wird, während eine Web-App diese Informationen komprimiert, um die Benutzerfreundlichkeit zu verbessern. Webanwendungen werden in Browsern wie Chrome, Safari oder Firefox geladen und müssen nicht aus dem Appstore (wie normale Apps) heruntergeladen werden. Webanwendungen nehmen auch keinen Speicherplatz auf dem Gerät des Benutzers ein da sie jedes Mal neu geladen werden müssen.
Man kann Web-Apps auch als neue Technologie betrachten. Bei modernen Web Apps ist es mitunter unmöglich zu wissen, ob es sich um eine Web App handelt oder einfach um eine Website die Responsive, also für unterschiedliche Displaygrößen optimiert ist.
Web Apps müssen also nicht aus den Appstores geladen, sondern können einfach über den Browser aufgerufen werden. Der Code einer Web App wird daher nicht in der plattformtypischen Programmiersprache geschrieben sondern – wie jede anderen Website auch – mit Webtechnologien wie HTML, CSS und Javascript. Webanwendungen sind also im Wesentlichen Websites, die wie native Anwendungen aussehen, aber anstatt aus dem Appstore installiert zu werden, kann der Benutzer sie einfach über eine URL aufrufen.
Wie erstellt man eine Web-App?
Normalerweise werden Webanwendungen mit den eben genannten Programmier- bzw. Darstellungssprachen geschrieben und in einem Browser (Safari, Chrome, etc.) ausgeführt. Es gibt daher kein Software Development Kit für Entwickler, das verwendet werden kann; es gibt jedoch Vorlagen (Templates), mit denen Entwickler arbeiten können.
Wenn man sich für die Entwicklung einer Web-App entscheidet, kann diese schnell und kostengünstig erstellt werden.
Was sind Progressive Web Apps?
Progressive Web-Apps sind eine Mischung aus normalen Webseiten und mobilen Apps. Webanwendungen fehlt die Funktionalität nativer Anwendungen (= Geräte-APIs), wie z.B. das Versenden von Push-Benachrichtigungen oder der Möglichkeit der Nutzung ohne Internetverbindung. Browser und Webanwendungen werden jedoch immer fortschrittlicher. Progressive Webanwendungen können daher zunehmend auch Funktionen nutzen, die denen nativer Anwendungen ähnlich sind. Hier sind einige dieser Funktionalitäten:
- Das Versenden von Push-Benachrichtigungen
- Die Verwendung von Touch-Gesten und den Beschleunigungssensor von Mobilgeräten
- Nutzung von Hardwarekomponenten wie z.B. Vibration.
Trotz der Verbesserungen, die progressive Web-Apps bieten, ist ein großer Nachteil, dass sie nur mit Google Chrome kompatibel sind. Das bedeutet, dass iOS-Benutzer diese Art von App nicht verwenden können. Zwar gibt es auch Chrome für iOS, jedoch baut dieser auf dem Safari Browser auf und ist an dessen Limitierung gebunden. In Anbetracht der Tatsache, dass iPhone Besitzer im Durchschnitt das meiste Geld für Apps ausgeben, kann dies je nach Ihren Unternehmenszielen ein erheblicher Nachteil sein.
Vorteile von Web Apps
- Einfach zu programmieren
- Änderungen können schneller veröffentlicht werden
- Kostengünstig
- Die App kann auf jedem Browser aufgerufen werden und ist daher vollkommen plattformunabhängig
Nachteile von Web Apps
- Unkomfortabel, da Umweg über Browser notwendig ist (und dort ggf. noch die URL eingegeben werden muss)
- Deutlich langsamer als native Anwendungen
- Weniger interaktiv als native Anwendungen
- Kein Shortcut auf dem Homescreen, wie bei einer App aus dem Appstore
- Geräte APIs können nicht oder nur eingeschränkt genutzt werden
Native App Entwicklung
Native Apps sind am verbreitetsten. Sie werden für bestimmte Plattformen konzipiert und in den Programmiersprachen der jeweiligen Plattform geschrieben, z.B. Swift und Objective-C für native iOS-Anwendungen und Java für native Android-Anwendungen. Native Apps werden mit Hilfe der jeweiligen Integrierten Entwicklungsumgebung (IDE, Integrated Development Environment) für die Betriebssysteme erstellt.
Sowohl Apple als auch Google bieten App-Entwicklern eigene Entwicklungstools, UI-Kits (mit Buttons, Eingabefeldern etc. für einen einheitlichen Look) und SDKs. Die meisten Unternehmen haben bisher in die Entwicklung nativer Apps investiert, da sie eine Vielzahl von Vorteilen im Vergleich zu Web Apps hat.
Vorteile von nativen Apps
- Native Anwendungen sind leistungsstark und reaktionsschnell, da sie in der jeweiligen Programmiersprache direkt für die Plattform entwickelt werden
- Sie können über die App-Stores heruntergeladen werden
- Sie bieten die beste User Expierence (z.B. kaum Verzögerung bei Interaktion da die benötigten Informationen meist sofort verfügbar sind)
- Zugriff auf den gesamten Funktionsumfang der jeweiligen Plattform
- Eine Internetverbindung ist nicht erforderlich, hängt aber von der Funktionalität ab
- Insgesamt bessere Benutzerfreundlichkeit. Für den Benutzer ist der Ablauf natürlicher, da jede Plattform über spezifische UI-Standards verfügt.
Nachteile von nativen Apps
- Für die Programmierung muss eine spezielle Programmiersprache erlernt werden oder spezialisierte Entwickler engagiert werden, die i.d.R. teurer sind als Webentwickler
- Aufwändigere Programmierung erfordert mehr Zeit bei der Entwicklung was diese wiederum verteuert
- Prüfung der Apps in den Appstores dauert häufig lange (z.B. bei Apple regelmäßig mehrere Wochen) und verzögert somit den Rollout neuer Funktionen
- Nicht die beste Option für sehr einfache Anwendungen.
Auch erfordern native Apps Aktualisierungen über den Appstore, bevor neue Features genutzt werden können. Bei Webanwendungen ist der neueste Stand nach einmaligem Reload der Website sofort auf dem Gerät.
Die Investitionskosten sind bei der Entwicklung nativer Apps also erstmal deutlich höher, jedoch sollte man den Mehrwert durch die bessere Benutzerfreundlichkeit und die Möglichkeit der Nutzung von Geräte APIs berücksichtigen.
Hybride App-Entwicklung
Hybride Apps funktionieren plattformübergreifend und verhalten sich wie native Apps. Eine Hybrid-App ist im Wesentlichen eine Kombination aus einer nativen App und einer Web-App. Obwohl diese Art von App auf einem Gerät wie eine native App installiert werden kann, ist es technisch gesehen eine Web-App, jedoch ohne deren Nachteile. Im Grunde genommen werden solche Apps mit HTML, CSS oder JavaScript erstellt und in einer Webansicht (dem nativen Wrapper) ausgeführt.
Die hybride App-Entwicklung kann im Wesentlichen alles, was auch HTML5 kann, während sie aber gleichzeitig native Geräte APIs implementiert. Dies wird durch einen Wrapper möglich, der als Brücke zwischen den Plattformen dient.
Eine hybride App besteht aus zwei Teilen: Erstens, dem Backend-Code, der mit Sprachen wie HTML, CSS oder JavaScript erstellt wird, und zweitens, einem nativen Wrapper, der den Anwendungscode in einer Art Vollbild-Browser darstellt.
Ähnlich wie bei einer nativen App wird in der Webansicht jedoch keine Website aus dem Internet dargestellt, sondern die Webtechnologien genauso wie andere Programmier- und Darstellungssprachen dazu genutzt, die App zum Leben zu erwecken. Sämtliche benötigten Ressourcen (z.B. Datenbanken, Mediendateien, Algorithmen) können daher innerhalb der Anwendungen zur Verfügung gestellt werden. Die eigentliche App wird also im Grunde genommen lediglich mit anderen Frameworks entwickelt und steht in Punkto Funktionalität und Design einer nativen App in nichts nach.
Durch den Aufbau der App auf plattformübergreifenden Quellcode (aus Web Apps) und die Möglichkeit der Nutzung der Geräte APIs (aus nativen Apps) ergibt sich daher in vielerlei Hinsicht die Kombination des besten der beiden Varianten.
Die Ausführung von Funktionen direkt auf dem Mobilgerät und die Nutzung von Templates bei der Erstellung von Layouts machen die Entwicklung von hybriden Apps in vielen Fällen zusätzlich wirtschaftlich äußerst attraktiv.
Vorteile der hybriden App-Entwicklung
- Basierend auf Web-Technologie, ist daher verhältnismäßig einfach in der Entwicklung
- 30% günstiger als eine native App
- Weitere Einsparung möglich bei gleichzeitiger Entwicklung für alle Plattformen
- Look & Feel wie eine native App da z.B. das Ionic Framework Interaktionselemente (wie z.B. Buttons, Regler, Eingabefelder etc.) automatisch im nativen Look darstellt
- Im Gegensatz zu einer Web-Applikation wird kein Browser benötigt.
- Zugriff auf die internen APIs des Geräts z.B. Zugriff auf Speicher, Push-Notifications, Vibration und Konnektivität
Nachteile der Hybrid-Applikationsentwicklung
- Bei grafikintensiven Anwendungen (z.B. Spielen) langsamer als native Apps
- Schnittstellen für Geräte-APIs müssen von jedem Wrapper neu angebunden werden (um z.B. Zugriff auf Vibration oder GPS zu erhalten)
Bei der Entwicklung hybrider Anwendungen muss man sich mit Problemen auseinandersetzen, die sowohl von nativen Systemen als auch von hybriden Systemen stammen, was die Fehlerbehebung erschwert.
Web vs. Native vs. Hybrid: Welcher Ansatz ist der Beste?
Die Entscheidung, ob man eine Web-, native oder hybride App entwickeln lassen möchte, sollte auf den Unternehmenszielen basieren. Was ist also die beste Entscheidung?
Wenn man eine einfache Anwendung benötigt, die nur gelegentlich genutzt wird, reicht eine Web App vollkommen aus. Möchte man das Maximum an Performance und Individualisierbarkeit sollte die Wahl auf die native Programmierung fallen. Möchte man eine App mit dem besten Preis-Leistungsverhältnis kommt nur die hybride App Entwicklung in Frage.
Fazit
Ab einem bestimmten Investitionsvolumen ist es außerdem sinnvoll, mit einem App-Entwicklungsunternehmen zusammenzuarbeiten, das sich auf plattformspezifisches Design und Entwicklung spezialisiert hat.
Die Debatte, welche Art von App die beste ist, ist auch heute noch sehr relevant, da die Grenzen zwischen den drei Ansätzen immer mehr verschwimmen. Wichtig ist vor allem, dass einem bewusst ist, dass man sich nicht für eine Technologie entscheiden sollte, sondern dass man prüft, was das Unternehmen mit der App erreichen möchte. Wenn man einen Ansatz wählt, der es der App z.B. nicht ermöglicht, Gerätefunktionen zu nutzen, dann hat man am Ende viel Zeit und Geld in den Sand gesetzt und muss noch einmal neu anfangen. Im Falle eines Umstiegs von Web App auf hybride App ist das zwar noch verhältnismäßig einfach möglich, wird jedoch der Schritt hin zu einer nativen App gemacht muss man gänzlich von vorne anfangen.
Die Entscheidung zwischen Web und Nativ und Hybrid wird also maßgeblich beeinflusst durch Unternehmensanforderungen, App-Anforderungen, Entwicklerkenntnisse und Zeitpläne.