Native App

Beginnen wir mit der Eingeborenen unter den Apps: die native App. Die nativen Apps werden individuell für Plattformen wie iOS, Android und Windows konzipiert. Sie nutzen die Hardware wie Kamera, GPS oder Sensoren des Endgerätes optimal. Doch jede Plattform besitzt eine eigene Muttersprache, die sie spricht und versteht.

Daher muss für jede Plattform ein individueller Code geschrieben werden, damit die Hardware die App versteht und eine native Performance möglich ist. Das führt in der Entwicklung und in der späteren Pflege zu einem höheren Aufwand, da jede Arbeit für jede der Plattformen einzeln wiederholt werden muss. Durch die Muttersprache wird dafür gesorgt, dass die App voll in das Betriebssystem der Plattform integriert wird.

Dadurch sind native Apps der Sieger in Sachen Usability und Performance. Sie fühlen sich super an und machen Spaß. Das liegt am nativen User Interface: die Benutzeroberfläche. Sie ist das, womit der Endnutzer in Berührung kommt und die Schnittstelle zwischen Endgerät und Mensch. Sie sollte möglichst schnell auf Benutzereingaben reagieren, damit der Benutzer Spaß an der Bedienung hat.

Übrigens gibt es neben der Muttersprache mittlerweile auch einige Tools wie Xamarin zur sogenannten „Cross-Plattform-Entwicklung“: Hier wird in einer einheitlichen Sprache auf allen Zielplattformen entwickelt. Trotzdem sind die entstehenden Apps von nativen Apps nicht zu unterscheiden – haben aber eine Art kleinen Simultanübersetzer dabei, der zwischen der einheitlichen Sprache und der jeweiligen Muttersprache übersetzt. Für unsere heutige Betrachtung können wir diese Bauart von Apps also ruhig als nativ betrachten.

Eine native App kann im Store geladen und auf dem Smartphone oder Tablet installiert werden. Besonders komplexe Projekte mit einer aufwendigen Benutzeroberfläche, die uneingeschränkten Zugriff auf die Hardware benötigen, sind für die native App-Entwicklung sinnvoll.

Web App

Die Muttersprache der Mobile Website ist HTML5. Anzutreffen sind diese, wie der Name unschwer vermuten lässt, im Web. Genauer gesagt: in einem Internet Browser. Und da es Internet Browser für fast alle Betriebssysteme gibt, laufen diese Apps – lässig mit nur einem Code – überall. Auch auf iOS und Android.

Dieser Code findet sein zu Hause auf einem Server. Von dort lädt der Browser über eine Internetverbindung alle benötigten Daten und führt die mobile Website dann aus. Na haben Sie den Schwachpunkt der Mobile Website entdeckt? Richtig – die benötigte Internetverbindung.

Der Einsatz der Mobile Website mit schlechtem Internet, unterwegs oder in Funklöchern ist dementsprechend nicht möglich. Zwar gibt es mittlerweile ein paar Tricks, die auch offline den Einsatz Mobiler Website eingeschränkt ermöglichen. Diese sind aber recht kompliziert und fühlen sich für den Benutzer trotzdem hakelig an – eben als wäre er offline.

Auch haben die Mobile Websites aus sicherheitstechnischen Gründen nur sehr eingeschränkten Zugriff auf die Gerätehardware. Im Gegensatz zur nativen App wird eine Mobile Website nicht heruntergeladen und auf dem Gerät installiert, sondern ist über den Browser erreichbar und wird als digitales Lesezeichen gespeichert.

Eine native App mit einer Mobile Website zu vergleichen ist so, als würde man eine mobile Frittenbude mit dem besten Restaurant der Stadt vergleichen. Aber wenn es vorwiegend um eine informationsgetriebene Aufgabe für die mobile Anwendung geht, ist die Mobile Website goldrichtig.

Eine mobile Website bietet sich immer dann an, wenn der Nutzen für den Anwender eher eine einmalige Sache ist und daher die unkomplizierte und direkte Erledigung seiner Aufgabe im Vordergrund steht: Für das einmalige Buchen eines Flugs installiert man sich keine Flugbuchungs-App.

Web Apps oder auch HTML5 Apps genannt, lassen sich mit dem Open Source Framework Apache Cordova plattformübergreifend entwickeln. Cordova verpackt die Website in die Hülle einer nativen App – quasi eine Website im App-Mantel. HTML5 Apps sind somit kostengünstiger in der Entwicklung als native Apps, da nur ein Code für alle Plattformen geschrieben wird.

Im grundlegenden Aufbau handelt es sich bei einer HTML5 App um eine Website, die einen Rucksack mit sich trägt. In diesem Rucksack befinden sich alle relevanten Informationen zur Sprache, basierend auf HTML5 und JavaScript und die Zielplattformen. Erst die Informationen im Rucksack machen die App voll funktionsfähig – auch offline.

Soll die App einen Barcode scannen? Plugins sorgen für netten extra Code, welcher der App einen intensiveren nativen Touch verpasst und einen Zugriff auf die Gerätehardware erlaubt. Web Apps können ganz normal über den Store installiert werden. Dadurch haben sie die gleichen Rechte (und Pflichten) wie native Apps.

Doch der Nachteil von Web Apps ist das User Interface. Wir als Benutzer bemerken, dass die Benutzeroberfläche nicht so smooth reagiert wie die einer nativen App. Fakt ist: Die Web App ist und bleibt eine Website mit nativen Plugins, die unmöglich an eine native Usability herankommt.

Hybride App

Sie wollen eine App, die mehr als nur eine Website im App-Mantel ist und eine bessere Usability liefert? Die Lösung für das Web-App-Dilemma ist die hybride App. Sie bedient dabei Cross-Plattform die verschiedenen Plattformen und muss nicht individuell für iOS, Android oder Windows entwickelt werden. So sind die Entwicklungskosten wesentlich geringer als bei der rein nativen Entwicklung.

Eine hybride App lässt sich nicht als reine native App, aber auch nicht als reine Web App bezeichnen. Sie ist eine Fusion der Vorteile aus beiden Welten – irgendwie wie ein Marmorkuchen. Hybride Apps werden mit nativem Code geschrieben und an beliebigen Stellen um HTML5-Elemente ergänzt. So ergibt sich eine ideale Mischung aus nativen und webbasierten Elementen.

Der native Code sorgt dafür, dass die App auf Gerätehardware zugreifen kann und nutzt Vorteile der einzelnen Plattformen. Die hybride App wird über den Store auf dem Endgerät installiert.

Soll eine App native Eigenschaften haben, aber kostengünstiger in der Entwicklung sein ist die hybride App quasi der Black Jack unter den Apps.