Nachdem mit den Hybrid Apps jetzt alle fünf Technologien dieser Blogreihe vorgestellt wurden, werden in den nächsten zwei Artikeln alle Technologien miteinander verglichen. In diesem Artikel werden zunächst die technischen Kriterien: Performance, native Features, Abhängigkeit von anderen Technologien oder Herstellern und Komplexität miteinander verglichen. Am Ende der Artikels geben ich Ihnen eine Entscheidungsmatrix an die Hand, mit der die Entscheidung zu einer Technologie möglichst einfach gemacht werden.
Die Blogreihe „Technologien mobiler Anwendungen"
Hier finden Sie die Auflistung der einzelnen Blogartikel, die zur Blogreihe gehören. Diese Agenda wird mit jedem neu veröffentlichten Artikel erweitert.
Technischer Vergleich der Technologien
Wirtschaftlicher Vergleich der Technologien
Gesamtvergleich der mobilen Technologien
In der folgenden Tabelle habe ich alle im Artikel genannten Merkmale der App-Technologien zusammengefasst. Kleiner Bonus: Eine Übersicht über die Entwicklungskosten im Vergleich.
Technologie / Merkmal | Performance | Zugriff auf native (Hardware-) Features | Abhängigkeit von Drittanbietern | Entwicklungskosten (10k € -100k €) |
---|---|---|---|---|
Native App | Sehr gut, auch bei grafikintensiven Anwendungen | Sehr gut, da nativ entwickelt | Niedrig, plattformspezifische App | Hoch, separate Entwicklung pro Plattform |
Nicht-natives Framework | Gut, auch bei intensiven Anwendungen | Zugriff auf fast alle Features | Mittel bis hoch, Plugins erforderlich | Mittel, eine Codebasis, zusätzliche native Integration |
Cross-Compile Framework | Gut, auch bei intensiven Anwendungen | Zugriff auf fast alle Features | Mittel, teilweise Plugins erforderlich | Mittel, eine Codebasis, separate Anpassung |
Progressive Web App | Leicht eingeschränkt durch Web-Layer | Zugriff auf fast alle Features | Hoch, angewiesen auf viele Bibliotheken | Niedrig, Entwicklung mit Web-Technologien |
Hybrid App | Leicht eingeschränkt durch Web-Layer | Leichte Einschränkungen beim Hardwarezugriff | Hoch, Abhängigkeit von Plugins | Mittel, eine Codebasis, zusätzliche native Integration |
Perfomance-Vergleich mobiler App Technologien
Die Performance einer App kann durch mehrere Faktoren beeinflusst werden. Zum einen fühlt sich eine App für Nutzer langsam an, wenn die Oberfläche und Bilder länger (z.B. zwei Sekunden) brauchen, um zu laden und nicht sofort verfügbar sind. Verwendet eine App die nativen UI-Komponenten des Betriebssystems, ist die Nutzeroberfläche häufig schneller aufgebaut, weil die Komponenten bereits vorgeladen sind.
So lässt sich schnell sagen, dass Technologien, welche eine WebView nutzen, bei intensiven Anwendungen oft langsamer sind als native Apps, da die Kommunikation zwischen den eigentlich schnellen Schichten die Performance drosselt.
Bei der Performance sollte aber beachtet werden, dass es hier wirklich nur um geringfügige Unterschiede von oftmals nur Millisekunden geht! Auch eine App mit WebView läuft auf den heutigen Geräten sehr flüssig. Die Performance spielt vor allem bei Apps eine wichtige Rolle, die sehr viel Rechen- bzw. Grafikleistung fordern.
Bei einer simplen App, wie z.B. einer Shop-App, ist die theoretische Performance der Technologie kein zu beachtendes Kriterium. Daher liegen die nativen Apps in der Performance Kategorie vorn, gefolgt von den gleich zu bewertenden Cross Compile Frameworks und nicht-nativen Frameworks. Progressive Web-Apps und Hybrid Apps zeigen eine ähnliche Performance und liegen gemeinsam auf Platz 3.
Vergleich des Zugriffs auf native Features
Die nativen Features eines Gerätes umfassen unter anderem die verbauten Sensoren, wie z.B. das GPS oder Accelerometer, die Kamera, das Mikrofon, aber auch die Benachrichtigungstöne und die Kontaktliste. Um diese Features zu nutzen, muss Anwendung mit den Schnittstellen des Betriebssystems kommunizieren.
Eine native App kann ohne Umwege ganz einfach auf eine solche Schnittstelle zugreifen. Bei Cross Compile Frameworks und nicht-nativen Frameworks benötigt man für viele Features sogenannte „Plugins", die aus dem Framework oder von Drittanbietern stammen. Diese sind in der Regel wieder in nativem Code geschrieben. Die meisten Frameworks ermöglichen durch ihre Plugins mittlerweile den vollständigen Zugriff auf alle Standard-Funktionen des mobilen Endgeräts.
Bei Hybrid Apps ist das Prinzip ein ähnliches. Dort werden in der WebView auch mithilfe von Plugins die nativen Features nutzbar gemacht. Die Plugins von Hybrid Apps sind in der Regel auch in nativem Code geschrieben. Der Wrapper einer Hybrid-App funktioniert also wie eine Brücke zwischen den nativen Features und der WebView. Bei Progressive Web Apps ist der Zugriff auf native Features abhängig von dem Browser, in dem die WebView läuft. Die meisten modernen Browser unterstützen allerdings schon einen Großteil nativer Features.
Abhängigkeit von anderen Technologien und Drittanbietern
Bei der Entwicklung mit Frameworks ist die Abhängigkeit von anderen Technologien bzw. Herstellern am stärksten. Bei allen vorgestellten Technologien mit einem Framework, also Cross Compile Frameworks, nicht-native Frameworks und Hybrid Apps, kommt man nicht drumherum, Third-Party-Plugins zu benutzen.
Bei allen Frameworks sind viele Plugins für die nativen Features in nativem Code geschrieben. Dadurch entsteht über Umwege auch eine Abhängigkeit von der nativen Sprache selbst.
Bei der Entwicklung von Progressive Web Apps und hybriden Apps ist man auch immer abhängig vom verwendeten Browser, weil die WebView im Hintergrund vom Browser betrieben wird. Hier entsteht eine Abhängigkeit von der jeweiligen Browsertechnologie und den Plugins.
Alle genannten Technologien außer der Progressive Web Apps sind zudem von dem jeweiligen App Store abhängig, über den die App heruntergeladen werden kann. Die App muss erst eine Prüfung des Vertreibers bestehen, um zu dem App Store zugelassen zu werden. Auch über das Bezahlsystem hat der App-Entwickler selber keine Kontrolle. Native Apps haben prinzipiell am wenigsten Abhängigkeiten, dicht gefolgt von den Progressive Web Apps, die abhängig vom Browser sind. Nicht-native Frameworks und Cross Compile Frameworks haben viele unterschiedliche nicht gut beeinflussbare Abhängigkeiten und Hybrid Apps haben zusätzlich zu diesen Abhängigkeiten auch noch die Abhängigkeit zum Browser.
Wenn Sie die nächsten Artikel der Blogreihe „Technologien mobiler Anwendungen" nicht verpassen wollen, dann folgen Sie newcubator auf den Social Media Kanälen und schauen Sie regelmäßig auf unserer Blogseite vorbei. Im nächsten Artikel vergleichen wir alle bisher vorgestellten Technologien im wirtschaftlichen Vergleich der Technologien.
Sie haben eine Produktidee für eine App und sind sich unsicher, welche Technologie für Sie die Beste ist? Dann kontaktieren Sie uns gerne für ein unverbindliches Erstgespräch.