App-Entwicklung

Native oder Hybrid?

Wann sollten Anwendungen mit einem Hybrid-Framework entwickelt werden? Wo machen native- oder gar Web-Apps Sinn? Jede App-Entwicklungsmethode hat ihre Vor- und Nachteile. Für bbv-Experte Jan Moser ist hybrid in den meisten Fällen die richtige Lösung – aber nicht immer.

08.04.2021Text: tnt-graphics0 Kommentare
Native_Hybrid

Wenn immer ein Entwicklerteam eine mobile App realisiert, stellt sich ihm die Frage nach der geeigneten Entwicklungsmethode. Grundsätzlich kann der Weg Richtung Native App, Hybrid App oder Web App (bzw. Progressive Web App) eingeschlagen werden. «Die Technologiewahl sollte frühzeitig und mit Bedacht erfolgen, da sonst später Nachteile entstehen können», sagt Jan Moser, Software Architekt bei bbv.

Die Vorteile hybrider Apps

Hybride Apps basieren auf JavaScript, CSS und HTML bzw. HTML5. Waren die Hybrid-Apps noch vor wenigen Jahren teilweise um ein Vielfaches grösser als die nativen Apps, können heute per Framework viel schlankere Apps hergestellt werden. Die Tatsache, dass mit einem Hybrid Framework nur eine Code-Basis gepflegt werden muss, macht diese Methode eindeutig zum Favoriten für die meisten Anwendungsfälle. Zudem ist für die Nutzung dieser Frameworks oftmals der Erwerb einer proprietären Lizenz nicht nötig.

Die Alternativen zu Hybrid: Native Apps, Web Apps, PWA

Native Apps werden als Single-Platform-Entwicklungen für jedes Betriebssystem einzeln programmiert und funktionieren somit ausschliesslich auf den dedizierten Plattformen. Mit dieser Vorgehensweise wird sichergestellt, dass Usability und Performance für den jeweiligen Gerätetyp optimal sind. Insbesondere bei rechenintensiven Anwendungen oder wenn Spezialfunktionen ausgeführt werden müssen, kann die native Programmierung von Vorteil oder gar zwingend notwendig sein. In der Regel werden iOS-Apps mit Objective C oder Swift programmiert, Android-Apps mit Java oder Kotlin.

Ganz anders die Web Apps, die nicht als eigentliche Applikationen auf den Mobilgeräten installiert werden. Sie haben zwar eine ähnliches Look-and-feel wie generische Apps und können per Icon aufgerufen werden, laufen aber plattformunabhängig direkt im Browser des Geräts. Web Apps lassen sich einfach umsetzen, waren aber in ihrer Funktionalität und im Zugriff auf Geräte-Features lange Zeit etwas eingeschränkt. «Mit der Verwendung von HTML5 haben sich diese Einschränkungen allerdings stark relativiert», sagt Jan Moser. «Mit sogenannten Progressive Web Apps haben sich die Grenzen zu anderen App-Formaten verwischt. PWAs können heute an die jeweilige Plattform angepasst werden und bieten ein generischeres Look-and-Feel.»

Apps, die mit einem Hybrid Framework geschrieben wurden, vereinen sowohl Merkmale einer nativen App als auch einer Web App, deshalb bezeichnet man sie als hybrid. Die Vorteile dieser Methode liegen auf der Hand: Sie sind plattformunabhängig und müssen deshalb nur einmal entwickelt werden. «Dies spart Aufwand und somit auch Kosten für den Auftraggeber. Man erreicht mit geringeren Entwicklungskosten eine grössere Zielgruppe, spart in der Regel Zeit in der Entwicklung – und auch bei den Updates sowie bei der Identifizierung und Behebung von Bugs». Auf diese Weise generiere man mit einer Entwicklung Apps für beide Betriebssysteme. «Üblicherweise setzt man deshalb auf Hybrid, wenn man mit seiner App eine grosse Reichweite erreichen will», sagt Jan Moser.

Innovation und Effizienz

Die Single-Platform-Entwicklung war lange Zeit die einzige Möglichkeit, komplexe Apps zu programmieren. Musste zu Anfangszeiten von Smartphones und Tablets noch zwingend für jede Plattform eine Native App auf einer eigenen Code-Basis generiert werden, kann dies dank Hybrid Frameworks heute in vielen Fällen umgangen werden. Im Vergleich zu den Anfängen hybrider Frameworks sind die Möglichkeiten heute viel umfangreicher. Moderne Hybrid Frameworks wie Ionic, Flutter oder React Native ermöglichen es, fast genauso wie bei der nativen Entwicklung auf die Hard- und Softwarekomponenten der Geräte zuzugreifen. «Heute können hybride Apps auf viele native Gerätefunktionen wie Kamera, QR-Scanner, Mikrofon und Sensoren zurückgreifen. Wir sind diesbezüglich kaum eingeschränkt», sagt Jan Moser.

Um sämtliche Möglichkeiten anbieten zu können, müssen die Entwickler sowohl Skills in Objective C, Swift oder Java oder Kotlin haben als auch mit den modernen Hybrid Frameworks umgehen können. Moser setzt gerne auf Ionic: «Bei bbv nutzen wir verschiedene Hybrid Frameworks. Oft arbeiten wir mit Ionic. Mit dem Framework lassen sich sehr viele Anforderungen ideal umsetzen.»

Entscheidungshilfen

In einem App-Projekt könne es passieren, dass die Projektbeteiligten nach fortgeschrittener Entwicklungszeit feststellen, dass mit dem ausgewählten Framework die geforderte Funktionalität nicht abgedeckt werden kann, sagt Jan Moser. In diesen Fällen wäre es besser gewesen, man hätte zu Beginn für jede Plattform eine eigene App programmiert. Deshalb sei bei jedem Auftrag für eine App-Neuentwicklung die grundlegende Frage so wichtig: native hybrid? Sprich: In welchem Fall führt ein Hybrid-Framework besser zum Ziel, wann lohnt sich der Aufwand, zwei für Single-Platform-Entwicklungen?

Obwohl sich moderne Apps grundsätzlich für die meisten Use Cases per Hybrid Framework erstellen lassen, gebe es immer wieder Fälle, in denen je eine native App für iOS und Android gefragt ist. Jan Moser nennt einige Beispiele: Etwa, wenn die App komplexe tiefe, spezialisierte Anwendungen wie 3D-Visualisierungen machen soll. Aber beispielsweise auch dann, wenn gerätespezifische Spezialfunktionen gefragt sind oder aufwändige Visualisierungen mit Virtual Reality oder Augmented Reality sowie Plattform-spezifische Drittanbieter-Libraries zum Einsatz kommen. «Zum Beispiel haben wir für einen Kunden eine Business-App entwickelt, welche es den Benutzern ermöglicht, ein Rechnungsformular per Kamera einzuscannen und die Datei in ein internes Rechnungsobjekt umzuwandeln», erklärt er. «Aufgrund des vom Kunden eingesetzten Drittanbieter-Produktes war es notwendig, die App native zu entwickeln.» Ebenfalls kann native für eine Business-App geeignet sein, die ausschliesslich mit einem Corporate-Gerätetyp unterstützt werden muss.

Gemeinsam zur optimalen Lösung

Manche Kunden wünschten sich kategorisch eine Native App, obwohl sich die gestellten Anforderungen problemlos mit einer Hybrid-Entwicklung umsetzen liessen. Doch ob sich hinter der App eine hybride oder eine native Entwicklung versteckt, spielt für die meisten Auftraggeber und Anwender keine Rolle. Denn in der Regel ist nicht zu erkennen, wie die App programmiert worden ist. Für den Auftraggeber hingegen ist es wichtig, dass seine Anforderungen an die App exakt umgesetzt werden können – und dies mit möglichst geringen Kosten. In jeder Neuentwicklung ist die Evaluation der passenden Entwicklungsmethode ein wichtiger Schritt in der Anfangsphase, ist Jan Moser überzeugt.

Dies bedingt jedoch eine breite Palette an Fähigkeiten und Flexibilität: Da für die eine Variante vielleicht nicht genug Know-how vorhanden ist oder aus Routine immer auf die andere Variante gesetzt wird, würde die Frage nach der geeigneten Methode oft vernachlässigt. Da aber sowohl der Auftraggeber als auch die Entwickler bestrebt sind, in jedem Fall die bestmögliche Lösung zu finden, sollten stets alle Möglichkeiten offen bleiben. Denn nur die Erfahrung und Expertise der Entwickler ermöglicht eine vorausschauende Technologiewahl.

Der Experte

Jan Moser

Jan Moser war Software-Architekt bei bbv. Als Teamworker liebte er es, herausfordernde und spannende Projekte gemeinsam mit dem Kunden zum Erfolg zu bringen. Dazu behielt er die neuesten Technologietrends genau im Auge – und fühlte sich an den bbv-Standorten in der Schweiz und in Vietnam zu Hause.

Unser Wissen im Abo

KEDA – Kubernetes Event-driven Autoscaling

Ein Level-Up für die Skalierung in Kubernetes

App-Entwicklung
IoT und Cloud: Herausforderungen in China

Mit IoT ins Reich der Mitte

Business Applications
Ticketing und Cashless

Blockchain-App für Event-Veranstalter

Digitalisierung

Artikel kommentieren

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.