Zeige Artikel getaggt mit hybride app
Formen der Anwendungsentwicklung: Was sind native, hybride und web Apps?

Manches Software Start-Up oder Projektteam hat sich bereits in einer Situation wie der folgenden wieder gefunden: Man hat eine tolle Idee für eine Anwendung, die Investoren sind überzeugt, das Team ready und die Büroräume eingerichtet. Eigentlich könnte man sofort mit der Umsetzung beginnen. Doch bevor die ersten Zeilen Code geschrieben werden können, muss man sich für eine Umsetzungsform entscheiden. Keine einfache Wahl. Soll die Anwendung als responsive Web-Applikation umgesetzt werden, wie das immer häufiger getan wird oder sind die besonderen Funktionen von mobilen Geräten zentral für das vorliegende Problem?

Dieser Artikel gibt eine kurz Einführung in die drei Hauptvarianten der App-Entwicklung.

1. Webanwendung

Die Anwendung wird wie eine Internetseite zentral auf einem Server gehostet, auf die von allen Usern zugegriffen wird. Hierbei dient der Browser als Anwendungsumgebung und als Schnittstelle zum Betriebssystem. Der Entwickler kann deswegen davon ausgehen, dass die Webseite auf verschiedenen Betriebssystemen funktioniert, ohne dass spezielle Anpassungen nötig sind. Beispiele für Webanwendungen sind Google DocsToggl oder Facebook.

Vorteile

  • Webanwendungen sind Plattform übergreifend, da über jedes Gerät mit Internetbrowsern darauf zugegriffen werden kann, dadurch entsteht weit weniger Entwicklungsaufwand im Vergleich zu nativen Anwendungen.
  • Updates der Applikation müssen nicht installiert werden sonder sind sofort für alle Nutzer verfügbar.
  • Bei Verkauf muss keine Provision an App-Stores gezahlt werden.
  • Keine Limitierungen bei Design oder Funktionalität durch strenge Vorgaben der App-Stores (besonders Apple und Microsoft).

Nachteile

  • Es wird eine permanente Internetverbindung benötigt.
  • Aus Sicherheitsgründen wenig oder gar kein Zugriff auf Hardware und Features des Betriebssystems möglich (Kamera, Mikrofon, Speicherverwaltung,...).
  • Längere Reaktionszeiten als bei nativen Anwendungen, diese sind vor allem bei Touch-Eingaben bemerkbar.
  • Schlechtere Performance im Vergleich zu nativen Anwendungen.
  • Kein Verkauf über App-Stores möglich.
  • Browserkonformität kann problematisch sein, vor allem wenn ältere Versionen des Internet-Explorers oder verschiedene mobile Browser unterstützt werden sollen.

2. Hybride Anwendung

Eine hybride Anwendung vereint Vorteile der Web App und der nativen Anwendung. Bei hybriden Anwendungen wird eine native Hülle (engl. “wrapper”) erstellt, welche als Schnittstelle zum Betriebssystem dient und den Zugriff auf die Hardware des Geräts und auf Funktionen des Betriebssystems ermöglicht, wie zum Beispiel auf den Beschleunigungssensor, das GPS oder die Speicherverwaltung. Diese Hülle ist in einer für die Zielplattform verständlichen Sprache geschrieben. In diese Hülle wird anschließend eine Webseite gelegt, welche aus HTML, CSS und Javascript besteht. Vereinfacht kann gesagt werden, dass die Hülle ein Browser ist, bei dem alle Navigationselemente und Menüpunkte ausgeblendet wurden.

Bei hybriden Applikationen kann zusätzlich zwischen der Off- und der Onlinevariante unterschieden werden. Bei der Offline-Version wird die Internetseite direkt auf dem Gerät gespeichert. Bei der Online-Version muss bei dem Öffnen der App eine Internetverbindung bestehen, um die Webseite abrufen zu können.

Die hybride Form wird eher für die Entwicklung von mobilen Applikationen verwendet als für die Umsetzung einer klassischen Desktopanwendung. In Windows 8 gibt es aber bereits die Möglichkeit, hybride Desktopanwendungen zu realisieren.

Frameworks, welche den Entwickler dabei unterstützen, eine hybride Anwendung für verschiedene Betriebssysteme zu Verfügung zu stellen sind zum Beispiel titanium oder phonegap.

Vorteile

  • Verkauf in App-Stores ist möglich.
  • Haben das Aussehen einer nativen Anwendung, da Menüpunkte und die URL-Leiste des Browsers entfallen.
  • Zugriff auf Geräte- und Betriebssystemspezifische Funktionen ist möglich.
  • Sind im Vergleich zu Webanwendungen auch offline benutzbar, so lange die Anwendung keine permanente Datenverbindung benötigt.
  • Es entsteht weniger Entwicklungsaufwand als bei nativen Anwendungen.
  • Updates gelten sofort für alle Nutzer, sobald diese mit dem Gerät online gehen.

Nachteile

  • Schlechtere Performance im Vergleich zu nativen Anwendungen.
  • Längere Reaktionszeiten als bei nativen Anwendungen, vor allem bei Touch-Eingaben.
    Browserkonformität kann problematisch sein.
  • Verkauf bei mobilen Anwendungen meist nur über App-Stores möglich, dadurch auch Bindung an Shoprichtlinien.
  • Bugfixing kann problematisch sein wenn kein Framework verwendet wird, da die Wrapper  sich zum Teil anders verhalten als “normale” Browser.
  • App-Stores sind Wrappern gegenüber eher skeptisch.

a1sx2_blog_Hybrid_Apps.jpg

 

3. Native Anwendung

Dies ist die “edelste” Form der Umsetzung. Hierbei wird die Anwendung speziell für die jeweilige Zielplattform (daher nativ) zugeschnitten und umgesetzt. Dadurch können über die Anwendung Funktionen und spezielle Software des Betriebssystems direkt angesteuert werden, wie zum Beispiel die Kamera, die Speicherverwaltung oder der Fingerabdrucksensor. Außerdem sind native Anwendungen potentiell sehr performant und eignen sich besonders für rechenintensive Applikationen, etwa für 3D Computer Spiele oder Aufgaben im Forschungsbereich.

Dies setzt jedoch voraus, dass die Anwendung in einer für das Betriebssystem verständlichen (“nativen”) Sprache geschrieben wurde. Für iOS, welches auf iPhone und iPads läuft, wäre das zum Beispiel Objective-C und für Android-Geräte Java. Für Windows 8 können Apps gleich in mehreren Sprachen umgesetzt werden - in C++.NET und sogar mit HTML, CSS und Javascript.

Die Umsetzung als native Anwendung ist daher oftmals die aufwändigste, da viele Funktionen selbst geschrieben werden müssen, die bei Webseiten der Browser bereitstellt (zum Beispiel die Arbeitsspeicherverwaltung).

Vorteile

  • Sehr Performant.
  • Verkauf in App-Stores möglich.
  • Zugriff auf alle Geräte- und Betriebssystemspezifische Funktionen.

Nachteile

  • Hoher Entwicklungsaufwand, vor allem bei Umsetzungen für mehrere Plattformen.
  • Verkauf bei mobilen Anwendungen meist nur über App-Stores möglich, dadurch auch Bindung an Shoprichtlinien.
  • Updates aufwändig.

Es wird leicht klar, dass es nicht eine beste Umsetzungsform gibt, sondern dass die Wahl stark von der jeweiligen Anwendung abhängt. Ist eine einfache ToDo-Liste für Mobilgeräte geplant, welche auch offline verfügbar sein soll, macht eine Umsetzung als hybride Anwendung Sinn. Möchte man ein Spiel entwickeln, bei dem es auf schnelle Reaktionen ankommt oder welches grafisch anspruchsvoll ist, sollte man nativ entwickeln. Und für eine Social Media Anwendung mit einer großen Nutzerbasis und vielen Kollaborationsmöglichkeiten macht es wahrscheinlich Sinn, diese sowohl als Webapplikation als auch als hybride Anwendung umzusetzen, um den Nutzern auch unterwegs eine bestmögliche Anwendungserfahrung zu ermöglichen.

 a1sx2_blog_Native_html5_hybrid.png

Show page in

Was Kunden
über uns sagen

cloud solutions hat uns im Aufbau der online Befragung professionell, massgeschneidert und fachlich kompetent unterstützt.

Nadine Eggimann
Militärakademie an der ETH Zürich, Schweiz

 
 
 
The future of the PHP PaaS is here: Our journey to Platform.sh
CS Tech
In our team we’re very confident in our ability to produce high quality software. For the past decad...