Übersicht
Hybride App Frameworks haben den wesentlichen Vorteil gegenüber anderen Frameworks, dass man die Code-Basis auf mehrere Plattformen anwenden kann. Somit ist es nicht nötig, für iOS und Android jeweils eine separate App zu entwickeln, wie das bei nativen Apps der Fall ist. Dem zur Folge spart man bei hybriden Apps nicht nur an Entwicklungszeit, sondern auch an Projektkosten und Ressourcen.
Anstatt wie bei nativen Apps üblichen zwei Projekten (eins für Android und eins für iOS), hat man bei einer hybriden App nur ein Projekt. Zur Folge lassen sich Kommunikation und Umsetzung einfacher gestalten. Verschiedene große Konzerne, darunter zum Beispiel Apple und Facebook, haben einen eigenen Versuch zur Entwicklung von hybriden App Frameworks gewagt.
Doch welches von Hybride App Frameworks setzt Ihre Voraussetzungen and die Applikation am besten um? Im Folgenden werden die fünf verschiedenen hybriden Frameworks React Native, Ionic, Flutter, Apache Cordova (PhoneGap) und Xamarin verglichen.
React Native
React Native wurde 2015 von Facebook als Open Source Projekt vorgestellt. Es basiert auf der Skriptsprache JavaScript und der UI-Library React. React Native wurde zum Erstellen nativer plattformübergreifender mobiler Anwendungen entwickelt. Die Grundvoraussetzung für die Erstellung von React Native-Anwendungen ist die Verwendung des Entwurfsmusters von React. Beim Kompilieren der Anwendung werden die React UI-Komponenten in die nativen UI-Ansichtselemente der Plattform kompiliert. Beispielsweise wird die Image-Komponente von React Native in das iOS „UIImageView-Objekt“ konvertiert.
React Native Vorteile
Vorteil 1) Popularität
- React Native ist im Vergleich zu Xamarin, PhoneGap, oder Ionic wesentlich populärer. Demzufolge besteht Zugang zu einer weitaus größeren User Community, die mögliche Problematiken und Fragen in Experten-Foren oder anderswo löst. React Natives Beliebtheit kommt wahrscheinlich durch den Erfolg von React. React Entwickler können sich ohne große Umstellungen an die Entwicklung von React Native Projekten begeben.
Vorteil 2) Stabilität
- React Native ist seit über 5 Jahren auf dem Markt und wurde für viele große und prominente Unternehmen als hybrides App Framework genutzt. Hierzu gehört zum Beispiel Instagram, Facebook, Skype, oder Tesla. Durch die lange Standhaftigkeit am Markt gibt es bereits mehrere Tutorials und Bibliotheken, wovon eine schnelle und problemlose Entwicklung profitiert.
Vorteil 3) Hot reloading und JavaScript
- Mit hot reloading ist es möglich, die App während der Installation neuer Features und Versionen am Laufen zu lassen. Dadurch werden Änderungen sofort sichtbar, ohne dass der Entwickler die App neu erstellen muss. Entwickler sparen hierdurch nicht nur Zeit bei der Kompilierung, sondern verlieren auch keinen Status der App, während sie Änderungen vornehmen.
- Facebook verspricht eine kürzere Entwicklungszeit durch „ready-to-apply“ Komponenten und den Zugang zu JavaScript packages, eine der größten Bibliotheken überhaupt. Durch die Entwicklung mit JavaScript ist es möglich den Code nicht nur zwischen mobilen Plattformen, sondern auch mit Web Applikationen zu teilen. Dies hat den Vorteil, dass sich der Entwickler um beide (Web und mobile) Applikationen kümmern kann, da diese Technologien sehr ähnlich sind. JavaScript gilt als eines der beliebtesten Entwicklersprachen überhaupt. Folgerecht besteht ein größerer Pool an Entwicklern und Communities.
React Native Nachteile
- Ein Problem stellt oftmals die große generelle App-Größe der React Native Apps da. Eben noch als eines der Vorteile von React Native genannt, kann das Implementieren von nativem Code gleichzeitig auch von Nachteil sein, da hierfür die Komplexität des Projektes steigt und dadurch mehr Entwicklungs-Zeit in Anspruch genommen wird.
- React Native ist eventuell nicht das passende Framework, wenn die App häufige oder sehr spezifische Aufgaben (wie Berechnungen) im Hintergrund ausführen können muss. Hierfür wäre eine native App Entwicklung sinnvoller.
Ionic
Ionic wurde im Jahr 2013 auch als freies und open source Framework von Max Lynch, Ben Sperry, und Adam Bradley von Drifty Co. entwickelt. Mit Ionic ist es möglich Windows, iOS und Android Apps zu erstellen. Hierzu ist es nötig den Code mit HTML5, JavaScript, Angular JS, oder CSS zu schreiben. Unter anderen arbeiten Firmen, wie BMW, Airbus, National Health Service und NASA Apps mit Ionic. Berühmte Apps die auf diesem hybriden App Framework basieren sind zum Beispiel SWORKIT, InstantPlot, oder Shipt. Ionic setzt auf offene Webstandards und -fähigkeiten als Leitprinzip. Zudem zählt Ionic auf standardbasierte UI-Komponenten, die in der App ausgeführt werden. Ionic ist daher ein hybrides-Web App Framework.
Ionic Vorteile
Vorteil 1) Benutzerfreundlichkeit
- Als ein Vorteil von Ionic Framework ist dessen Benutzerfreundlichkeit zu erwähnen. Ionic ist einfach zu bedienen. Mithilfe von Drag-and-Drop Funktionen und vorgefertigter Komponenten der Technologien können Sie schnell mobile Apps erstellen. Ionic ist daher sehr gut geeignet, wenn das Frontend in Ihrem Projekt eine tragende Rolle spielen soll. Außerdem wurden bei diesem hybriden App Framework Plugin Funktionen eingebaut, die einer einfachen Entwicklung beitragen sollen.
Vorteil 2) Kosten
- Im Vergleich zu hybriden App Frameworks wie React Native, Flutter, oder Xamarin, ist Ionic als hybrides, Web-Framework kostengünstiger in der Entwicklung. Dank der Webnatur benötigen Sie nicht einmal ein dediziertes mobiles Team.
Vorteil 3) Auswahl an Komponenten und Plugins
- Ionic bietet eine breite Palette an Komponenten und Plugins. Eine Bibliothek bietet Komponenten, die wie native Elemente aller unterstützten Plattformen wirken und aussehen. Wir können ein komplettes App-Entwicklungskit verwenden: eine umfangreiche Bibliothek mit Front-End-Bausteinen, UI-Komponenten und Hunderten der meist-verbreiteten App-Symbole. Plugins bieten uns Zugriff auf Telefonfunktionen wie Bluetooth, GPS oder Fotokamera.
Ionic Nachteile
- Ionic Frameworks sind generell nicht so sehr für Graphik Apps geeignet. Dies hat zu Grunde, dass Ionic grafische Elemente über einen Browser, der mehrere Schritte benötigt, um das Bild auf dem Bildschirm anzuzeigen rendert. Ein Weiterer Nachteil ist, dass obwohl viele Plugins für native Funktionalitäten vorhanden sind, manche nativen Funktionen dennoch fehlen. Hierfür müsste dann ein eigenes Plugin entwickelt werden, was wiederum viel Zeit in Anspruch nehmen würde.
Flutter
Das hybride App Framework Flutter wurde 2018 von Google entwickelt. Hiermit ist es möglich, Android und iOS Apps herzustellen. Auch Flutter ist ein open source und kostenloses App Entwicklungs-Framework. Flutter wird von großen Firmen, wie The New York Times, Google, eBay, SONOS, und vielen anderen verwendet. Bekannte Apps sind zum Beispiel Google Ads, Alibaba, Groupon, oder STADIA. Flutter nutzt Dart als deren nicht-standardisierte Programmiersprache, die auf eigenen Standards basiert und nicht auf zum Beispiel denen der Web-Sprachen.
Flutter Vorteile
Vorteil 1) Hot Reloading
- Ebenso wie React Native besitzt auch Flutter die Funktion des hot reloadings. Durch Hot Reload können Entwickler schnell sichtbare Änderungen (häufig Benutzeroberflächen) erkennen, die sie an ihrem Code vorgenommen haben.
Vorteile 2) Widgets
- Flutter stellt integrierte Widgets zur Verfügung, welche es ermöglichen hochwertige Icons, Navigation, Schriftarten und sonstiges für eine reibungslose Leistung zu implementieren. Des Weiteren werden von Google vielfältige und ausgereifte Werkzeuge, wie Flutter SDK, oder Widgets zur Verfügung gestellt. Im Gegensatz zu React Native setzt Flutter nicht auf die betriebssystemeigenen nativen UI-Elemente, sondern auf eigene Rendering-Engine, die Widgets auf den Screen zeichnet. Vorteil davon ist es, dass man jederzeit die Kontrolle über das Design, Performance und Qualität der Widgets besitzt. Hierdurch steigert sich die Performance von Flutter gegenüber React Native.
Flutter Nachteile
- Auch Flutter stellt zwar generell viele Bibliotheken zur Verfügung, lässt aber manche Bibliotheken für bestimmt Funktionalitäten missen. Folge dessen ist man gezwungen, manche Bibliotheken zu passenden Features selbst zu entwickeln, welches natürlich sehr zeitaufwändig ist. Ein weiterer Nachteil an Flutter ist, dass für automatische Tests, Builds, und Bereitstellungen kein großer Support vorhanden ist. Daher müssen hierfür benutzerdefinierte Skripts verwendet werden.
Apache Cordova (vorher PhoneGap)
Apache Cordova wurde von Nitobi im Jahr 2009 entwickelt und im Jahr 2011 von Adobe Systems gekauft. Apache Cordova macht es Entwicklern möglich hybride Web-Applikationen auf mobilen Geräten mit den Sprachen CSS3, HTML5 und JavaScript herzustellen. Beim Entwickeln ist es auch bei diesem Framework möglich, mit nativem und hybridem Code zu interagieren. Apache Cordova ist bereits seit einigen Jahren auf dem Markt und hat deshalb viele Ressourcen online verfügbar. Außerdem stellt Adobe verschiedene Plugins bereit, um native Features in die App zu implementieren. Im Prinzip versucht Apache Cordova dem User das Gefühl zu geben, grade nicht auf einer Website zu sein, sondern eine mobile App zu nutzen. Die mit Cordova entwickelten Apps sind wie gewöhnliche native Apps auch im Appstore als Download erhältlich, unterscheiden sich jedoch darin, dass diese mit Webtechnologien entwickelt wurden.
Apache Cordova Vorteile
Vorteil 1) Breite Plattformunterstützung
- Apache Cordova unterstützt fast alle Plattformen. Hierzu gehören drei mobile Plattformen iOS, Android, und Windows Phone, als auch Desktop-Plattformen, wie OS X und Electron.
Vorteil 2) Große Verfügbarkeit von Plugins
- Generell verfügt Cordova über umfangreiche Plugin Funktionen, die besonders durch IDE Plugins bekräftigt werden. Wenn Sie über einen vorhandenen Webanwendungscode verfügen und einige oder alle wiederverwenden möchten, einschließlich der Möglichkeit, Webbibliotheken von Drittanbietern zu verwenden, ist Cordova eine sehr gute Option.
Apache Cordova Nachteile
- Falls geplant wird, eine App mit vielen Hardware-nahen Komponenten zu entwickeln, ist Apache Cordova nicht zum Empfehlen, da hier die Performance zu wünschen übriglässt. Um alle Hardware-Komponenten nutzen zu können, ist oft ein großer Mehraufwand zu erbringen. Ein weiterer Nachteil ist der fehlende Support für Hintergrundverarbeitung. Viele Applikationen nutzen Hintergrund-Threads, um eine reibungslose Benutzer Erfahrung zu gewährleisten (zum Beispiel die GPD-Positionen im Hintergrund). Diese unterstützt Apache Cordova leider nicht.
Xamarin
Das open-source hybride Framework Xamarin wurde von Microsoft im Jahr 2016 gekauft und nahezu unverändert in ihre Software integriert. Es basiert auf der Skriptsprache C#. Der Code kann über verschiedene Plattformen, inklusive Windows, iOS, und Linux geteilt werden. Bereits über 1,4 Millionen Entwickler nutzten Xamarin bis zum Jahre 2017.
Xamarin Vorteile
Vorteil 1) C#-Basis und Microsoft Support
- Ein klarer Vorteil für Xamarin ist, dass man auf Grund der C#-Basis eine große online Community, inklusive Dokumentationen und Experten-Foren vorfinden kann. Des weiteren genießt man bei der Nutzung von Xamarin den vollen technischen Support von Microsoft. Hierzu gehört zum Beispiel eine garantierte kontinuierliche Entwicklerunterstützung. Bei der Entwicklung speziell für Unternehmen geht man davon aus, dass durchschnittlich in etwa 80% des Codes zwischen iOS, Android und anderen Plattformen in Xamarin und C# wiederverwendet werden können. Dadurch können Entwicklungskosten gespart werden und das Team gewinnt an Flexibilität. Positiv an der C#-Basis ist weiterhin, die einfache Tatsache, dass Sie fast alles in einer Sprache ausführen können, ohne jemals Objective-C, Swift, oder Java berühren zu müssen.
Vorteil 2) Test Cloud Service
- Außerdem hat man mit Xamarin’s Code-Sharing Fähigkeiten und dem Test Cloud Service die Möglichkeit den Code auf mehreren Geräten innerhalb kürzester Zeit zu testen. Die beschleunigt den Entwicklungsprozess.
Vorteil 3) Performance
- Besonders, wenn Ihre App viele native Funktionen beinhalten soll, bietet Ihnen Xamarin ein gutes Framework. Es beinhaltet zum Beispiel kompletten nativen API-Zugriff. Im Vergleich zu anderen hybriden App Frameworks ist Xamarin hier durchaus performanter.
Vorteil 3) Visual Studio App Center
- Mit Xamarin bekommt man die Möglichkeit jede App Aktivität und Abstürze einzusehen und zu analysieren. Hierfür gibt es das Visual Studio App Center, welches die Qualitätssicherung flüssiger und müheloser gestalten lässt.
Xamarin Nachteile
- Xamarin selbst ist kostenlos als Open Source und Teil der .NET-Plattform erhältlich. Für die kommerzielle Entwicklung jedoch ist die Verwendung der integrierten Entwicklungsumgebung (IDE) von Microsoft Visual Studio erforderlich. Dessen Lizensierung ist nicht grade preiswert. Diese variiert zwischen $1,199 und $5,999 Pro Jahr. Abgesehen von der Nähe zur nativen Entwicklung von Xamarin, gibt es dennoch beim Erstellen von Single-Code-Lösungen für mehrere Plattformen einige Einschränkungen. Beispielsweise sind einige Problemumgehungen für Multi-Touch- Funktionen und bestimmte plattformspezifische Gesten erforderlich.
Hybride App Frameworks – Zusammenfassung
Abschließend stellt sich natürlich die Frage, welche der Hybride App Frameworks nun am besten für Sie geeignet ist. Dies hängt sehr viel von Ihrem Vorhaben ab. Ausschlaggebend hierbei ist für welche Plattform Sie ihre App entwickeln wollen und welche Funktionalitäten die App beinhalten soll.
Außerdem spielt das Budget bekanntlich auch eine sehr große Rolle. Sind sie hier limitiert, wird es wahrscheinlich schwer mit Xamarin zu arbeiten. Apache Cordova zum Beispiel wäre hier eine günstigere Variante. Mit Hilfe (aber auch mit den Risiken) nativer Plugins kann eine Cordova-App generell dasselbe erreichen, wie eine Xamarin-App.
Ob dies jedoch genauso effektiv und performant ausgeführt werden kann, ist höchst fraglich. Um die richtige Wahl zu treffen, sollten Sie Ihre Anforderungen analysieren, ein Bild Ihres Endprodukts erstellen und das am besten geeignete Hybride App Frameworks auswählen.