Native Crossplattform App-Entwicklung mit NativeScript?

Von 1. August 2016Web & App, Wissenswertes

Es gibt viele Wege, Apps zu entwickeln. Entscheidet man sich für native Apps – wie Google und Apple es vorschlagen – kann man die volle Funktionalität und Performance nutzen, die die Systeme hergeben. Entwickelt man hybride Cross-Plattform Apps, so ist der Entwicklungszeitraum und die Kosten um ein Vielfaches geringer. Jedoch muss man unter anderem bei der Performance Abstriche machen. Wie soll man sich also entscheiden – oder gibt es einen Weg, der die Vorteile von beiden Ansätzen verbindet?

Native Apps

Der Android App-Marktplace, bekannt als Google Play Store, wurde 2009 geöffnet, der iTunes App Store von Apple 2008. Diese beiden Plattformen haben die Türe geöffnet für eine neue Form der Softwarenentwicklung: Developer können Softwareprogramme (Apps) für beide Marktplätze entwickeln und sie dort kostenlos oder kostenpflichtig anbieten.

app-store-1174440_1920
(Bildquelle: Pixabay)

Um eine iOS App zu entwickeln, ist es nötig, diese in der Programmiersprache Objective-C zu schreiben (bzw. seit Neustem auch in der Sprache Swift). Android Apps dagegen sind in der Programmiersprache Java geschrieben und können auch nur damit entwickelt werden.

Das Grundproblem ist, dass es für die Publikation einer App in den beiden Stores notwendig ist, diese in zwei unterscheidlichen Programmiersprachen zu entwickeln.

Für einen Programmierer oder eine Softwarefirma ist es daher schwierig und zeitaufwändig und für Kunden teuer, für mehrere Plattformen eigene Programme schreiben zu lassen. Auf der anderen Seite ist es auch keine gute Idee, nur eine mobile Plattform zu unterstützen.

Aus diesem Grund ist die Entwicklung von hybriden Apps sehr populär geworden.

Was ist mit hybriden Frameworks?

Mit PhoneGap (heute Apache Cordova) wurde 2009 ein Framework eingeführt, mit dem sich hybride Apps entwickeln lassen. Diese setzen anstatt auf den nativen Programmiersprachen Objective-C bzw. Java auf moderne Webtechnologien. So lassen sich mit Javascript, HTML5 und CSS 3 Apps entwickeln.

Der Begriff “hybrid” drückt dabei aus, dass die Apps zum Einen nicht nativ sind, weil das Layout mittels Webtechnologien und nicht mit nativen Bedienelementen geschrieben wird. Zum Anderen sind sie auch keine Web-Apps: die dabei entstehenden Softwarepakete werden – wie native Apps – von im Google Play und iTunes Store publiziert und nicht wie eine Website über den Browser abgerufen.

Der Vorteil der Entwicklung von hybriden Apps ist, dass viele Entwickler mit Webtechnologien vertraut sind. Sie haben über Jahre mit Websites, Onlineshops, Portalen usw. Erfahrungen mit modernen Webtechnologien gesammelt. Da nicht in den nativen Sprachen programmiert und daher keine neue Sprache gelernt werden muss, ist es für einen Webentwickler relativ einfach, hybride Apps zu entwickeln. Das ist auch ein Grund, warum hybride Apps so populär geworden sind.

Außerdem wird die selbe Codebasis für Android und iOS Apps verwendet, so dass Apps für mehrere Plattformen nicht mehrmals unabhängig voneinander programmiert werden müssen. Das macht die Entwicklung schneller und kostengünstiger.

Hybride Apps lassen sich zwar schnell und günstig entwickeln, sind aber nicht performant.

Das Problem bei den meisten hybriden Frameworks ist, dass sie zu einem großen Teil auf den Web Views der Endgeräte (Smartphones, Tablets) aufsetzen. Nachdem vom Betriebssystem nicht alle Web Views gleich behandelt werden, ist die Performance – bei tausenden Geräten auf dem Markt – schwer vorhersagbar. Ältere Geräte sind außerdem nicht im Stande, Web Code genauso performant anzuzeigen, wie neuere Geräte. Dadurch wird die Bedienung oft langsam und hackelig, was zu unzufriedenen Nutzern und negativen Bewertungen in den App Stores führt.

hybride apps sind sehr langsam(Bildquelle: Pixabay)

Weitere Probleme von hybriden Apps

Neben der Performance bieten hybride Apps noch einige weitere Fallstricke. Zwar sind die Hardwarefunktionen, die PhoneGap und Cordova für die Entwicklung bieten, mehr geworden. Dennoch ist die Auswahl sehr limitiert und hybride Apps können z.B. nicht auf die Kamera zugreifen. Auch sind die Möglichkeiten für 2D- und 3D-Effekte sehr limitiert, da nicht wirklich auf die Hardware-Beschleunigung von Smartphones und Tablets zugegriffen werden kann. Auch aus Sicherheitsgründen empfiehlt es sich nicht, Apps hybrid zu entwickeln. Denn Sicherheitspatches, die von Google und Apple bei nativen Apps automatisch eingespielt werden, müssen bei hybriden Apps über ein manuelles Update installiert werden.

Das Hauptproblem besteht aber darin, dass PhoneGap und Cordova Apps auf jedem Gerät unterschiedlich aussehen. Das liegt daran, dass die Web Views von jedem Endgerät unterschiedlich interpretiert werden und es keinen Standard für die Darstellung gibt.

nativescript-logoNativeScript als Alternative?

NativeScript ist eine Entwicklungsplattform für mobile Apps, die – wie PhoneGap bzw. Cordova – Webtechnologien nutzt. Sie wurde 2015 als Open-Source Projekt eingeführt. Bei der Entwicklung mit NativeScript entstehen – wie der Name schon vermuten lässt – native Apps (die Betonung liegt auf nativ!), die eine einheitliche Codebasis nutzten.

Progressive Web Apps nutzen Webtechnologien, um eine User-Experience wie bei nativen Apps zu erzeugen.

Wie die hybriden Frameworks verwendet NativeScript JavaScript und CSS für die Entwicklung von iOS und Android Apps. Der Hauptunterschied liegt dabei im User Interface:

Dieses wird in XML erstellt, anstatt in HTML. Auch wenn die beiden Auszeichnungssprachen sich ähneln, so sind sie doch unterschiedlich. Die XML-Elemente werden in die nativen Äquivalente in Android und iOS kompiliert, anstatt daraus Web Views mit schlechter Performance zu erstellen.

Die folgende Tabelle zeigt die Systeme im Vergleich:

Cordova, PhoneGap Android, iOS nativ NativeScript
 Kosten ★★★ ★☆☆ ★★★
 Entwicklungsdauer ★★★ ★☆☆ ★★★
 Performance ★☆☆ ★★★ ★★★
 Funktionalität ★★☆ ★★★ ★★★

Fazit

NativeScript füllt die Lücke zwischen der Entwicklung von nativen Java- und Objective-C Anwendungen und hybriden Apps, die mit Frameworks wie Apache Cordova erstellt werden. Die Anwendungen werden als native Apps kompiliert. Durch die tiefe Integration des Frameworks sind sie genauso performant und lassen sich bedienen wie native iOS und Android Apps.

Durch den Verzicht von Web Views als Grundlage der App ist zudem gewährleistet, dass sie auf jedem Endgerät genauso aussehen. Trotzdem muss nur eine Codebasis geschrieben werden, so dass nur ein Bruchteil des Entwicklungsaufwandes von nativen Apps entsteht.

Kommentar hinterlassen