Предварительный релиз NativeScript 3.0

Разработка /
Разработка: Предварительный релиз NativeScript 3.0
Сегодня наконец вышел предварительный релиз NativeScript 3.0! Как мы писали ранее, в нём было запланированы улучшения производительности, а также некоторые крупные изменения, ломающие обратную совместимость.

Разработчики подготовили документ, описывающий каждое изменение в этом релизе, его цель и важность для проекта (англ.). Также доступен гайд по миграции на NS 3.0, который поможет вам обновить ваши приложения на новую версию фреймворка.

Основные изменения

Кросс-платформенные модули

  • Новая имплементация модулей. Кросс-платформенные модули обновлены для повышения производительности, расширяемости, улучшения API.
  • Полностью обновлённая система измерений в макетах. До версии 3.0 система работала на основе DIP (независимых от устройства пикселей), а начиная с 3.0 всё пересчитывается в DP (пиксели устройства) и вы можете указать суффикс px для создания однопиксельного края элемента (1-px), к примеру.
  • Переход на TypeScript 2.2

NativeScript CLI

В поведение утилиты NativeScript CLI, кроме улучшений производительности и исправления ошибок, были внесены следующие изменения:

  • Удалена команда livesync, вместо неё команда tns run будет автоматически запускаться с ключом livesync --watch.
  • Удалена команда plugin find/search за неиспользованием.
  • Команда emulate запрещена, этот функционал выполняет команда run --emulate.
  • Команда
    run --device <Device Identifier>
    теперь сама запускает эмулятор, если он не был запущен ранее. До версии 3.0 ключ --device работал только с физическими устройствами.

Изменения в платформах iOS и Android

Теперь можно отслеживать сетевой трафик приложения прямо из Chrome DevTools. Для Android возвращена статическая генерация кода вместо создания файлов *.DEX. Обновлена утилита Gradle, что значительно ускорило сборку приложения для Android.

Переход на NativeScript 3.0 RC

Установить релиз-кандидат можно так:

npm install -g nativescript@rc


Создание проектов с NativeScript 3.0 RC

Создать проект на базе новых шаблонов можно так:

  • На чистом JavaScript:
    tns create MyApp --template tns-template-hello-world@rc
  • На TypeScript:
    tns create MyApp --template tns-template-hello-world-ts@rc
  • На Angular:
    tns create MyApp --template tns-template-hello-world-ng@rc
Добавить платформы можно так:

tns platform add android@rc 
и
tns platform add ios@rc

И это всё! Запустить приложение можно будет так: tns run <platform-name>

Обновление существующего проекта

Для обновления проекта нужно обновить tns-core-modules и платформы:

tns plugin remove tns-core-modules 
tns plugin add tns-core-modules@rc
tns platform remove <platform-name>
tns platform add <platform-name>@rc

Для приложений TypeScript и Angular нужно обновить плагин TypeScript:

npm uninstall nativescript-dev-typescript --save-dev
npm uninstall typescript --save-dev
npm install nativescript-dev-typescript@0.4 --save-dev

И, наконец, для проектов Angular выполните следующие команды:

1. Обновите плагин nativescript-angular:

tns plugin remove nativescript-angular
tns plugin add nativescript-angular@rc

2. Обновитесь до Angular 4, открыв файл package.json и прописав там версию 4.0.0. При этом зависимость zone.js должна быть прописана в зависимостях проекта (dependency), вместо зависимостей при разработке (devDependency), и обновлена до версии 0.8.2.

В результате файл package.json будет выглядеть примерно так:

"dependencies": {
    "nativescript-theme-core": "~1.0.2",
    "nativescript-angular": "rc",
    "tns-core-modules": "rc",
    "@angular/animations": "4.0.0",
    "@angular/core": "4.0.0",
    "@angular/common": "4.0.0",
    "@angular/compiler": "4.0.0",
    "@angular/http": "4.0.0",
    "@angular/platform-browser": "4.0.0",
    "@angular/platform-browser-dynamic": "4.0.0",
    "@angular/forms": "4.0.0",
    "@angular/router": "4.0.0",
    "rxjs": "~5.2.0",
    "reflect-metadata": "~0.1.8",
    "zone.js": "~0.8.2"
},
"devDependencies": {
    "typescript": "~2.2.1",
    "nativescript-dev-typescript": "~0.4.0",
    "nativescript-dev-android-snapshot": "^0.*.*"
}


Известные проблемы

На текущий момент известно о нескольких проблемах, которые будут исправлены в ближайшее время:

  • Нет поддержки Xcode 8.3
  • Невозможно установить приложение на физическое устройство iOS без ключа --syncAllFiles
  • Для Android пока нет снапшотов (snapshot packages)
Новый релиз-кандидат будет выпущен как только исправят эти недостатки.

Если у вас будут проблемы с этим релиз-кандидатом, сообщите, пожалуйста, об этом разработчикам, чтобы они могли их починить к официальному релизу.

Также возможны проблемы с некоторыми плагинами (которые работают непосредственно с интерфейсом приложения), но с ними уже идёт работа.

Когда будет официальный релиз?

Официальный релиз 3.0 запланирован на 26 апреля 2017 года. А до этого времени будут выпускаться релиз-кандидаты и исправляться возможные ошибки.

Подготовлено по материалам официального блога NativeScript.
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.