Vor- und Nachteile der hybriden App-Entwicklung
Zunächst einmal gibt es eine Menge Mythen, wenn es um die Strategie für die Entwicklung einer mobilen App geht. Diese spalten sich üblicherweise in drei Hauptkategorien, die bei der Auswahl einer Technologie relevant sind: Zeit, Geld und Personal. Aufgrund meiner Erfahrung in der mobilen App Entwicklung gehe ich davon aus, dass Sie und Ihre Teams wahrscheinlich auch genau durch einen dieser drei Ressourcen eingeschränkt sind.
Wenn es um die Auswahl der richtigen Technologie geht, gibt es sehr gerne Glaubenskriege, insbesondere bei der Diskussion, welche Technologie oder welcher Ansatz der „bessere“ ist. Wenn ich in den letzten zehn Jahren der App-Entwicklung etwas gelernt habe, dann, dass „besser“ immer relativ ist, soll heißen: „Es kommt drauf an". In den Worten von Adam Savage: „Jedes Werkzeug ist ein Hammer“. Sie können Ihre mobilen Apps wirklich mit einer Vielzahl von Technologien entwickeln. Ich würde jedoch lieber Nägel mit einem echten Hammer als mit meinem MacBook Pro in die Wand schlagen.
In diesem Artikel will ich aufzeigen wie Sie, abgestimmt auf das jeweilige Projekt, die Liste der Werkzeuge eingrenzen können. Mein Ziel ist es nicht, den Fanatismus für bestimmte Werkzeuge oder Technologien zu überwinden, daher gehe ich davon aus, dass Sie Ihre Strategie agnostisch definieren. Natürlich, wenn Ihr Team auf eine bestimmte Technologie festgelegt ist, treffen Sie die besten fundierten Entscheidungen für Sie und Ihr Team mit den verfügbaren Werkzeugen.
Aktuelle Herausforderung: Personalressourcen
Laut einem aktuellen Artikel von Ionic gibt es „mehr als 5,5 Millionen Android- und iOS-Apps auf dem Markt“. Dies bedeutet, dass Entwickler und Entwicklungsteams hochwertige Anwendungen produzieren müssen, um nicht nur den Branchenstandards in einem sich ständig verändernden regulatorischen Umfeld gerecht zu werden, sondern auch um die Erwartungen der Nutzer zu übertreffen. Diese sind von einem Ökosystem geprägt, das von viel großen und erfahrenen Entwicklungsteams gestaltet wurde. Mobile Apps zu erstellen, die Anforderungen und Vorschriften entsprechen und gleichzeitig herausragende Nutzererlebnisse bieten, kann viel Zeit-, Geld- und Personalressourcen erfordern - größere Entwicklungsteams verfügen wahrscheinlich über das, was sie für die Entwicklung benötigen.
Jedoch ist es selbst für gut ausgestattete Entwicklungsteams schwierig, hochwertige mobile Apps zu entwickeln, die die Erwartungen der Nutzer übertreffen. Budgets werden aktuell eher kleiner als größer, das verringert die Herausforderungen nicht. Glücklicherweise gibt es einige Möglichkeiten, die Softwareentwicklungsprozesse zu optimieren und überlegene mobile Apps zu produzieren. Dafür müssen wir uns zunächst die verfügbaren Strategien ansehen.
Bei der Diskussion über die mobile App Entwicklung gibt es in der Regel zwei Hauptstile von Entwicklungsstrategien: Die traditionelle und die hybride App Entwicklung.
Traditionell oder hybrid Apps entwickeln?
Was sind native mobile Apps?
Traditionelle mobile Apps, sogenannte native Apps, werden in einer Sprache und einem Format geschrieben, das spezifisch für die jeweilige Plattform ist. Oft sind das Swift/SwiftUI/UIKit für iOS im Apple-Ökosystem und Java bzw. Kotlin für Android im Google-Ökosystem. Diese traditionellen Entwicklungsökosysteme für mobile Apps verwenden unterschiedliche Ansätze zum Erstellen, Testen und Bereitstellen von Apps und erfordern spezifische Fach- und Programmierkenntnisse, je nachdem, ob Sie mobile Apps für iOS oder Android entwickeln.
Was sind hybride Apps?
Hybride Apps hingegen werden in einer einzigen Codebasis geschrieben und können unabhängig vom Betriebssystem direkt auf dem Gerät des Nutzers installiert werden. Während Sie dennoch die Nuancen von iOS und Android berücksichtigen müssen, wenn es um das Testen, Bereitstellen und Verwalten der Apps geht, wird die Komplexität durch eine einzige Codebasis erheblich reduziert. Sie müssen keine spezialisierten Entwickler haben, die parallel an einer iOS- und Android-App arbeiten, um beide Plattformen zu bedienen, sondern jeder Entwickler in Ihrem Team kann zu beiden Plattformen beitragen. Dies wird erreicht, indem der zugrunde liegende Code in einen nativen Container eingebettet wird, der auf dem Gerät des Nutzers läuft.
Welche Skills braucht mein Team für die App-Entwicklung?
Grundsätzlich basieren traditionelle und hybride Anwendungen auf drei Architekturschichten: Der Daten-Schicht, der Business Logik und der Präsentationsschicht. Auch wenn die Debatte über traditionelle und hybride App Entwicklung sich typischerweise auf die Präsentationsschicht konzentriert, sollten bei der Konzeption jeder Teil der Architektur berücksichtigt werden.
Dabei ist das Skillset, das für die Entwicklung hybrider Apps erforderlich ist, deutlich weniger umfangreich, denn alle Schichten basieren auf eine Sprache: JavaScript. Die meisten Entwickler beherrschen zumindest die Grundlagen von JavaScript und können leicht darauf aufbauen, während echte native Fullstack-Entwickler, die sowohl Swift, als auch Kotlin als auch z.B. Java beherrschen, eher selten sind. Setzen Sie also auf hybride Entwicklung, bleiben die Zeit, das Geld und die Personalressourcen, die erforderlich sind, um die App zu entwickeln, in einem absolut überschaubaren Umfang.
Die Vorteile der traditionellen App-Entwicklung
Meiner Meinung nach besteht der größte Vorteil der traditionellen mobilen App Entwicklung in der Möglichkeit, die neuesten und plattformspezifischen Funktionen zu nutzen, die von Apple und Google für ihre Ökosysteme entwickelt werden. In der Regel hinken hybride Plattformen bei nativen Integrationen für diese Funktionen hinterher - was bedeutet, dass Sie die Integrationen selbst entwickeln müssen. Bei einigen Funktionen ist es auch einfach nicht praktisch, da die von Ihnen entwickelte Funktion von einem hybriden Entwicklungsansatz nicht profitieren würde.
Ein perfektes Beispiel hierfür sind Augmented Reality (AR) Technologien. Hier macht es keinen Sinn, die notwendigen Funktionen mit einem hybriden Ansatz zu integrieren, da die Funktionalität bis jetzt nur im Apple-Ökosystem existiert und es einfacher ist, sie dort direkt zu einzubinden.
Der nächste Vorteil ist ein natives „Look & Feel“. Apple und Google haben beide ihre eigenen Richtlinien für Benutzeroberflächen, um erfolgreiche Apps innerhalb ihrer Ökosysteme zu entwickeln. Diese Richtlinien weichen an vielen Stellen voneinander ab.
Nutzer erwarten, dass ihre mobilen Apps auf gewohnte und sehr bestimmte Weise aussehen und funktionieren. Für Sie bedeutet das, dass Sie bei einem hybriden Ansatz möglicherweise einige Kompromisse für plattformübergreifende Fähigkeiten eingehen müssen, die Sie bei einem nativen Entwicklungsansatz nicht zur Diskussion stehen. Bei nativer Entwicklung haben Sie auch die Möglichkeit, die Benutzeroberflächen und Benutzererfahrungen jeder Plattform detaillierter abzustimmen, als es mit einem hybriden Entwicklungsansatz möglich ist.
Der letzte Vorteil traditioneller nativer Entwicklung ist die Leistung. Die Realität ist, dass Sie bei einem hybriden Ansatz eine zusätzliche Schicht zwischen Nutzer und System hinzufügen, wodurch es zu einem Leistungsabfall kommen kann. Dieser tritt bei einem traditionellen Entwicklungsansatz möglicherweise nicht auf. Insbesondere betrifft das Apps, die für das Apple-Ökosysteme entwickelt werden, da dort der Code buchstäblich exakt für die Hardware entwickelt wird, auf der er letzten Endes ausgeführt wird. Zusammengefasst bedeutet das, dass Sie mit einer nativen Codebasis technisch „leistungsstärkere“ Apps erstellen können, als Sie es mit einem hybriden Ansatz könnten.
Sind native Apps nicht automatisch besser?
Während die oben genannten Vorteile auf dem Papier gut aussehen, heißt das nicht, dass es in der Praxis immer automatisch von Vorteil ist, Ihre Anwendungen nativ zu entwickeln.
Nur wenige Projekte nutzen die neuesten nativen Funktionen direkt innerhalb der ersten Monate nach ihrer Veröffentlichung, und bis die Entwicklungsteams planen, diese Funktionen zu integrieren, sind sie in der Regel für hybride Entwicklungsansätze verfügbar. Außerdem sind für Geschäftsanwendungen die neusten Funktionen oft nicht sofort relevant.
Noch schwieriger wird die Verwaltung der einzelnen Versionen ihrer nativen App bei fein abgestimmten Benutzererlebnissen. Für jede Plattform muss ein eigenes Erlebniskonzept erarbeitet werden, sodass Sie die Kohärenz zwischen den verschiedenen Versionen Ihrer mobilen Apps verlieren und sich diese zu völlig separaten Anwendungen entwickeln.
Diese Herausforderungen sind nicht die einzigen, die mit der traditionellen Entwicklung verbunden sind. Die Wiederverwendbarkeit von Code ist eine ziemlich bedeutende Herausforderung, insbesondere wenn man von den oben beschriebenen potenziellen Vorteilen spricht. Ein Entwicklungsteam kann die neuesten Funktionen nutzen, die von Apple oder Google veröffentlicht wurden, aber um beide Versionen der mobilen App in einem traditionellen Entwicklungsansatz diese Funktionen nutzen zu lassen, muss dies zweimal entwickelt werden, und zwar in der Regel auf unterschiedliche Weise. Eine weitere Herausforderung ist die Sicherheit, da beide Plattformen individuelle Sicherheitsimplementierungen und rigoroses Testen erfordern, um sicherzustellen, dass Ihre Apps nicht nur sicher sind sondern auch stabil laufen.
Das soll nicht heißen, dass eine traditionelle mobile App Entwicklungsstrategie ein fehlerhafter Ansatz ist. Wie oben beschrieben gibt es meiner Meinung nach einige Vorteile, aber ich denke, es ist wichtig zu verstehen, dass die Zeit, das Geld und die Personalressourcen, die erforderlich sind, um diese Vorteile zu realisieren, für die meisten Teams eine hohe Messlatte darstellen.
Die Vorteile der hybriden App-Entwicklung
Als Unternehmen, das überwiegend hybride Apps entwickelt, sehen wir natürlich vor allem die Vorteile, die für den Einsatz von Capacitor oder anderen hybriden Technologien sprechen.
Der größte Vorteil von hybriden Strategien zur mobile App Entwicklung ist die Möglichkeit, Code wiederzuverwenden. In einem hybriden Entwicklungsansatz kann ein Entwicklungsteam sein Projekt in einer Sprache wie JavaScript entwickeln und dann das Projekt auf iOS und Android mit nur einer einzigen Codebasis bereitstellen. Dies stellt nicht nur sicher, dass Entwickler keine separate iOS- oder Android-Codebasis erstellen müssen (was Zeit, Geld und Personalressourcen während der Entwicklung spart und schneller auf den Markt bringt), sondern sie können auch beide Versionen des Codes von dieser einzigen Codebasis aus verwalten. Der andere wesentliche Vorteil besteht darin, dass einige hybride Entwicklungsframeworks wie Capacitor nicht nur die Möglichkeit bieten, Apps auf mobilen Endgeräten für iOS und Android bereitzustellen, sondern auch im Web und auf Desktop.
Der nächste Vorteil ist, dass sie einfach das bestehende Know-how Ihrer Mitarbeitenden nutzen können. Nach meiner Erfahrung verfügen Web-Entwicklungsteams in der Regel nicht über die Ressourcen für iOS- und Android Code. Bei nativer Entwicklung müssten Sie also neue Entwickler einstellen oder einen hohen Ressourcenaufwand für Fort- und Weiterbildung aufbringen. Dies kostet nicht nur Zeit, sondern stellt auch eine erhebliche Zusatzbelastung für Ihre Entwickler dar, insbesondere wenn sie bereits eine umfangreiche Arbeitslast bewältigen müssen. Bei hybrider App Entwicklung können Webentwickler ihre vorhandenen Fähigkeiten nutzen, um auch mobile Apps zu erstellen. Dabei wird nicht der der Aufwand zum Erlernen neuer Sprachen erheblich reduziert, sie können auch Ihr aufgebautes Know-how weiter ausbauen. Das spart nicht nur Zeit und Geld sondern führt auch schneller zu fachlich guten Ergebnissen.
Ein weiterer Vorteil der Nutzung einer hybriden Strategie zur mobilen App Entwicklung: Eigentlich plattformspezifische Funktionen können plattformübergreifend genutzt werden.
Dank Plugins kann auf iOS und Android relativ einfach mit gerätebezogenen Funktionen (wie z. B. Kamera, Push-Benachrichtigungen, Standortermittlung etc.) kommuniziert werden. Das macht hybride Apps unglaublich leistungsstark, insbesondere wenn eine erhebliche Anzahl gerätebezogener Funktionen in der App unterstützt werden soll.
Sind hybride Apps das Non Plus Ultra?
Hybrid bedeutet nicht, dass Sie eine nicht voll funktionsfähige mobile App bereitstellen - hybrid bedeutet, dass plattformübergreifende Funktionen einmal, und nur plattformspezifische Funktionen mehrmals entwickelt werden.
Natürlich gibt es einige Ausnahmen, wie ich sie bei der Diskussion über traditionelle App Entwicklungsstrategien erwähnt habe, aber die meisten Projekte werden von dem abgedeckt, was bereits verfügbar ist. Falls doch mal ein Plugin fehlen sollte, haben Sie immer noch die Möglichkeit, dieses selbst nativ zu entwickeln.
Zusammenfassend gibt es viele Vorteile beim Verfolgen einer hybriden Entwicklungsstrategie für Ihre mobile App, aber es existieren auch Herausforderungen. Während ich einen guten Teil der Herausforderungen bei der Diskussion über die traditionelle mobile App Entwicklung skizziert habe, habe ich eines noch nicht angesprochen: Sie benötigen auch bei der hybriden Entwicklung einige funktionale Kenntnisse über das Arbeiten innerhalb der mobilen App-Ökosysteme von Apple und Google.
Während Sie eine einzige Codebasis haben, muss auch dieser Code als App in den einzelnen App Stores (App Store von Apple und Google Play von Google) bereitgestellt werden. Beide Stores haben eigenen Prozesse für das Testen und Bereitstellen von Apps. Es gibt hilfreiche Werkzeuge, um diesen Prozess zu erleichtern, aber Ihr Team wird dennoch ein gewisses Maß an Wissen über die Bereitstellung nativer Apps benötigen, das aber schnell aufgebaut werden kann.
Hilfestellung zur Entscheidung: Hybrid oder traditionell nativ?
Während die Wahl einer Strategie von den Grenzen Ihres Projekts abhängt, gibt es aus meiner Sicht einige Faktoren die immer relevant sind. Beantworten Sie für Ihr Projekt unbedingt folgende Fragen:
Frage | Ja? | Nein? |
---|---|---|
Verfügt mein Team über die Fähigkeiten, um native mobile Apps zu entwickeln? Wenn nicht, habe ich das Budget, um meine Mitarbeitenden entsprechend fortzubilden? | ||
Erfordert mein Projekt, dass wir stets die neuesten Funktionen von Apple und Google nutzen? | ||
Habe ich das Budget, um zwei separate mobile Anwendungen zu entwickeln? | ||
Habe ich genügend Ressourcen, um zwei separate mobile Apps zu warten und neue Funktionen zu entwickeln, auch wenn das Kernprojekt schon abgeschlossen ist? | ||
Hat dieses mobile Projekt einen langfristigen Entwicklungszeitraum und/oder habe ich ein erheblich eingeschränktes Zeitfenster, um die Anwendung zu veröffentlichen? |
Wenn Sie die Mehrheit dieser Fragen mit „Nein“ beantwortet haben, könnten Sie wahrscheinlich von der Nutzung einer hybriden Strategie zur mobile App Entwicklung für Ihr Projekt profitieren und es lohnt sich zumindest, diesen Weg für Ihr Team zu skizzieren. Wenn Sie die Mehrheit der Fragen mit „Ja“ beantwortet haben, könnte Ihr Projekt besser für die traditionelle native Strategie geeignet sein.
Wenn Sie sich noch unsicher sind, kontaktieren Sie uns gerne. Wir überprüfen gemeinsam mit Ihnen die Möglichkeiten Ihres Projekts und beraten Sie zur Umsetzung Ihrer App, ob nativ oder hybrid.