[Из песочницы] Native Script. Один код для всех платформ

imageNative script (NS) — это библиотека, позволяющая делать кросс-платформенные приложения, используя XML, CSS, JavaScript. Native script решает ту же задачу, что и уже всем известный phonegap (создание кросс-платформенных приложений), но подходы у них разные. Phonegap использует движок браузера, чтобы отобразить ваш UI (фактически вы получаете веб-страницу), Native script использует нативный рендеринг, использует элементы нативного UI. Следующее важное отличие: чтобы получить доступ к камере, gps и так далее в phonegap необходимо устанавливать плагины, в то время как NS дает доступ из коробки.Стоит подчеркнуть, что приложения можно писать для Android 4.2 и выше, и для iOS 7.1 и выше.

Быстрый стартЧтобы установить native script, необходим nodejs, поэтому если у вас еще нет его, отправляйтесь сюда. Дальше все просто. Для установки NS в командной строке выполняем: npm install -g nativescript Для создания проекта: tns create MyApp После того, как проект создался, переходим в директорию проекта: cd MyApp И, как и в phonegap, добавляем платформы: tns run android tns run ios Все готово, чтобы запустить наше первое native script приложение. Для того чтобы сделать это, нужно вести одну из следующих команд: Запустить на устройстве, подключенном через USB:

tns run android Запустить в эмуляторе: tns run android --emulator Можно также запустить в Genymotion: tns run android --geny В общем, как бы вы не запускали, у вас откроется приложение, которое подсчитывает количество нажатий на кнопку, оставшихся до вывода текста «Hoorraaay! You unlocked the NativeScript clicker achievement!».7a944d6ff0c349778b124ef7696ea5fe.png

Вот сравнение как выглядит приложение на iOS и Android.

4b018ddcebaa4e70a93e80da1c4d4de8.png

Как можно заметить, кнопка везде нативная, хотя код для обоих платформ один и тот же.

Что там внутри? Структура проекта представлена ниже: c1f383fa26954836b74b3d868c38368e.png

Все, что касается вида приложения, лежит в файле main-page.xml. Всех, кто привык работать с html, ужаснет этот файл, но благо документация очень хорошая, и чуть позже все становится понятнее.