Innerhalb der letzten Beiträge habe ich die Entwicklung mobiler Apps unter die Lupe genommen. Von den Herausforderungen für Unternehmen ging es weiter mit einem Überblick hin zu 3 Möglichkeiten der App-Entwicklung: Nativ, Web, Hybrid.
Der folgende Beitrag fasst die Möglichkeiten der App-Entwicklung noch einmal strukturiert zusammen, um einen besseren Überblick zu geben.
Einordnung und Einsatzszenarien
In der nachfolgenden Tabelle werden die 3 zuvor vorgestellten Möglichkeiten der App-Entwicklung -Nativ, Web, Hybrid- zusammengefasst dargestellt.
Native Apps | Web Apps | Hybrid-Apps | |
Beschreibung | Maßgeschneiderte Apps für eine Plattform, die mit den SDKs, Sprachen und Tools für diese Plattform umgesetzt werden | Mit Webtechnologien umgesetzte statische Webseiten, die das Look&Feel einer nativen App nachbilden und per Browser aufrufbar sind | Statische Webseiten, die in einen nativen Container verpackt werden und wie eine normale App installiert werden können |
Vorteile |
|
|
|
Nachteile |
|
|
|
Wann? |
|
|
|
Einsatz-szenarien |
|
|
|
Betrachtung von nicht-funktionalen Anforderungen
Die nachfolgende Tabelle ordnet die jeweiligen App-Entwicklungsmöglichkeiten bzgl. verschiedener nicht-funktionaler Anforderungen ein, die typischerweise gestellt werden. Die Einordnung geschieht anhand von Schulnoten von “Sehr gut” (1) bis “Mangelhaft” (5).
Native Apps | Web Apps | Hybrid-Apps | |
Benutzererlebnis | Sehr gut Native UI, kompromissloses Look&Feel, sehr gute Performance und Anpassbarkeit |
Ausreichend Nur emulierte UI-Controls, Performance nicht nativ, immer Laden vom Server nötig |
Befriedigend Wie Web App, App-Daten aber lokal vorgehalten, zudem Geräte-Integration möglich |
Geräte-Integration | Sehr gut Direkter Zugriff auf alle Geräte-Funktionen über native SDKs möglich, Integration in Betriebssystem |
Mangelhaft Kein Zugriff auf native Geräte-Funktionen, HTML5-Features des aufrufenden Browsers nutzbar |
Befriedigend Zugriff auf Geräte-Funktionen über nativen Wrapper möglich, aber eingeschränkt, geringe Integration in Betriebssystem |
Portabilität andere Plattformen |
Mangelhaft Neuentwicklung einer App für jede zu unterstützende Plattform nötig, keine Flexibilität bzgl. neuer Plattformen |
Sehr gut Die gleiche App ist direkt auf mehreren Plattformen lauffähig, Inkompatibilitäten sind jedoch möglich |
Gut Codebasis der Web App kann verwendet werden, pro Plattform ist ein nativer Container nötig |
Aufwand Cross Plattform |
Mangelhaft Hohe Kosten und Zeit durch nötige Neuentwicklung für jede Plattform |
Sehr gut Geringe Kosten und Zeit bei Adressierung vieler Plattformen durch Weiterverwendung der gleichen App |
Gut Recht geringe Kosten und Zeit durch Verwendung der Web App als eine Codebasis |
Wartbarkeit | Ausreichend Bugfixes/Anpassungen müssen in jeder App durchgeführt werden, App-Store-Prozesse sind einzuhalten |
Sehr gut Bugfixes/Anpassungen müssen nur einmal durchgeführt werden, nach Deployment der Webseite direkt verfügbar |
Befriedigend Bugfixes/Anpassungen müssen nur einmal durchgeführt werden, App-Store-Prozesse sind einzuhalten |
Verwaltbarkeit | Ausreichend Apps müssen über öffentliche / private App Stores bereitgestellt werden, App-Store-Prozesse sind einzuhalten |
Gut Web Apps stehen direkt nach dem Deployment auf einem Web Server bereit |
Ausreichend Apps müssen über öffentliche / private App Stores bereitgestellt werden, App-Store-Prozesse sind einzuhalten |
Auffindbarkeit | Sehr gut Gängige App Stores stellen primäre Anlaufstelle für Nutzer dar, Bewerbung der App und Suche möglich |
Ausreichend Nutzer können die App über eine URL aufrufen, die ihnen bekannt sein muss |
Sehr gut Gängige App Stores stellen primäre Anlaufstelle für Nutzer dar, Bewerbung der App und Suche möglich |
Investitions-schutz | Mangelhaft Für jede Plattform wird i.d.R. anderes Know How benötigt, Experten sind teuer, Know How wird bei Plattformwechsel überflüssig |
Gut Entwickler müssen sich “nur” in Webtechnologien auskennen, Experten sind zahlreich, Know How ist bei Plattformwechsel nicht verloren |
Befriedigend Wie bei Web App, allerdings müssen Entwickler für den nativen App-Container die jeweilige Plattform in geringem Umfang adaptieren |
Es ist zu beachten, dass alle Anforderungen abhängig vom Szenario eine hohe oder niedrige Gewichtung haben. “Cross Plattform” kann z.B. überhaupt keine Anforderung sein, sodass hier die native App-Entwicklung im Normalfall bevorzugt wird.
Insgesamt ist zu erkennen, dass es bei der App-Entwicklung keine Standardantwort gibt, mit der jedes Problem erschlagen werden könnte. Zu komplex sind die Anforderungen, die u.a. von den zu unterstützenden Plattformen, dem Zielpublikum, dem Entwickler-Know-how und den geplanten Aufwänden abhängen. Daher ist von Fall zu Fall zu entscheiden, welche Lösung am besten geeignet ist.