NativeScript: Eine Alternative zu Xamarin und Cordova

21. November 2016

Cross-Platform Technologien setzen sich in den letzten Jahren verstärkt als Lösungsansatz durch, um Business Apps für mobile Geräte bereitzustellen. Neben den schon etablierten Lösungen wie Xamarin und Cordova gibt es ein breites Spektrum an alternativen Frameworks. In diesem Artikel möchte ich NativeScript vorstellen, ein Cross-Platform Framework, welches auf aktuellen Webtechnologien aufsetzt (Angular 2 und TypeScript) und diese mit nativen Views verknüpft.

Was ist NativeScript?

NativeScript ist eine Cross-Platform Lösung für native iOS, Android und UWP (aktuell noch Preview) Apps mit einer gemeinsamen Angular 2 bzw. JavaScript Code Basis. Der Name NativeScript fasst auch schon die grundlegende Idee hinter NativeScript gut zusammen: Zugriff auf native Controls der Plattform per JavaScript Code. NativeScript wurde von Telerik entwickelt, welches selber auch Control Libraries für Cordova (Kendo UI), als auch für Xamarin anbietet. NativeScript ist unter der Apache 2.0 Software License veröffentlicht worden und damit als Open Source Software kostenlos verfügbar. Telerik bietet zusätzliche, teilweise kostenpflichtige Controls im Rahmen der Control Library Telerik UI for NativeScript an.

 

Historie von NativeScript

nativescript

 

Zum ersten Mal öffentlich vorgestellt wurde NativeScript im Juni 2014. Im Mai 2015 gab es dann die 1.0 Version mit einer eigenen Implementierung des MVC Patterns. Richtig interessant wurde es dann im Mai diesen Jahres mit der 2.0 Version, welche zusätzlich auch Angular 2 unterstützt. Seit September gibt es eine 2.3 Version, die das finale Release von Angular 2 verwendet.

 

Abgrenzung zu Cordova

Wie unterscheidet sich NativeScript nun zum Beispiel von Cordova:

  • NativeScript verwendet nicht den WebView, sondern setzt direkt auf die nativen UI-Technologien. Dadurch werden die WebView spezifischen Probleme umgangen und man erreicht auch eine bessere Performance, welche der einer nativen App entspricht.
  • NativeScript verwendet direkt die nativen UI-Controls und versucht nicht, diese mit HTML, CSS und JavaScript nachzubauen.
  • Durch die Kombination mit einer ähnlichen Technologie wie NativeScript, nämlich Electron, ist es möglich, große Teile des Codes (alles bis auf die Views, Styles und plattformspezifische Services) auch für Desktop Anwendungen (Windows, Linux und Mac) wiederzuverwenden.
    .

 

Abgrenzung zu Xamarin

NativeScript ermöglicht ähnlich wie Xamarin die Entwicklung nativer UIs, verwendet aber TypeScript bzw. JavaScript als Programmiersprache anstelle von C#. Dadurch können im Gegensatz zu einer Xamarin Lösung, große Teile einer NativeScript Lösung für eine Webanwendung wiederverwendet werden. Speziell bei der Verwendung der Angular 2 Variante von NativeScript ist dies sehr einfach realisierbar.

Angular 2 Unterstützung

Die enge Verzahnung von NativeScript mit Angular 2 vereinfacht nicht nur den Code Reuse für andere Plattformen, sondern ermöglicht auch eine bessere Strukturierung des Code als es mit einem Plain JavaScript Code Ansatz der Fall wäre. Dies ist eine der Grundvoraussetzungen für die Entwicklung von mobilen Apps im Enterprise Umfeld, wenn die Code Maintenance ein wichtiges Kriterium ist.

Auch Ionic setzt in der aktuellen 2.0 Version direkt auf Angular 2 auf.

nativescript angular

 

Fazit

NativeScript erlaubt Apps mit nativen UIs auf Basis einer gemeinsamen TypeScript bzw. JavaScript Codebasis umzusetzen. Da es sich bei diesem Code mit Ausnahme der Views und Styles um normalen Angular 2 Code handelt, kann dieser Code sehr leicht für Webanwendungen und durch die Verwendung von Electron auch für native Desktopanwendungen wiederverwendet werden. Spannend wird, ob NativeScript sich im hart umkämpften Markt der Cross-Platform Technologien durchsetzen kann und ob zum Beispiel auch andere Anbieter neben Telerik Control Libraries dafür anbieten werden. Die enge Zusammenarbeit zwischen dem NativeScript und Angular 2 Team während der Integrationsphase von Angular 2 in das NativeScript Projekt zeigt, dass auch Google an dem Erfolg von NativeScript interessiert ist.

Dieser Flurfunkartikel bietet einen allgemeinen Überblick über die Cross-Platform Technologie NativeScript. Die technischen Grundlagen und notwendigen Architekturentscheidungen folgen in einem kommenden Artikel. Denn auch in einem NativeScript Projekt gilt wieder: “Die Architektur ist entscheidend!” Smiley