NativeScript — это система, которая позволяет вам писать собственные приложения для Android, iOS и Windows Phone с использованием JavaScript — и нет, это не оболочка для HTML-приложения.
Возможно, вы встречали такие фреймворки, как PhoneGap / Cordova, которые позволяют запускать веб-приложения, как если бы они были собственными приложениями, но NativeScript следует подходу Microsoft — вы можете использовать разные языки и даже разметку для создания настоящих «родных» приложений. На данный момент Android — это в основном Java, а iOS — в основном Objective C / Swift.
NativeScript — это стандартный JavaScript, который был расширен некоторым умным промежуточным программным обеспечением, которое позволяет вам вызывать функции в собственном API.
Звучит сложно, но на самом деле довольно просто. Вы делаете полную ссылку на собственную функцию API, например
var file = new java.io.File (путь);
и это устанавливает вызов файла функции Java API.
Умная часть состоит в том, что строка JavaScript, указывающая путь, автоматически преобразуется в объект java.lang.String для вызова. Объект Java File, прикрепленный к файлу переменных JavaScript, в том смысле, что любая попытка доступа к свойствам файла передается объекту Java File. То есть файл действует как прокси для файла.
JavaScript интерпретируется с использованием стандартного движка JavaScript V8 для Android и webkit для iOS и Windows Phone. Однако обратите внимание, что оболочка не используется — нет компонента браузера, создающего для вас пользовательский интерфейс из HTML. Если вам нужна кнопка, вам нужно написать JavaScript, который вызывает конструктор собственного класса.
На этом этапе вы можете подумать, что это здорово, но подождите — мне еще нужно написать три версии своего приложения. Один использует собственные вызовы Android, один использует собственные вызовы iOS, а третий использует собственные вызовы Windows Phone. Это означает, что ваше единственное преимущество состоит в том, что вы можете использовать JavaScript для всех трех, и, возможно, это язык, который вы знаете. Преимущество использования оболочки заключается в том, что вы, по сути, пишете веб-приложение, то есть что-то, что может работать в браузере, а затем используете оболочку, которая по сути является модифицированным браузером, чтобы оно выглядело как собственное приложение.
NativeScript может помочь вам написать только одно приложение для всех трех платформ, используя набор абстракций посредством слоя NativeScript Modules, который сопоставляется с собственными API. Поэтому вместо того, чтобы специально вызывать функцию API для File, вы можете просто написать:
var file = Файл (путь);
а уровень абстракции сопоставит JavaScript с правильным нативным вызовом.
Опасность принятия любой схемы, такой как модули NativeScript, заключается в том, что создание любых таких абстракций сложно, а это означает, что всегда есть вещи, которые вы не можете сделать. В случае с NativeScript это не проблема, потому что вы всегда можете вернуться к прямым вызовам API.
Система NativeScript построена на Node.js, и для ее использования вам все равно необходимо установить части собственной системы, с которой вы работаете, — например, XCode. Так что вам все еще нужны навыки использования собственных SDK.
Вы также можете беспокоиться о накладных расходах при использовании всех этих преобразований между системами, но утверждается, что это замедляет работу только примерно на 10%.
NativeScript был разработан компанией Telerik, известной своей оболочкой для разработки «собственных» приложений с помощью JavaScript. Неожиданно то, что NativeScript имеет открытый исходный код под лицензией Apache 2.0. Предположительно Telerik надеется получить прибыль от предоставления дополнительных услуг, таких как Telerik Platform Services.
Если это можно заставить работать, и если потеря производительности составляет всего около 10%, как заявлено, то это полезный альтернативный способ создания собственных приложений. Есть надежда, что версия 1 поступит в продажу в апреле.