Сегодня наконец вышел предварительный релиз 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
теперь сама запускает эмулятор, если он не был запущен ранее. До версии 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-core-modules и платформы: 1. Обновите плагин nativescript-angular: В результате файл package.json будет выглядеть примерно так: На текущий момент известно о нескольких проблемах, которые будут исправлены в ближайшее время: Новый релиз-кандидат будет выпущен как только исправят эти недостатки. Если у вас будут проблемы с этим релиз-кандидатом, сообщите, пожалуйста, об этом разработчикам, чтобы они могли их починить к официальному релизу. Также возможны проблемы с некоторыми плагинами (которые работают непосредственно с интерфейсом приложения), но с ними уже идёт работа. Официальный релиз 3.0 запланирован на 26 апреля 2017 года. А до этого времени будут выпускаться релиз-кандидаты и исправляться возможные ошибки. Подготовлено по материалам официального блога NativeScript. Разработчик: java, kotlin, c#, javascript, dart, 1C, python, php. Пишите: @ighar. Buy me a coffee, please :).tns platform add android@rc
и
tns platform add ios@rc
И это всё! Запустить приложение можно будет так: tns run Обновление существующего проекта
tns plugin remove tns-core-modules
tns plugin add tns-core-modules@rc
tns platform remove
Для приложений 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 выполните следующие команды: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."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.*.*"
}Известные проблемы
Когда будет официальный релиз?