Hybrid oder nativ? Der einfache Ansatz für Ihre Mobile App
Was sind hybride und native Apps?
Wenn man sich entschieden hat mit der Entwicklung einer mobilen Anwendung zu starten stellt sich eine zentrale Frage: “Welche Technologien sind die Richtigen für mich?” Hierzu gibt es zwei zentrale Ansätze. Entweder man entscheidet sich für eine sogenannte hybride Applikation oder man entwickelt seine App nativ für jede Plattform.
Die erste Möglichkeit verwendet eine sogenannte Webview, um Inhalte, die für einen Browser gedacht sind in einer eigenen Applikation anzuzeigen. Dabei können teils auch Funktionen des Endgerätes angesprochen werden, daher der Name “Hybrid”. Ein Entwickler erstellt die Anwendung also nur ein einziges Mal für mehrere Endgeräte. Dieser Ansatz wirkt auf den ersten Blick natürlich deutlich effizienter, da man bei der nativen Entwicklung mehrere Anwendungen entwickeln muss, z.B. für iPhones und Android Phones.
Wieso dann überhaupt nativ entwickeln?
Hierzu kann es verschiedene Gründe geben. Eines vorweg: es gibt keinen Ansatz, keine Technologie, welche nur Vorteile bietet und in allen Fällen die richtige Wahl ist.
Zunächst sind native Applikationen in der Regel performanter als hybride, da sie das spezifisch für eine Plattform entwickelt werden. Bei Applikationen, die enorme Rechenleistung und andere Kapazitäten benötigen, kann es also ratsam sein die performantere Lösung zu wählen. Ansonsten würde darunter das Nutzererlebnis leiden. Native Apps haben ebenfalls den Vorteil, dass das User Interface (UI) direkt für das jeweilige Betriebssystem (OS) optimiert ist. Somit kann ebenfalls eine bessere User Experience (UX) erreicht werden.
Auch muss es nicht immer Sinn machen eine App überhaupt für alle Geräte herauszugeben. Eine App, welche beispielsweise darauf aufbaut die Performance des Smartphones zu überwachen würde auf einem iPhone grundlegend anders funktionieren als auf einem Samsung oder Huawei Gerät. In diesem Falle wäre ein hybrider Ansatz schlicht ineffizient
Sind hybride Applikationen also immer langsam und hässlich?
Nein! Der Trend erstellen Erstellen von hybriden Applikationen bewegt sich in genau die andere Richtung. Vor einigen Jahren war es tatsächlich der Fall, dass mit ziemlich genauer Sicherheit erkannt werden konnte, welche Anwendung spezifisch für ein bestimmtes OS erstellt wurde. Dabei wurden meist statische Webseiten mittels HTML, CSS und Javascript entwickelt und anschließend in die eigentliche App (einen sogenannten “Wrapper”) gepackt: Dieser fungierte als Browser, um die Inhalte darzustellen und kann bedingt auf Geräte-Funktionalitäten zugreifen. Andernfalls ist die Rede nicht von hybriden, sondern von Webanwendungen.
Mittlerweile werden hierzu eigene, moderne Frameworks, wie “React Native” oder “Ionic”, eingesetzt. Diese können auf unterschiedliche Art und Weise so gut wie alle Funktionalitäten der Endgeräte nutzen und kommen den spezifischen Applikationen, die mit Kotlin oder Swift erstellt wurden performance-technisch immer näher. So wurde in der Vergangenheit React Native verwendet, um nutzerfreundliche Anwendungen von Bloomberg, Facebook, Wix, Discord , AirBnb, Walmart und vielen weiteren zu erstellen.
TL;DR
Für große Anwendungen, wie Mobile Games oder plattformspezifische Apps wird es höchstwahrscheinlich sinnvoller sein direkt für das gewünschte Betriebssystem zu programmieren, also Kotlin für Android, bzw. Swift für iOS zu verwenden. In allen anderen Fällen ist meiner Meinung nach deutlich effizienter ein modernes Framework, wie React Native einzusetzen, um performante, einfach zu bedienende und optisch ansprechende Apps zu entwickeln. Eine genauere Einschätzung der Vor- und Nachteile der Technologien erfolgt in einem zukünftigen blog-Eintrag.