In diesem Artikel werfen wir einen Blick auf NativeScript, ein Open-Source-Framework zum Erstellen mobiler Apps mit JavaScript. Am Ende des Artikels sollten Sie eine ziemlich gute Vorstellung davon haben, was NativeScript ist, wie es funktioniert und welche Technologien es verwendet. Abgesehen davon werden wir auch häufig gestellte Fragen beantworten, die Sie bei der Erkundung einer neuen Technologie haben könnten, etwa wie sie sich von Alternativen wie Cordova und React Native unterscheidet und wie Telerik an dem Projekt beteiligt ist.
NativeScript ist ein Framework zum Erstellen plattformübergreifender nativer mobiler Apps. Entwickler können mit XML, CSS und JavaScript Apps für Android, iOS und sogar die Windows Universal Platform erstellen. Im Gegensatz zu Cordova, bei dem WebView zum Rendern der Benutzeroberfläche der App verwendet wird, verwendet NativeScript die Rendering-Engine der nativen Plattform, was bedeutet, dass es eine wirklich native Benutzererfahrung bietet.
NativeScript besteht aus einer virtuellen JavaScript-Maschine, einer Laufzeitumgebung und einem Brückenmodul. Die virtuelle JavaScript-Maschine interpretiert und führt JavaScript-Code aus. Das Bridge-Modul übersetzt dann die Aufrufe in die plattformspezifischen API-Aufrufe und gibt das Ergebnis an den Aufrufer zurück. Vereinfacht gesagt, bietet NativeScript Entwicklern die Möglichkeit, die native Plattform über JavaScript anstelle von Objective-C unter iOS oder Java unter Android zu steuern.
Natürlich gibt es noch viel mehr hinter den Kulissen, aber die Entwickler von Telerik erklären es besser als ich kann. Wenn Sie mehr über die Funktionsweise von NativeScript erfahren möchten, lesen Sie den Artikel von Georgi Atanasov über NativeScript - eine technische Übersicht oder einen Artikel von TJ VanToll zur Funktionsweise von NativeScript.
Mit NativeScript verwenden Sie XML, um die Benutzeroberfläche der App zu beschreiben, CSS für das Styling und JavaScript, um Funktionalität hinzuzufügen.
Sie können TypeScript mit Angular 2 verwenden, wenn Sie ein Framework zum Erstellen Ihres JavaScript-Codes bevorzugen.
Für das Styling verwendet NativeScript nur eine Teilmenge von CSS. Das bedeutet, dass nicht alle in einer Browser-Umgebung verfügbaren CSS-Funktionen verwendet werden können. Sie können beispielsweise keine Floats oder Positionsattribute verwenden. Hier ist die vollständige Liste der unterstützten CSS-Eigenschaften. Genau wie im Browser können Sie Stile hinzufügen, die für die gesamte App, für bestimmte Seiten oder nur für eine bestimmte Benutzeroberflächenkomponente gelten. Wenn Sie Sass bevorzugen, können Sie das NativeScript Dev Sass-Plugin installieren.
Um die Struktur der Benutzeroberfläche zu beschreiben, verwenden Sie XML. Jede Seite in der App sollte sich in einer eigenen XML-Datei befinden. NativeScript enthält vordefinierte Benutzeroberflächen-Widgets oder -Komponenten, mit denen Sie die Benutzeroberfläche der App erstellen können. Einige dieser Komponenten ähneln den verschiedenen HTML-Elementen, die Sie im Browser verwenden.
Zum Beispiel gibt es eine Bild
Komponente, die dem Äquivalent der entspricht img
Element oder die Textfeld
Komponente, die dem entspricht Eingang
Element mit einem Texttyp. Event-Handler wie das Tippen auf eine Schaltfläche werden der Komponente selbst hinzugefügt. Hier ist ein Beispiel:
exports.doSomething = function () // etwas tun
Zu beachten ist auch, dass die Komponenten auch als Vorlagen dienen. Wenn Sie mit dem Schablonieren von Bibliotheken wie Handlebars oder Moustache vertraut sind, sollten Sie mit der folgenden Syntax zu Hause sein:
Das obige Beispiel verwendet die Listenansicht
Komponente. Wie der Name schon sagt, können Sie mit dieser Komponente Listen erstellen. Tiere
ist ein Array, das in der JavaScript-Datei definiert ist und an das gebunden ist Tiere
Variable beim Laden der Seite. Das macht das Tiere
Variable zur Verwendung in der XML-Datei verfügbar.
var animals = ['panda', 'tiger', 'affe', 'schlange', 'mantis']; Funktion pageLoaded (args) var page = args.object; page.bindingContext = animals: animals
Dies gibt jedes Element im Array innerhalb des aus Listenansicht
.
Schließlich gibt es Plugins, mit denen Sie auf die Gerätehardware und plattformspezifische Funktionen zugreifen können. NativeScript wird mit einem vorinstallierten Kamera-Plugin geliefert. Auf diese Weise können Sie auf die Kamera des Geräts zugreifen und Fotos aufnehmen. Sie können dann den lokalen Pfad zum Foto in Ihrer App zur späteren Verwendung speichern. Plattformspezifische Funktionen wie Social Sharing können auch durch die Installation von Plugins wie dem NativeScript Social Share Plugin verwendet werden.
Aufgrund der nativen Natur von NativeScript können Sie damit nahezu jede Art von App erstellen. Hier einige Beispiele für Apps, die Sie mit NativeScript erstellen können:
Bei den Arten von Apps, die Sie mit NativeScript erstellen können, sind die einzigen einschränkenden Faktoren die Leistung und die Verfügbarkeit von Plugins. Das Schreiben von nativen mobilen Apps in JavaScript ist mit einem Preis verbunden: Sie können nicht wirklich erwarten, Apps zu entwickeln, die eine hohe Leistung erfordern. Beispiele sind Spiele mit komplexen Grafiken und Animationen, Apps mit vielen beweglichen Teilen und Hintergrundprozesse.
Eine weitere Einschränkung ist die Verfügbarkeit von Plugins. Die meisten Entwickler verwenden NativeScript aus einem Webentwicklungshintergrund. Dies bedeutet, dass die meisten von ihnen nicht mit den APIs für native Plattformen vertraut sind oder nur begrenzte Kenntnisse haben, um Plugins für den Zugriff auf Gerätehardware oder plattformspezifische Funktionen wie Kontakte oder Messaging zu erstellen.
Wenn Sie mehr über die Arten von Apps erfahren möchten, die Sie mit NativeScript erstellen können, besuchen Sie die Seite App Showcases. Die meisten der dort aufgeführten Apps werden sowohl im Google Play Store als auch im Apple Store veröffentlicht. Dies bedeutet, dass Sie es installieren und auf Ihrem Gerät ausführen können, um zu sehen, wie mit NativeScript erstellte Apps aussehen und wie sie funktionieren.
Wenn Sie mit der Entwicklung mobiler Hybridanwendungen nicht vertraut sind, sind Sie möglicherweise auf Frameworks wie Cordova und React Native gestoßen. NativeScript bezieht sich auf diese beiden Frameworks, da beide das Problem "Einmal schreiben, überall ausführen" im Bereich der Entwicklung mobiler Apps lösen sollen. Lassen Sie uns nun jedes Framework nebeneinander betrachten:
Cordova | Native reagieren | NativeScript | |
---|---|---|---|
Schöpfer | Nitobi; Später von Adobe Systems erworben | Telerik | |
UI | HTML | Komponenten der Benutzeroberfläche werden in ihre nativen Gegenstücke übersetzt | Komponenten der Benutzeroberfläche werden in ihre nativen Gegenstücke übersetzt |
Kann weiter testen | Browser, Emulator, Gerät | Emulator, Gerät | Emulator, Gerät |
Code mit | HTML, CSS, JavaScript | UI-Komponenten, JavaScript, Teilmenge von CSS | UI-Komponenten, Teilmenge von CSS, JavaScript |
Nativer Funktionszugriff | Durch Plugins | Native Module | Nativer API-Zugriff über JavaScript |
Bereitstellt für | Android, iOS, Ubuntu, Windows, OS X, Blackberry 10 | Android und iOS. Windows Universal und Samsung Tizen folgen in Kürze | Android und iOS. Windows Universal kommt bald |
JavaScript-Bibliotheken und Framework | Jede Front-End-Bibliothek oder Framework (z. B. Angular, Ember) | Jede Bibliothek, die nicht vom Browser abhängt | Jede Bibliothek, die nicht vom Browser abhängt |
Kodierungsmuster | Zur Strukturierung des Codes kann jedes Front-End-Framework verwendet werden | Das UI-Markup, JavaScript und CSS werden standardmäßig in einer einzigen Datei zusammengefasst | MVVM / MVC-Muster |
Wie JavaScript-Code ausgeführt wird | WebView | JavaScriptCore Engine zum Ausführen von App-Code auf Android und iOS | Webkit JavaScriptCore-Engine zum Ausführen von App-Code unter iOS und Googles V8-JavaScript-Engine auf Android |
Zusammenfassend ist Cordova die alte Generation von Hybrid-App-Frameworks für mobile Anwendungen. Es verwendet das WebView zum Rendern der Benutzeroberfläche der App und greift über Plug-Ins auf die Funktionen des nativen Geräts zu. React Native und NativeScript sind die neue Generation, da sie Ihren JavaScript-Code so übersetzen, dass er von der nativen Plattform ausgeführt werden kann.
Jemand könnte in Zukunft einen besseren Namen für Frameworks wie React Native und NativeScript finden. Im Moment klassifizieren wir sie jedoch als "Native Hybrid Frameworks", da beide JavaScript zum Erstellen von Apps verwenden und den Benutzern sowohl native Erfahrung als auch Leistung bieten.
Telerik ist das Unternehmen, das NativeScript erstellt hat. Und wie jedes andere Unternehmen müssen sie Geld verdienen, um zu überleben. Sie fragen sich also, ob NativeScript kostenlos und Open Source ist, wie verdient Telerik damit Geld? Nun, die Antwort ist über die Telerik-Plattform und die Telerik-Benutzeroberfläche für NativeScript.
Die Telerik-Plattform bietet Entwicklern die Tools, die sie benötigen, um die Leistung von NativeScript-Apps einfach zu entwerfen, zu entwickeln, zu testen, bereitzustellen, zu verwalten und zu messen. Hier einige Beispiele für die Tools, die sie anbieten:
Die Telerik-Benutzeroberfläche für NativeScript besteht aus einer Reihe von Komponenten zum Erstellen der Benutzeroberfläche der App. NativeScript enthält bereits kostenlose UI-Komponenten, aber es gibt auch kostenpflichtige UI-Komponenten wie Chart und Kalender, die Sie nur beim Kauf von Telerik verwenden können.
Wenn Sie mehr über NativeScript erfahren möchten, empfiehlt es sich, die folgenden Ressourcen zu lesen:
In diesem Artikel haben Sie die Grundlagen von NativeScript kennen gelernt. Wie Sie gesehen haben, ist NativeScript eine gute Option, um mobile Apps mit den Fähigkeiten zu erstellen, die Sie als Webentwickler bereits haben. Ich hoffe, dieser Artikel hat Ihnen das notwendige Wissen vermittelt, um zu entscheiden, ob NativeScript für Sie das Richtige ist.