Die Entscheidung zwischen der Entwicklung einer rein nativen Mobile App, die auf den mobilen Betriebssystemen Android oder iOS läuft, und einer plattformübergreifenden Web-App, die in einem Browser ausgeführt wird, ist eine der ersten großen Fragen, die vor dem Beginn eines Projekts zur Entwicklung einer Mobile App beantwortet werden muss. Dies ist eine kurze Einführung in die Vor- und Nachteile der beiden Ansätze. Was passt am besten zu den Anforderungen Ihres nächsten Projekts – native oder Web-Apps?
Native-Apps
Native mobile Anwendungen werden auf der einzigartigen Codebasis des Betriebssystems (OS) entwickelt, auf dem die App laufen soll – Android oder iOS. Wenn Sie zwei native Apps entwickeln, eine für Android-Geräte und eine für iOS-Geräte, arbeiten Sie parallel mit verschiedenen SDKs (Software Development Kit) und Programmiersprachen – in der Regel Java oder Kotlin, manchmal auch Python, C# oder C++ für Android und Objective-C oder Swift für iOS.
Eine native mobile App läuft nur auf dem Betriebssystem, für das sie entwickelt wurde. Das bedeutet, dass die App von Grund auf neu erstellt werden muss, wenn Sie sie sowohl für iOS- als auch für Android-Nutzer zur Verfügung stellen wollen oder müssen.
Native-App Nachteile
Das ist der Nachteil: Sie müssen zwei separate Softwareentwicklungsteams finanzieren, um Ihre mobilen iOS- und Android-Apps zu entwickeln, zu verbessern und zu pflegen. Das bedeutet, dass Sie mehr Ressourcen einsetzen und letztlich auch deutlich höhere Kosten in Kauf nehmen müssen.
Ein Großteil der UI/UX- und Designarbeit einer App kann zwischen iOS- und Android-Versionen repliziert werden, aber es müssen zwei völlig unterschiedliche Codebasen in unterschiedlichen Sprachen und mit unterschiedlichen Tools erstellt werden. Und letztlich ist es eher die Entwicklungs- als die Designarbeit, die den Großteil der Kosten ausmacht, die mit der ersten Erstellung und der anschließenden Wartung und Iteration einer App verbunden sind.
Native-Apps Vorteile
Aber viele App-Besitzer ziehen es immer noch vor, die zusätzlichen Kosten und die Zuweisung anderer Mittel auf sich zu nehmen, die mit der Entwicklung sowohl nativer Android- als auch iOS-Mobilanwendungen verbunden sind. Warum? Native Apps bieten auch Vorteile, die unter bestimmten Umständen als ausreichend wichtig erachtet werden, um das Gleichgewicht zu halten.
Geräteleistung vs. Browserleistung
Native Apps sind den hybriden Pendants in puncto Leistung aus mehreren Gründen überlegen. Erstens nutzen sie die Rechenleistung des Geräts, in der Regel eines Smartphones oder Tablets, auf dem sie ausgeführt werden sollen, und sind nicht auf einen Browser angewiesen. Für einfache, leichte Anwendungen können die von einem modernen Browser gebotenen Ressourcen mehr als ausreichen, um ein großartiges Benutzererlebnis zu bieten. Aber für schwerere Apps, die viele Ressourcen benötigen, kann die Möglichkeit, direkt auf den Prozessor des Geräts zurückzugreifen, einen bedeutenden Unterschied in der Leistung ausmachen der sogar notwendig sein kann.
Direkter Zugriff auf die Gerätehardware
Die Rechenleistung ist nicht die einzige Abhängigkeit, die eine mobile App von der Gerätehardware haben kann. Viele Apps nutzen zum Beispiel auch die Kamera eines mobilen Geräts. Touch ID (Fingerabdruck-Sicherheit), Mikrofon, GPS und Accelerometer sind weitere Hardware-Elemente des Geräts, mit denen eine App möglicherweise arbeiten muss, um ihren vollen Funktionsumfang zu bieten.
Da native mobile Apps direkt auf dem Betriebssystem eines Geräts ausgeführt werden, können sie direktere Verbindungen (über APIs) zu den verschiedenen Elementen der Gerätehardware herstellen. Dieser Vorteil ist bei iOS-Apps besonders ausgeprägt, da Apple sowohl die Hardware als auch das Betriebssystem auf eine eng integrierte Weise entwickelt. Das Android-Betriebssystem hingegen ist ein Google-Produkt und läuft auf der Hardware vieler verschiedener Marken von Mobilgeräten, von Samsung bis Huawei und HTC. Das Betriebssystem ist in der Regel immer noch gut in die Hardware integriert, aber nicht ganz so perfekt wie bei Apple-Produkten, wo Betriebssystem und Geräte vom selben Unternehmen entwickelt werden.
Webanwendungen können nach wie vor auf die Hardware eines Geräts zugreifen und diese nutzen, müssen dies aber über eine zusätzliche Abstraktionsebene tun, da sie auf einem Browser laufen, der auf einem Betriebssystem läuft, das der Hardware überlagert ist. Umgehungslösungen sind erforderlich und wirken sich mehr oder weniger stark auf die Leistung aus, je nachdem, wie hoch die Hardware-Anforderungen an die Funktionalität der App sind.
Wenn die zu entwickelnde App jedoch nicht auf die Hardware des Geräts zugreifen und eng mit ihr zusammenarbeiten muss, kann der Unterschied zwischen einer nativen und einer hybriden Web-App dank der Verbesserungen in modernen Browsern vernachlässigbar sein, wenn moderne hybride Frameworks wie React Native oder Flutter verwendet werden. Allerdings ist eine native App in der Regel immer noch die bessere Option, wenn die App eng mit der Hardware der verwendeten Geräte zusammenarbeiten muss.
Lokale Speicherung
Ein weiterer Pluspunkt für native Apps gegenüber Web-Apps ist, dass erstere asynchron ausgeführt werden können. Für den Laien bedeutet dies, dass dynamische Informationen lokal auf dem Gerät selbst gespeichert werden und durch Synchronisierung mit den auf einem Server gespeicherten Informationen aktualisiert werden. Moderne Frameworks wie Flutter und React Native sowie Funktionen der Auszeichnungsprogrammiersprache HTML5 tragen dazu bei, dass webbasierte Apps etwas Ähnliches erreichen. Allerdings sind native Apps hier immer noch im Vorteil.
Play Store und App Store listings
Eine manchmal übersehene zusätzliche Stärke nativer Apps ist der Vertriebs- und Zugänglichkeitsvorteil, der sich aus der Aufnahme in die offiziellen App Stores – Google Play von Android und App Store von Apple – ergibt. Diese beiden App-Bibliotheken, auf die der überwiegende Teil der App-Downloads weltweit entfällt, erlauben nur die Aufnahme nativer Apps. Eine App, die in Play, im App Store oder in beiden verfügbar ist, erleichtert den Nutzern den Zugriff und die Installation und kann die Downloadzahlen für Apps, die sich an die breite Öffentlichkeit richten, enorm steigern. Die Aufnahme einer App in den App Store kann einen großen Einfluss auf ihren relativen Erfolg haben, insbesondere wenn sie sich an einen Wettbewerbsmarkt richtet.
Der Nachteil einer nativen App, die entweder über Play oder den App Store vertrieben wird, besteht darin, dass Google und Apple anschließend einen beträchtlichen Anteil, in der Regel 30 %, an allen Einnahmen einbehalten, die mit einer App während ihrer gesamten Nutzungsdauer erzielt werden.
Zusammenfassung der Stärken und Schwächen von nativen Anwendungen
Der Vorteil nativer Apps besteht darin, dass sie in der Regel ein schnelleres, reibungsloseres und zuverlässigeres Nutzererlebnis bieten. Dies gilt vor allem dann, wenn die Funktionen komplexer sind und ein hoher Ressourcenbedarf besteht. Sie profitieren auch vom Vorteil der Verbreitung und Popularisierung, da sie in den offiziellen Android-App-Store Play und den App Store von Apple aufgenommen werden können. Der Nachteil von nativen Apps sind in der Regel höhere Kosten und eine zeitaufwändige Entwicklung, insbesondere wenn sowohl Android- als auch iOS-Versionen entwickelt werden sollen.
Web-Apps
Wie bereits erwähnt, werden Web-Apps, die manchmal auch als plattformübergreifende Apps bezeichnet werden, in einem Browser ausgeführt und sind daher geräteunabhängig. Die App wird auf die gleiche Weise ausgeführt, unabhängig davon, ob auf sie von einem Gerät mit Android- oder iOS-Betriebssystem zugegriffen wird.
Die modernsten Technologien für die Entwicklung von Web-Apps ermöglichen jedoch so etwas wie einen Mittelweg zwischen traditionellen Web- und nativen Apps – hybride Apps, die auch als progressive Web-Apps bezeichnet werden.
Der hybride Ansatz – progressive Webanwendungen
Es gibt auch Tools und Frameworks, die zur Entwicklung einer App in einer anderen Programmiersprache als der für die Plattform nativen verwendet werden können. Bei der Paketierung wird der Code in den Code der nativen Plattform umgewandelt. Dieser Ansatz vereinfacht die App-Entwicklung sowohl für Android als auch für iOS und bedeutet auch, dass eine einzige Kern-App für beide Betriebssysteme konfiguriert werden kann. Zwischen Android- und iOS-Versionen müssen zwar Anpassungen und ein gewisses Maß an Feinabstimmung vorgenommen werden, aber der Großteil der Codebasis bleibt erhalten.
Die beliebtesten Technologien für die Entwicklung von Hybrid-Apps sind Flutter und React Native, gefolgt von Ionic. Diese Technologien ermöglichen in vielen Fällen fast das gleiche Leistungsniveau wie native Apps (weniger, wenn die App eng mit der Hardware des Geräts interagiert) und bieten Tools zum Testen und Verfolgen von App-Vorgängen.
Die Auswahl an Tools ist nicht ganz so vielfältig wie bei der nativen mobilen Entwicklung für Android und iOS. Der begrenzte Zugang zu Open-Source-Bibliotheken gehört zu den Unzulänglichkeiten von sogenannten Wrappers, aber die beliebtesten Open-Source-Optionen, wie die drei erwähnten, holen schnell auf.
Vorteile von Progressiven Web-Apps
Hybride oder progressive Web-Apps (PWAs) bieten eine Kombination aus den Stärken nativer Apps und traditioneller Web-Apps (WebView wird im nächsten Abschnitt behandelt) sowie zwangsläufig auch eine Kombination aus deren Schwächen. Lassen Sie uns zunächst die Stärken des hybriden PWA-Ansatzes betrachten.
Geringere Kosten, einfachere Rekrutierung
Die Entwicklung einer progressiven Webanwendung ist zwar teurer als die einer Standard-Webanwendung, aber immer noch deutlich günstiger als die einer nativen Anwendung. Sie werden mit Web-Entwicklungstechnologien erstellt, mit denen mehr Entwickler vertraut sind, was es billiger und einfacher macht, ein Entwicklungsteam einzustellen. Und da der Großteil der Codebasis von Hybrid-Apps, die auf Android und iOS laufen können, identisch ist, wird nur ein Haupt-Build (main build) benötigt. Außerdem wird ein Entwicklungsteam in den meisten Fällen beide Versionen der App betreuen.
Minimale Auswirkungen auf die Leistung
Progressive Web-Apps, die mit den modernen Frameworks Flutter, React Native und Ionic erstellt werden, überwinden viele der Nachteile, die mit der Fähigkeit von Web-Apps verbunden sind, die Gerätehardware effizient zu nutzen. Hybride Apps bleiben in dieser Hinsicht immer noch hinter nativen Apps zurück, aber wenn eine besonders enge und intensive Nutzung der Gerätehardware nicht integraler Bestandteil der App-Funktionalität ist, kann der Unterschied in Geschwindigkeit und Zuverlässigkeit minimal sein.
Die Geschwindigkeit einer hybriden App hängt immer noch von dem Browser ab, auf dem sie läuft, was bedeutet, dass sie nie ganz so schnell und reaktionsschnell sein kann wie ein natives Äquivalent. Wenn eine hochwertige hybride App jedoch nicht besonders schwer ist, kann der Unterschied auch bei einer schnellen Internetverbindung kaum spürbar sein.
Berechtigung für App Store und Google Play
Sowohl der App Store als auch Google Play lassen inzwischen neben nativen Apps auch hochwertige Hybrid-Apps zu. Sie werden allerdings wählerischer, wenn es um hybride Apps geht, und achten genau auf Qualität und Leistung, bevor sie grünes Licht geben.
Nachteile einer progressiven Webanwendung
Die meisten Nachteile wurden bereits neben den Stärken von PWAs genannt. Kurz zusammengefasst sind diese:
- Teurer in der Entwicklung als WebView-Apps (aber deutlich billiger als native Apps).
- Langsamer als native Anwendungen (dies ist jedoch kaum spürbar, wenn die Anwendung nicht besonders ressourcenintensiv ist).
- Schlechtere Leistung als native Apps (auch hier kann der Unterschied in Leistung und Zuverlässigkeit minimal sein, wenn die App die Gerätehardware nicht intensiv nutzt).
- Es ist schwieriger, in die Bibliotheken von Google Play und App Store aufgenommen zu werden (aber durchaus möglich).
Traditionelle Webanwendungen – WebView
Die Tatsache, dass sowohl Android- als auch iOS-Betriebssysteme das Einfügen eines Browsers in Anwendungen ermöglichen, bietet auch einen dritten möglichen Ansatz für die Entwicklung mobiler Anwendungen – WebView. WebView-Apps sind im Wesentlichen adaptive Webseiten, die innerhalb einer Anwendung gerendert werden. Sie werden mit denselben Programmiersprachen wie Webseiten erstellt. Dazu gehören JavaScript, CSS und HTML auf der Front-End-Seite und Sprachen wie Python, Java und Ruby auf der Server-Seite.
Das Apache Cordova Framework wurde für diesen Ansatz entwickelt. Das Open-Source-Framework bietet eine Reihe von Tools und Plug-ins, die eine einfache Paketierung und Entwicklung von herkömmlichen Webanwendungen ermöglichen. Es bietet auch eine große Auswahl an Schnittstellen für die Kommunikation zwischen WebView-Sitzungen und Plattformen, so dass diese Anwendungen Hardware-Funktionen wie die Kamera nutzen können, auch wenn die Leistung bei der Arbeit mit der Hardware des Geräts nicht mit nativen Alternativen mithalten kann. Aber auch hier kann eine plattformübergreifende App für Android und iOS auf nur einer Codebasis entwickelt werden, was die Entwicklungskosten optimiert.
Ein Schwachpunkt von WebView-Apps ist, dass sie oft auf eine generische Schnittstelle beschränkt sind und nur begrenzten Zugriff auf die Hardware des Geräts haben. Interaktionen mit der mobilen Hardware sind nur über Plug-ins möglich. Web-Apps können eine gute Wahl für inhaltsbezogene Webseiten sein, für die ein reibungsloseres mobiles Erlebnis als bei einer einfachen responsiven Webseite eine wichtige Anforderung ist.
Sehen Sie sich unsere Fallstudie für Viabuy an, eine E-Payment-Plattform, für die wir eine Hybrid-App mit React Native entwickelt haben. Durch das Hinzufügen von benutzerdefinierten K&C-Plug-ins zu den RN-Standardfunktionen haben wir eine App-Oberfläche und -Operationen geschaffen, die vollständig nativ sind. Schauen Sie sich das an: Das K&C-Team hat es geschafft, ein benutzerdefiniertes Android-Plug-in für die Fingerabdruckfunktion zu erstellen, das auf fast allen Geräten auf dem Markt perfekt funktioniert. Wir sind bereit, unsere Erfahrung zu nutzen, um noch weiterzugehen.
Fazit
Wir hoffen, dass dieser kurze Überblick über Native-Apps und Web-Apps Ihnen einen nützlichen Einblick in die Anwendungsfälle und die jeweiligen Vor- und Nachteile der verschiedenen Ansätze für die Entwicklung mobiler Apps gegeben hat. Ob eine native, hybride oder traditionelle Web-App die richtige strategische Wahl für Ihr Entwicklungsprojekt ist, hängt von einer Kombination aus technischen und geschäftlichen Fachleuten ab.
Eine einfache WebView-App, die gut gemacht ist, kann unter den richtigen Umständen eine großartige Benutzererfahrung bieten. Aber für andere Anwendungen ist sie einfach nicht geeignet. Eine hybride Anwendung könnte es sein. Oder eine native Anwendung könnte der richtige Weg sein. Sie sollten jetzt eine klarere Vorstellung davon haben, welcher Ansatz für Sie optimal sein könnte.
Wenn Sie Ihr nächstes mobiles Entwicklungsprojekt mit uns besprechen möchten, geben wir Ihnen gerne weitere Einblicke in den Ansatz und den Tech-Stack, mit dem unsere Experten Ihre nächste App optimal realisieren können. Kontaktieren Sie uns!