Was ist eine Hybride App?
Die hybride Appentwicklung ist eine Methode der Softwareentwicklung, bei der eine mobile Anwendung für verschiedene Plattformen wie iOS, Android und Web mit einer einzigen Codebasis erstellt wird.
Im Gegensatz dazu müsste in der nativen Appentwicklung, um alle drei Plattformen bedienen zu können, dieselbe Applikation einmal in Kotlin für Android, einmal in Swift für iOS und einmal fürs Web programmiert werden.
Das bedeutet normalerweise, dass zwei bis drei Entwicklerteams an derselben Applikation arbeiten, was neben dem erhöhten Ressourceneinsatz auch mit einem entsprechenden Koordinationsaufwand in der digitalen Produktentwicklung verbunden ist.
Eine mögliche Vermeidung dieses Problems ist hybride Appentwicklung. Besonders gut eignet sich die Entwicklung hybrider Apps für Produkte, die eher einfacher bis mittel komplex gestaltet sind, wie zum Beispiel E-Commerce Lösungen, bei denen viele Standardkomponenten für das Design verwendet werden.
Was sind die Vorteile?
- Schnellere Markteinführung: Da hybride Apps für mehrere Plattformen gleichzeitig entwickelt werden können, können sie schneller auf den Markt gebracht werden.
- Einfache Integration: Hybride Apps können problemlos mit anderen Anwendungen und Webdiensten integriert werden, was ihre Funktionalität erweitert.
- Geringere Entwicklungszeit: Die hybride Appentwicklung ermöglicht es, schnellere Prototypen und MVPs zu erstellen, was die Entwicklungszeit insgesamt verkürzt.
- Einfache Wartung: Da eine hybride App für verschiedene Plattformen entwickelt wird, kann sie auch leichter gewartet werden, da Änderungen nur an einer einzigen Codebasis vorgenommen werden müssen.
- Arbeit mit vertrauten Technologien: Der große Vorteil ist, dass die EntwicklerInnen, je nach gewähltem Framework, mit ihrer bereits vertrauten Technologie arbeiten können. Wenn im Team zum Beispiel schon viel Wissen über Webentwicklung / html + css Frontend vorhanden ist, muss nicht umgeschult werden, um mit der Entwicklung loslegen zu können.
- Kosteneffektivität: Hybride Appentwicklung ist besonders im Fall von einfacheren Lösungen kostengünstiger als native Appentwicklung, da sie für mehrere Plattformen mit einer einzigen Codebasis erstellt werden kann. Allerdings kommt es stark auf den Einzelfall an, ob hybride oder native Appentwicklung sinnvoller ist.
- Einfacher Zugriff auf native Funktionalitäten: Hybride Apps können native Funktionen und APIs wie Kamera, GPS und Kontaktliste nutzen, um eine bessere Benutzererfahrung zu bieten.
Was sind die Nachteile?
- Mögliche verringerte Leistung: Da hybride Apps in einer Umgebung ausgeführt werden, die nicht direkt mit dem Betriebssystem kommuniziert und oft viel Speicherplatz benötigt wird, können sie langsamer und weniger reaktionsschnell sein als native Apps.
- Eingeschränkte User Experience: Da die Betriebssysteme spezifische Anpassungen bei hybriden Apps einschränkt, kann es passieren, dass das typische Look-and-Feel einer Plattform nicht perfekt wiedergegeben werden kann.
- Abhängigkeit vom jeweiligen Framework: Da man in gewisser Weise von Systemupdates, sowie Support bzw. Community abhängig ist, können natürlich Interdependenzen entstehen, wie beispielsweise beim Implementieren von neuen Features. Falls es im Framework selbst zu Fehlern kommt, heißt es oft abwarten bis Developer des Frameworks selbst, diesen beheben.
Welche Frameworks gibt es?
Ionic
Ionic ist ein Open Source Framework für hybride Appentwicklung. Es ermöglicht, aus einer einzigen Codebasis heraus gleichzeitig Apps für Android, iOS und das Web zu entwickeln. Ionic unterstützt offiziell React, Angular und seit Oktober 2020 Vue.js.
Durch Capacitor wird die Web App innerhalb einer nativen App in einer sogenannten WebView, quasi einem In-App-Browser, dargestellt. Zusätzlich ist durch Capacitor die Anbindung von nativen APIs / nativen Elementen wie zum Beispiel Kontakten, Kalender oder Security Features möglich. Die gemeinsame Codebasis für alle Plattformen führt zu einer erhöhten Wartbarkeit und effizienteren Entwicklung.
Aus persönlicher Erfahrung aus einem Kundenprojekt für die Österreichische Post können wir sagen, dass die Performance von Ionic nichts zu wünschen übrig lässt. Die App läuft flüssig auf allen drei Plattformen. Durch die Kombination von Ionic mit React war es uns auch möglich, die eigene UI Component Library des Kunden mit einzubinden. In Bezug auf Testing ist Ionic auch sehr flexibel. Unit-Tests in unserem Projekt basierten auf Jest und Enzyme, End-to-End Tests wurden mit Selenium durchgeführt.
Flutter
Flutter ist ein von Google entwickeltes Framework zur Entwicklung von mobilen Anwendungen für die Betriebssysteme Android und iOS und mit Sicherheit aktuell eines der gefragtesten Frameworks. 41% der Software Engineers verwenden für Cross-Platform Entwicklung laut einer globalen Studie von Statista Flutter.
Um Flutter zu verwenden, muss die Applikation in Dart geschrieben werden. Futter Web ermöglichtzusätzlich, das Framework auch für Webentwicklung einzusetzen.
Ein Vorteil ist, dass Flutter eine eigene Render-Engine hat, die plattformübergreifenden läuft und somit eine native Performance ermöglicht. Eines der bemerkenswertesten Features von Flutter ist das zustandsbasierte Hot-Reloading. Bei Änderungen im Code wird die neue Version auf dem Handy oder dem Emulator wirksam und der aktuelle Zustand der Applikation bleibt erhalten. Außerdem ist die Integration mit anderen Technologien oder APIs wie Firebase oder Google Maps einfach. Die aktive Software Engineer Community rund um Flutter ermöglicht einen hilfreichen Austausch.
React Native
React Native ist ein von Facebook entwickeltes Framework, das auf React basiert. Es ermöglicht die Entwicklung von nativen Apps für iOS und Android mit JavaScript und React.
Während man argumentieren könnte, dass Ionic eine bessere Benutzeroberfläche und Leistung von Apps bietet, ermöglicht React Native den NutzerInnen eine fast nativ-ähnliche Erfahrung von Apps, mit mehr Stabilität in der Performance.
Um React Native wirklich gut nutzen zu können, muss man als SoftwareentwicklerIn einiges an Erfahrung sammeln, um das reactive pattern zu verstehen. Besonders EntwicklerInnen, die Java und Swift gut beherrschen, arbeiten gerne mit React Native.
Xamarin
Xamarin wurde 2015 von Microsoft gekauft und ermöglicht es, plattformübergreifende Anwendungen für iOS, Android und Windows mit C# und dem .NET Framework zu erstellen.
Besonders für Unternehmen, die sich größtenteils in der C#-Welt befinden und EntwicklerInnen, die lieber in 3D-Umgebungen und -Grafiken als in 2D-Umgebungen arbeiten, bevorzugen Xamarin. Auch C#-Skript, JSX und WebGL macht es für NutzerInnen sehr attraktiv.
Xamarin ermöglicht eine schnelle und einfache Erstellung von App-Prototypen, bietet technische Unterstützung und Support von Microsoft und eine Vielzahl an Components. Auch die Tools und Funktionen, einschließlich integrierter Entwicklungsumgebung (IDE), Debugger, Emulatoren und Testtools überzeugen viele Devs.
Kotlin Multiplatform
Kotlin Multiplatform ist für Unternehmen, die bereits in der Kotlin-Welt zu Hause sind, eine interessante Möglichkeit, plattformübergreifend (Browser-Applikation, native Windows App, native Linux App, hybride Android App, hybride iOS App, uvm.) Software zu entwickeln.
Zu den Vorteilen gehören die Reduktion von Entwicklungszeit und Wartungsaufwand, sowie die Multiplatform Bibliotheken.
Wie funktioniert es? In der Mitte steht reiner Kotlin-Code. Spezielle Compiler und Wrapper erzeugen aus diesem Code den spezifischen Code für die jeweilige Plattform, wie beispielsweise die Java Virtual Machine im Backend oder JavaScript für Browseranwendungen.
Es ist wichtig zu beachten, dass sich Kotlin Multiplatform Stand 2023 noch in einem Beta-Stadium befindet, ebenso wie das auf mobile Anwendungen spezialisierte Projekt Kotlin Multiplatform Mobile (KMM).
Kotlin Multiplatform Mobile, ist ein paralleles Konzept/Framework, das mittels der Programmiersprache Kotlin ganz speziell auf native, mobile iOS und Android Entwicklung zugeschnitten ist.
Fazit
Die hybride Appentwicklung ermöglicht es, mobile Anwendungen für verschiedene Plattformen mit einer einzigen Codebasis zu erstellen, was eine schnellere Markteinführung, geringere Entwicklungszeit, einfachere Wartung, Arbeit mit vertrauten Technologien und Kosteneffektivität bietet. Hybride Apps können auch auf native Funktionen und APIs zugreifen, um eine bessere Benutzererfahrung zu bieten. Es gibt natürlich auch mögliche Nachteile, wie verringerte Leistung, eingeschränkte Benutzererfahrung und Abhängigkeit von bestimmten Frameworks, deren Support und Community.
Die Wahl der Frameworks hängt natürlich von den spezifischen Anforderungen des Projektes ab. Gerne unterstützen Sie unsere Digitalisierungs-Experten dabei!