[Из песочницы] Нововведения в Cordova 5.0
21 апреля 2015 года команда Cordova (ранее PhoneGap) выпустила версию 5.0 своих инструментов, которые позволяют веб-разработчикам разрабатывать мобильные приложения сразу для нескольких платформ. Новый релиз содержит достаточно много новых улучшений для разработчика, о которых дальше и пойдет речь.Кроме исправления ошибок, были сделаны следующие улучшения:
Поддержка подключаемых WebView Поддержка CSP Сохранение используемых платформ и плагинов в конфигурации проекта Использование NPM для хранения плагинов Русская документация Вкратце о CordovaДля тех, кто знает, что такое Cordova, можно пропустить данный раздел и сразу перейти к описанию нововведений.Cordova — это платформа, позволяющая разрабатывать мобильные приложения на разные платформы, путем встраивания браузера в мобильное приложение. Таким образом, ваше приложение является, по сути, мини-браузером, который показывает один единственный сайт — ваше приложение. Все ресурсы можно помещать в распространяемый пакет приложения для ускорения загрузки, а можно загружать с сервера при необходимости.
По умолчанию Cordova предоставляет только базовые возможности браузера, которые есть на данном мобильном устройстве, но позволяет расширять набор функций, доступных в браузере путем использования плагинов. Каждый плагин предоставляет унифицированный интерфейс, который можно использовать из браузера на разных платформах. И если поддерживаемые функции CSS/JS отличаются в каждом браузере от версии операционной системы или платформы, то функционал Cordova старается предоставлять унифицированный функционал для всех поддерживаемых версий мобильных ОС.
Несмотря на то, что данный подход имеет свои ограничения в виде необходимости учитывать различия в мобильных браузерах, все же он позволяет создавать качественные кросс-платформенные приложения.
Нововедения Теперь, собственно, о нововведениях.Поддержка подключаемых WebView Ранее при разработке с использованием Cordova разработчики были ограничены только функционалом браузера, который был предустановлен ОС. В случае с Android разница между браузером установленным в версии 4.0.3 и 4.4, а теперь и 5.0 достаточно существенна, как в плане функционала, так и в плане производительности. В iOS ситуация с браузерами получше, но тоже были узкоспецифические моменты в поведении для iOS 7.0 и iOS 7.1. Все эти различия доставляли достаточно серьезные проблемы при разработке.С появлением подключаемых WebView ситуация начинает изменяться и разработчик получает больше возможностей для контролирования конечного браузера, в котором будет выполняться приложение.
Теперь разработчики на Android могут, например, унифицировать браузер, который будет использоваться в гибридном приложении, используя CrossWalk. Например, используя нижеследующие команды вы сможете запустить свое приложение в версии Хрома не менее чем 40 даже на Android 4.0.3, за что спасибо инженерам из Intel:
cordova create hello com.example.hello HelloWorld cd hello cordova platform add android cordova plugin add cordova-plugin-crosswalk-webview Аналогично для iOS теперь появляется возможность использовать WKWebView вместо UIWebView, что ускорит ваше приложение и, как следствие, понизит энергопотребление вашего телефона.Для других платформ пока поддержки данного функционала нет. Но, по крайней мере, если будет такая необходимость, это можно будет сделать.
Поддержка CSP Ранее Cordova использовала собственные механизмы для управления безопасностью при выполнение веб-запросов в гибридных приложениях. Если ранее вам приходилось полагаться на проприетарный для Cordova механизмы контроля над выполняемыми HTTP запросам, то теперь для этих целей имеется возможность использовать CSP (Content Security Policy).Сохранение используемых платформ и плагинов в конфигурации проекта Ранее для обеспечения консистентности при совместной разработке приложений, или, например, при разработке на разных компьютерах, приходилось в случае обновления платформы Cordova либо не забывать делать обновления на каждом компьютере, либо хранить весь код платформы в системе контроля версий.Сейчас же использование параметра --save позволяет вам не хранить код платформы Cordova в системе контроля версий. Например:
cordova platform add android --save cordova plugin add cordova-plugin-crosswalk-webview --save Теперь простое выполнение на другой машине: cordova prepare Восстановит платформу Android и установит для нее плагин cordova-plugin-crosswalk-webview. Достаточно удобно, как по мне.Использование NPM для хранения плагинов Ранее Cordova поддерживала свой собственный репозиторий плагинов, но с новым релизом все плагины должны будут переехать в репозиторий NPM. Теперь можно искать плагины для Cordova с использованием: npm search cordova Для тех, кто уже работает, не принципиально использовать ли инструментарий Cordova, но для тех, кто только начинает работать с Cordova одной утилитой командной строки, которую надо запоминать, будет меньше. Также с появлением закрытых репозиториев NPM вы можете делать свои собственные закрытые репозитории плагинов Cordova.Также в связи с этим переходом изменился формат идентификаторов с org.apache.cordova.device на cordova-plugin-device. Обращайте на это внимание, когда будете читать статьи в интернете.
Русская документация Также с появлением версии 5.0 появилась русская документация. Часть документации была переведена мной лично, а часть переводилась с помощью Microsoft Bing, поэтому в некоторых местах перевод пока оставляет желать лучшего. Несмотря на то, что качество перевода с моей точки оставляет желать лучшего, из моего опыта работы со студентами это лучше, чем ничего. Я буду благодарен любой помощи с вычиткой документации, даже если это будет просто указание тех разделов, которые содержат автоматический перевод.Если есть какие то замечания по работе последних версий Cordova, можно написать тикет в JIRA. Желающие помочь с переводом могут зарагистрироваться на CrowdIn и помочь с переводом.