Сегодня вышел новый релиз Apache Cordova — 5.2.0.

Основные изменения в данном релизе это
  • Поддержка флага --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)


  1. taliban
    15.08.2015 03:06

    Он все так же жутко тормозит под виндовс мобайл? Или это косяк платформы а не кордовы?


    1. affka
      15.08.2015 04:22

      Если тормозит так же как и стандартный браузер телефона, то значит кордова ни при чем, ибо кордова это в минимальном виде приложение с единственным контролом — WebView.


      1. taliban
        15.08.2015 15:17

        Не не, я специально проверял, в браузере все летает, а если через WebView тупит нереально :( Потыкался помыкался, не нашел ничего как хоть немного скрасить ситуацию и забил.


        1. kaatula
          15.08.2015 19:44
          -1

          Чтобы «немного скрасить», надо фонгаповский проект линковать полностью внутрь студийного проекта WinJS, билдить его средствами VS и деплоить
          И вот в таком режиме хтмл/жс работает вполне прилично
          Но появляются ифчики между кордововскими плагинами для работы с железом и родными WinJS средствами для работы с железом


        1. kant2002
          16.08.2015 07:23

          а можно пример того что тупит? если есть какой-то минимальный кейс где это видно. я с Windows Phone не особо дружен, поэтому сам помочь не могу, но ведь можно в качестве бага оформить и попробовать добиться исправления


          1. taliban
            19.08.2015 00:28

            Любое приложение со списком тупит, даже вообще пустое приложение, но со списком из 30+ пунктов (картинка, заголовок, описание) тупит, тоже самое в браузере просто летает.


            1. kant2002
              20.08.2015 07:22

              Спасибо, а вы какой то UI фреймворк используете?
              я бы хотел попробовать повторить вашу ошибку, чтобы можно было сделать баг-репорт.
              Может быть у вас есть какой-то мини пример как повторить нежелаемое поведение?


  1. michaelmashay
    15.08.2015 08:42

    Все это радует, но решение отказаться от события «menubutton» с 5, вроде, версии мне не нравится — пусть они сбрасывают со счетов старые девайсы с Android 2.3, но существует множество «китайцев» с 4.2 и сенсорной кнопкой меню, а некоторые и с Lollipop'ом…


    1. kant2002
      16.08.2015 12:57

      Тут соглашусь, но большинству разработчиков этот функционал показался лишним в связи с тем что эта кнопка более не рекомендуется Google. У Cordova есть определенные проблемы с ресурсами, в том числе для тестирования, поэтому компромиссы по функционалу неизбежны. Если вам кажется что это полезный функционал и сможете показать что есть аудитория и поможете с тестированием, то вы можете обратиться прямо на dev рассылку. Вас определенно выслушают как минимум.


  1. 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' ] ]
    


    1. 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.