Основные изменения в данном релизе это
- Поддержка флага --browserify
- Поддержка Windows в plugman
- Новая команда clean
- Использование ~ вместо ^ по умолчанию в config.xml при использовании --save
Также намного больший упор делается на использование NPM вместо собсвенного реестра плагинов.
Подробнее под катом.
Также будет немного о предстоящих релизах и вопросы по документации.
Думаю стоит начать с
npm -g install cordova
Поддержка флага --browserify
Теперь имеется полная поддержка --browserify и это официально. Все тесты пройдены и гипотетически это работает. Так как этот функционал долго был в основной ветке, скорее всего таки да, это таки работает.
Для разработчиков это означает что все плагины собираются в один файл, что значит меньше задержек с инициализацией, и приложение будет грузиться чуть быстрее. Также при сборке с помощью browserify кроме плагинов и общего кода для всех платформ, существуют часть функционала cordova.js которая зависит только от одной платформы, что позволяет разработчикам Cordova публиковать исправления которые затрагивают одну платформу быстрее и для получения обновления надо будет просто обновить платформу до более новой версии. Также это позволяет делать патч релизы, для тех кому не готов быстро идти в светлое будущее.
пример использования
cordova run android --browserify
Чтобы лучше понять что происходит можно сделать следующее
создайте тестовое приложение
cordova create browserifytest
cd browserifytest
cordova plugin add cordova-plugin-console
cordova plugin add cordova-plugin-device
После чего запустите приложение сперва как
cordova run android
подключитесь к приложению через хром и посмотрите какие файлы отображаются в вкладке Source, после чего запустите приложение как cordova run android --browserify
и посмотрите разницу.Поддержка Windows в plugman
Тут я был уверен что это было и раньше, но видимо нет. Теперь plugman поддерживает работу со всеми основными платформами, и это означает что вы можете иметь более кастомизированные версии Cordova приложений также на платформе Windows (чтобы бы не думали про нее). Это позволило plugman получить версию 1.0, так что впереди только улучшения.
Новая команда clean
Наверное это не требует детального описания, но теперь вы можете удалять весь компилируемый хлам для проекта. просто выполните
cordova clean
разумеется можно выполнять эту команду и индивидуально для каждой из установленных платформ.
cordova clean android
или
cordova clean ios
Использование ~ вместо ^ по умолчанию в config.xml при использовании --save
Теперь когда вы сохраняете платформы с использованием флага --save в config.xml записывается версия в виде ~4.1.0 что позволяет при восстановлении платформы получить версию у которой боляя поздняя патч версия. В силу того что в Cordova было найдено несколько уязвимостей за прошедший год, это изменение позволяет более быстро публиковать обновления безопасности, и не будет необходимости обновлять совместно с уязвимой платформой, и инструменты Cordova. Также при использовании автоматического построения, обновления безопасности будут автоматически применены, и вам не надо будет обновлять config.xml
Что нас ждет впереди
Впереди у нас несколько новых релизов платформ, самое интересное с моей точки зрения это будет обновление платформы Browser которое вернет возможность запускать веб-сервер с собранным приложением. Подождем и посмотрим, насколько это будет удобно. Также будет патч релиз для iOS и новый релиз платформы Windows. Я тесно не слежу пока за изменениями там, но если все три платформы выпустятся примерно в одно и тоже время попробую написать отдельно об этих релизах.
Документация и вопросы
С моей точки зрения документацию по Cordova находится в состоянии вроде как все есть, но иногда не найдешь то что надо. Я бы очень хотел улучшить это состояние, и определенные соображения в этом направлении есть, но хотелось бы узнать мнение людей которые работают с Cordova.
Меня интересует как русская, так и английская версии документации, если вы напишете свои пожелания в комментариях, то я буду стараться чтобы они появились в следующем релизе Cordova.
Немного ссылок:
Apache Cordova
Русская документация Apache Cordova
Английская документация Apache Cordova
Комментарии (11)
michaelmashay
15.08.2015 08:42Все это радует, но решение отказаться от события «menubutton» с 5, вроде, версии мне не нравится — пусть они сбрасывают со счетов старые девайсы с Android 2.3, но существует множество «китайцев» с 4.2 и сенсорной кнопкой меню, а некоторые и с Lollipop'ом…
kant2002
16.08.2015 12:57Тут соглашусь, но большинству разработчиков этот функционал показался лишним в связи с тем что эта кнопка более не рекомендуется Google. У Cordova есть определенные проблемы с ресурсами, в том числе для тестирования, поэтому компромиссы по функционалу неизбежны. Если вам кажется что это полезный функционал и сможете показать что есть аудитория и поможете с тестированием, то вы можете обратиться прямо на dev рассылку. Вас определенно выслушают как минимум.
StreetStrider
15.08.2015 13:48Использование ~ вместо ^ … позволяет при восстановлении платформы получить версию у которой боляя поздняя патч версия
Не уловил сути этого изменения. Как раз циркумфлекс даёт более позднюю версию с учётом совместимости по мажорной версии, конечно. Тильда даёт версию в рамках минора, если указаны все три составляющие:
js > semver.toComparators('~4.1.0') [ [ '>=4.1.0', '<4.2.0' ] ] js > semver.toComparators('^4.1.0') [ [ '>=4.1.0', '<5.0.0' ] ]
kant2002
16.08.2015 13:10я несколько плаваю в терминологии SemVer так как мне никогда не надо была так жестко фиксировать зависимости. Из того что я помню по списку рассылки, и что я отразил в статье, то теперь каждая версия платформы, которая устанавливается CLI не имеет жесткой привязки к версии, и новые патч релизы будут устанавливаться с помощь. CLI.
Например выпуск версии cordova-android@4.0.2 потребовал обновления CLI чтобы устанавливалась версия cordova-android@4.0.2 вместо cordova-android@4.0.0. Без обновления CLI вы бы создавали новые проекты с имеющейся уязвимостью. Сейчас у команды имеется возможность выкатить обновление и вы бы получили его, без обновления CLI. Разумеется уже существующие проекты в обеих случаях надо обновлять ручками. Перед этим где то тоже в конце 2014 года был еще подобный инцидент с обновлением безопасности. Так как ребята понимают что от подобных инцидентов они никак не застрахованы, то они просто делают жизнь лучше.
Далее они сузили устанавливаемые версии, потому что в большинстве случаев хочется иметь тильду, чем ^. Это более безопасные настройки для разработчиков Cordova так как существенно уменьшают необходимость тестирования зоопарков для каждой версии CLI.
taliban
Он все так же жутко тормозит под виндовс мобайл? Или это косяк платформы а не кордовы?
affka
Если тормозит так же как и стандартный браузер телефона, то значит кордова ни при чем, ибо кордова это в минимальном виде приложение с единственным контролом — WebView.
taliban
Не не, я специально проверял, в браузере все летает, а если через WebView тупит нереально :( Потыкался помыкался, не нашел ничего как хоть немного скрасить ситуацию и забил.
kaatula
Чтобы «немного скрасить», надо фонгаповский проект линковать полностью внутрь студийного проекта WinJS, билдить его средствами VS и деплоить
И вот в таком режиме хтмл/жс работает вполне прилично
Но появляются ифчики между кордововскими плагинами для работы с железом и родными WinJS средствами для работы с железом
kant2002
а можно пример того что тупит? если есть какой-то минимальный кейс где это видно. я с Windows Phone не особо дружен, поэтому сам помочь не могу, но ведь можно в качестве бага оформить и попробовать добиться исправления
taliban
Любое приложение со списком тупит, даже вообще пустое приложение, но со списком из 30+ пунктов (картинка, заголовок, описание) тупит, тоже самое в браузере просто летает.
kant2002
Спасибо, а вы какой то UI фреймворк используете?
я бы хотел попробовать повторить вашу ошибку, чтобы можно было сделать баг-репорт.
Может быть у вас есть какой-то мини пример как повторить нежелаемое поведение?