Выберите особенности характерные для adobe phonegap
В чём разница между мобильным приложением и хорошим мобильным приложением? Ответ подскажет личный опыт — вы наверняка замечали, что игры и программы с приятным, быстрым и удобным интерфейсом более популярны.
Но это ещё не всё: на успех приложения также влияет скорость разработки и внедрения новых «фич». Улучшить этот показатель можно, используя кроссплатформенные инструменты. Мы рассмотрим пять фреймворков — React Native, Flutter, Ionic, Xamarin, PhoneGap — и разберёмся, в каких случаях выгодно их использовать.
React Native
Его цель — сделать кроссплатформенные приложения такими же производительными, как нативные.
Язык программирования
JavaScript + библиотека React.
Кто использует
React Native достаточно популярен, поскольку его уже применяют технологические гиганты. Среди них популярные соцсети, Walmart, Tesla, Pinterest, UberEats и другие.
IDE и написание кода
С момента запуска React Native прошло около 5 лет, поэтому его поддерживают почти все ведущие IDE. Изучать React Native и писать код на нём довольно просто благодаря использованию JavaScript (разумеется, если вы знаете JavaScript).
Архитектура и исполнение кода
«Learn once, write anywhere», что можно трактовать как «научись один раз, используй везде» — главный принцип React Native, который подразумевает применение одного и того же кода для разных платформ. Также в Native есть функция Hot Reloading, позволяющая добавлять новый код и вносить правки прямо во время выполнения — это очень полезно, когда вы настраиваете пользовательский интерфейс. Среда поставляется с большим набором готовых компонентов, однако они не всегда адаптируются под разные платформы, что требует дополнительных корректировок в коде. Благодаря обширной поддержке сообщества также есть богатый выбор сторонних библиотек.
Производительность
Так как React Native нацелен на результат, сопоставимый с нативной разработкой, в погоне за производительностью чаще всего отдают предпочтение именно этому фреймворку. Native также позволяет разработчикам использовать кастомные модули на языках для нативной разработки, но их придётся писать отдельно для каждой платформы.
Flutter
Flutter — детище Google, уже завоевавшее хорошую репутацию в кроссплатформенной разработке. Его принцип — создание приложений с единой кодовой базой для мобильных платформ, веба и десктопа.
Язык программирования
Dart — объектно-ориентированный язык, разработанный Google.
Кто использует
Flutter появился на рынке не так давно, но его популярность выросла за очень короткое время. Приложения на нём можно увидеть у Alibaba, Hamilton Musical, Greentea, Google Ads.
IDE и написание кода
Flutter поддерживается Android Studio / IntelliJ и Visual Studio Code. Что касается программирования на Dart — если вы знаете C++ или Java, вам будет проще его освоить. Однако изучение любого нового языка требует времени.
Архитектура и исполнение кода
Flutter использует один и тот же код для всех платформ. На нём легко создавать красивые интерфейсы. Но если вам нужны разные стили для разных ОС, придётся немного поработать, поскольку автоматическая адаптация для этих целей не предусмотрена. Это связано с тем, что вместо нативных компонентов Flutter применяет свой графический движок. Однако он не отстаёт от React Native и также предлагает функцию Hot Reloading (добавление нового кода без повторной сборки) и большой набор готовых виджетов. Зато с Flutter можно выпускать приложения для разных версий Android и iOS без дополнительных телодвижений: программы спокойно запускаются даже на таких старых версиях, как Android Jelly Bean и iOS 8.
Производительность
При прочих равных можно сказать, что Flutter превосходит конкурентов и демонстрирует самую высокую производительность благодаря современному языку Dart и собственному движку рендеринга.
Ionic
С Ionic можно создавать кроссплатформенные гибридные приложения. Он тесно взаимодействует с фреймворком Apache Cordova, который преобразовывает веб-приложения в мобильные программы.
Язык программирования
JavaScript + HTML, CSS.
Кто использует
Из наиболее известных: MarketWatch, Pacifica, Sworkit, Nationwide.
IDE и написание кода
Ionic завоевал признание среди разработчиков мобильных приложений, потому что с ним просто работать. Фреймворк построен на ECMAScript 6 и TypeScript, поэтому его можно использовать в любой IDE, поддерживающей эти языки, например в Visual Studio Code, Atom или Angular IDE. Кстати, если вы уже знакомы с Angular, React или Vue, то с освоением Ionic не возникнет особых трудностей.
Архитектура и исполнение кода
Ionic, как и React Native и Flutter, предлагает концепцию единого кода для разных платформ, но на новом уровне. Все его компоненты автоматически адаптируются к платформе, на которой запускается приложение — а значит, разработка становится быстрее. Также с Ionic вы можете свободно использовать JavaScript, Angular, React или Vue.
Производительность
А вот здесь Ionic проигрывает и сильно отстаёт от React Native и Flutter, поскольку для визуализации приложений он использует веб-технологии и совсем не применяет нативные компоненты. Такой подход значительно снижает скорость.
Но со стороны разработки есть и плюсы: Ionic позволяет проводить быстрое тестирование, которое можно запустить прямо в браузере.
Xamarin
Xamarin — платформа для создания мобильных приложений от Microsoft, которая также поддерживает разработку для Windows.
Язык программирования
Кто использует
На Xamarin сделаны приложения Olo, The World Bank, Storyo и другие.
IDE и написание кода
Архитектура и исполнение кода
У Xamarin есть два основных инструмента: Xamarin.Android/iOS и Xamarin.Forms. По части кроссплатформенной разработки Xamarin предлагает использовать единый API Xamarin.Essentials.
Xamarin.Android и Xamarin.iOS наделяют приложение теми же возможностями и интерфейсом, которые есть у нативных решений. В случае Xamarin.iOS программа компилируется непосредственно в машинный код (AOT-компиляция), тогда как в Xamarin.Android сначала происходит компиляция в байт-код, который затем интерпретируется виртуальной машиной (JIT-компиляция).
Если же нужно ускорить процесс написания кода, лучше использовать Xamarin.Forms — более простой инструмент, в котором почти все элементы полностью совместимы с любыми платформами.
Производительность
Производительность Xamarin также считается близкой к нативной, но зависит от того, используете вы Xamarin.Android, Xamarin.iOS или Xamarin.Forms. У Xamarin.Android/iOS хорошая оптимизация благодаря нативным компонентам. Xamarin.Forms же основан на 100% совместном использовании кода, что в целом снижает его производительность по сравнению с Xamarin.Android/iOS.
PhoneGap
Как и Ionic, PhoneGap позволяет использовать веб-технологии в мобильной разработке. Он является дистрибутивом Apache Cordova.
Язык программирования
JavaScript + HTML, CSS.
Кто использует
Среди примеров приложений на PhoneGap: Logitech Squeezebox Controller, Localeur, Untappd, HealthTap.
IDE и написание кода
Для более комфортной кроссплатформенной разработки и тестирования можно использовать Adobe Dreamweaver (версии 5.5 и выше), MyEclipse 2013, Tiggzi, ApplicationCraft. Разработка на JavaScript не должна вызывать затруднений, особенно если раньше вы уже писали на нём.
Архитектура и исполнение кода
Производительность
PhoneGap отличается невысокой производительностью по сравнению с нативными инструментами — и в этом снова виноваты веб-технологии.
Сравнительная таблица
Так что выбрать?
Помните, что каждый инструмент имеет свои особенности, и делать выбор следует исходя из конкретной задачи. Всегда стоит обсуждать проект с опытной командой разработчиков, которая рассмотрит различные подходы и предложит наилучший вариант.
Многие ошибочно полагают, что PhoneGap это некая единая система. Однако, существует три различные платформы — Cordova (CLI), Phonegap (CLI) и PhoneGap Build. Каждая имеет свои особенности и мелкие вариации.
История
PhoneGap был создан примерно в 2009 году внутри канадского стартапа Nitobi, как среда с открытым исходным кодом, которая позволяла получить доступ к нативным функциям устройства из встроенного webview. Целью проекта было обеспечить возможность построения мобильных приложений исключительно на веб-технологиях (HTML5/CSS и JavaScript), но с возможностью вызова нативного кода.
В 2011 году Adobe приобрели Nitobi и все права на PhoneGap. Исходный код ядра был передан Apache Foundation.
Этот исходный код остался открытым, но ему понадобилось новое имя. После пары неудачных попыток, в конце концов было выбрано «Cordova» – по названию улицы, на которой был расположен офис Nitobi.
Возможности
По своей сути, Cordova предлагает простой, но мощный API для вызова машинного кода из JavaScript'а. Это означает, что вы можете передавать любые данные из WebView на само устройство.
Многие не совсем правильно понимают этот момент. Cordova дает доступ к низкоуровневому API, с помощью простых плагинов (например, для доступа к камере и компасу). Поэтому, когда кто-то говорит, что Cordova не может делать то, что могут нативные приложения, он ошибается. Единственным ограничением являются плагины, доступные в настоящее время, и ваше желание и способности в написании недостающих плагинов.
Для работы с Cordova нужно устанавливать SDK мобильных платформ. Эту проблему решает PhoneGap Build — облачный сервис, который компилирует ваш HTML5 в готовые приложения без головной боли поддержки нативных SDK.
Разница
Cordova — это фреймворк с открытым кодом, которым управляет Apache. PhoneGap — это Cordova + инфраструктура от Adobe. Можно рассматривать Cordova как движок, который питает PhoneGap, подобно тому, как WebKit — это движок, который питает Safari, или Blink — Chrome.
1. Cordova это OpenSource, а PhoneGap принадлежит Adobe.
2. Кроме разных имен пакетов, у PhoneGap и Cordova, разная документация.
3. При выходе новых версий ОС (например iOS 64-bit), Cordova обновляется быстрее, чем PhoneGap.
4. У Cordova нет облачного сборщика проектов.
Что выбрать?
Если вы не хотите заморачиваться с командной строкой, или вам нужна интеграция с облаком, выбирайте Phonegap Build. В остальных случаях, выбирайте Cordova CLI.
Главное, что бы вы ни выбрали, не смешивайте технологии в одном проекте. Это внесет большой беспорядок.
PhoneGap — это OpenSource платформа, позволяющая разрабатывать мобильные приложения на HTML, JavaScript и CSS под различные платформы (практически без изменения кода приложения) в их число входят: iOS, Android, Blackberry, WebOS, Symbian и Windows Mobile на подходе. Прелесть его в том, что он не требует навыков разработки под конкретную платформу. Вы пишете свое приложение на JavaScript, используете HTML и CSS для разметки. Вы пишете мобильное приложение как обычный сайт или веб-сервис.
Движок PhoneGap расширяет API браузера и добавляет следующие возможности: доступ к акселометру, доступ к камере (пока только фото), доступ к компасу, доступ к списку контактов, запись и прослушивание аудио файлов, предоставляет доступ к файловой системе, позволяет работать с разными HTML5 хранилищами localStorage, Web SQL и т.п а также позволяет безболезненно обращаться к любому кросс-доменному адресу.
Кроме платформы PhoneGap имеет, пока бесплатный, билдер приложений под все устройства в один клик.
jQuery Mobile
Думаю все знают, но напомню ещё раз. jQuery Mobile — это надстройка над jQuery, позволяющая безо всяких проблем разрабатывать мобильные веб сайты и мобильные веб приложения.
Если вы знаете HTML, JavaScript, CSS, jQuery и испытываете проблемы с Java, Objective-C и другими, но желаете попробовать свои силы в мобильной разработке, то эта статья для вас.
Мы будем создавать мобильное приложение под Android (iOS требует значительно больших усилий для тестового приложения: Mac Only, нужен сертификат разработчика) под названием Tumblr Reader (не хотел создавать ещё один хабраридер).
Установка пакета программ для разработки
Если у вас стоит Eclipse + ADT Plugin, то эту часть можно пропустить. Оригинальная статья.
Подробная статья.
1. Скачайте и установите Eclipse Classic
2. Скачайте и установите Java Platform (JDK)
3. Скачайте и установите Android SDK
Запустите SDK Manager, выберете все модули и установите их все (займет минут 20)
4. Установите ADT Plugin
5. Сконфигурируйте ADT Plugin — вам необходимо указать путь до Android SDK иначе ничего не получится
6. Скачайте последнюю версию PhoneGap (на момент написания она была 0.9.4)
Создание эмулятора Android
Откройте SDK Manager (он может открыть различные окна, закройте их) выберите Virtual devices, нажмите New…
Создайте эмулятор как показано на скришноте:
Важно: Необходим именно Android 2.2. Если вы под Windows и в имени пользователя есть не ANSI символы, то вам необходимо после создания виртуалки сделать следующее: переместите c:\Users\ВашИмя\.android\avd\Android-2_2.avd в какую-нибудь другую папку, например в c:\Android\Android-2_2.avd , откройте файл Android-2_2.ini и измените path= на соответствующий.
Создание проекта
1. Запустите Eclipse в меню File выберите New > Android Project
Скриншот с официального туториала
3. Добавьте phonegap.jar в Build Path для этого нажмите правой кнопкой на корень проекта, выберите Properties, в списке выберите Java Build Path, выберите вкладку Libraries, нажмите Add JARs… и укажите путь до phonegap.jar
4. Откройте файл TumblrReader.java , который лежит в папке src/
4.1. Замените Activity на DroidGap
4.2. Замените setContentView() на super.loadUrl("file:///android_asset/www/index.html");
4.3. Добавьте import com.phonegap.*;
6. Откройте AndroidManifest.xml, допишите следующий код (он дает доступ к определенным ресурсам) нам нужен только android.permission.INTERNET :
Если вы будете экспериментировать с АПИ, то добавьте все опции:
в activity тег добавьте android:configChanges="orientation|keyboardHidden"
7. Запустите ваше приложение в эмуляторе: Run As > Android Application если вы сделали все правильно, то должен открыться эмулятор с вашим приложением.
Создание Tumblr Reader
Далее в статье описывается поэтапное создание приложения. Теперь Eclipse можно свернуть и открыть ваш любимый редактор. Eclipse понадобится для перезапуска приложения в эмуляторе.
Cкелет приложения index.html
Я не останавливаюсь на принципах создания jQuery Mobile страниц. Вы можете прочитать сами.
Создаем index.html в папке /assets/www
Подключаем необходимые скрипты
В body добавляем jQuery Mobile страницу — «Список мелких картинок» aka Dashboard
При клике на мелкую картинку будет открываться страница с большой, добавляем страницу «Большая картинка»
Скелет готов, добавим немного css (файл css/main.css)
Логика приложения js/main.js
Сперва изучим Tumblr API в разделе JSON output немного описан формат JSON: по ссылке нам придет JavaScript вот такого формата:
Жаль, что не чистый JSON(P), но у нас есть jQuery.getScript, которая все разрулит за нас. Больше ничего о формате неизвестно. По исходнику стало понятно, что tumblr_api_read.tumblelog.title это заголовок блога, а tumblr_api_read.posts это массив постов формата:
Мы будем использовать только эти поля, поэтому остальные не описываю.
Рендер для отрисовки списка картинок
Каждая картинка будет вида:
Загрузчик данных с Tumblr API
Загрузчик дергает URL и получает соответствующие данные, используя данные мы отрисовываем список картинок.
Инициализатор приложения
Он инициализирует имя пользователя из localStorage, выполняет предварительную загрузку и делает другие операции по мелочи.
Теперь наше приложение полностью готово и его можно запустить в Эмуляторе Run As > Android Application , если вы сделали мелкую правку и не хотите пересобирать приложение просто откройте index.html в любом WebKit браузере.
Собираем приложение под все платформы в PhoneGap Build
Ссылки
Документация
Я продемонстрировал простое приложение, которое может работать и как веб-страница, вы можете попробовать создать что-то более сложное, использующее API телефона. Предложения, пожелания, критика приветствуется!
Сегодня я расскажу вам о нашем опыте разработки кросс-платформенных мобильных приложений на основе PhoneGap/Cordova. В проекте используются такие технологии, как HTML5, CSS3 и Angular.js. Grunt применяется в качестве task manager’а, позволяющего упростить и ускорить выполнение рутинных задач. Все сборки компилируются локально во время процесса разработки.
Когда версия готова к этапу тестирования, она компилируется с помощью PhoneGap Build и загружается на Ubertesters — сервис дистрибуции мобильных приложений, который позволяет проводить тестирование быстро и эффективно на всех подключенных устройствах. Приложение поддерживает минимум iOS 6 и Android 4.1 (87.5 % доля рынка).
Настройка локальной сборки и структура проекта
Для локального тестирования приложения необходимо установить инструменты для PhoneGap/Cordova. Важно убедиться, что NodeJS уже установлен, открыть командную строку или Cygwin и выполнить следующее:
После завершения установки пустой проект может быть создан и скомпилирован для требуемой платформы:
Внимание: phonegap = cordova. Можно использовать cordova вместо phonegap при написании команд:
Сборка для iOS может осуществляться только под Mac OS X (согласно условиям лицензионного соглашения Apple), не существует способа запустить сборку для iOS под Windows.
Платформа Android требует наличия SDK Tools, его можно скачать по ссылке (пакет SDK Tools Only внизу страницы). Сразу после установки необходимо проверить в Android SDK Manager, что Android 5.0 (API level 21) был установлен успешно. Android 5.0 используется как target для текущей версии Phonegap/Cordova при локальной сборке.
Структура приложения
Файлы и папки
Plugins
Плагин это пакет, который позволяет автоматически внедрить native код в приложение и управлять native методами из Cordova Web View. Все основные функции PhoneGap/Cordova API реализованы при помощи плагинов, которые предоставляют доступ к возможностям и функциям устройства и платформы, которые недоступны обычному веб-приложению: сканирование QR кода, NFC, Push уведомления и даже Touch ID для iOS.
Существует реестр PhoneGap плагинов. Очень важно использовать плагины, совместимые с PhoneGap Build, иначе сборка будет возможно только локально.
Для добавления плагина в проект при локальной сборке используют команду plugin add из корневой папки проекта. Аргументом к этой команде является URL Git репозитория, содержащего код плагина:
PhoneGap Build требует указания id в файле config.xml для каждого плагина (что-то вроде зависимостей). Указывать конкретную версию не обязательно, но желательно, так как различные сборки плагина могут быть несовместимы, и придётся долго выяснять причину внезапно появившихся ошибок. Пример со страницы плагина:
Соответствующие .js файлы должны быть импортированы на HTML странице:
Все плагины обычно имеют документацию (пускай, и не всегда подробную) на GitHub.
Поскольку мы используем Angular.js framework, а не чистый JavaScript, дополнительный компонент требуется для того, чтобы «обернуть» плагины. Он называется ngCordova.
ngCordova
ngCordova это коллекция из более чем 60 Angular.js расширений на основе Cordova API, которые позволяют упростить создание, тестирование и сборку мобильных приложений PhoneGap/Cordova. Проект поддерживается и развивается командой Ionic Framework. ngCordova предоставляет простые Angular.js wrapper’ы для самых популярных и часто используемых плагинов PhoneGap/Cordova и позволяет сделать фото, отсканировать QR код, загрузить файл, включить вспышку, получить текущую локацию, а также многое другое с помощью нескольких строк кода.
Для локальной сборки всё так же необходимо добавить плагин с помощью команды:
Для PhoneGap Build требуется ссылка на id плагина в config.xml:
ng-cordova.js импортируется из пакета ngCordova, script тэг должен быть расположен после импорта angular.js, иначе появятся ошибки, не имеющие отношения к проекту:
Важно не забыть добавить зависимость ngCordova к модулю:
Каждый ngCordova wrapper имеет свою документацию. Плагин для Push уведомлений и QR сканер были использованы и протестированы в нашем проекте. Сканер QR кодов (Barcode Scanner) был интегрирован без особых проблем, можно даже сказать «out-of-the-box», но настройка Push плагина заняла довольно длительное время в связи с недостатком документации – информацию приходилось собирать, просматривая огромный список issues на GitHub’е.
Push уведомления для Android (Google Cloud Messaging)
Краткая документация доступна на странице плагина ngCordova.
Важно! Payload часть push уведомления, отправляемая с сервера должна следовать определённому формату, иначе возможны проблемы с автоматическим появлением уведомлений в системном трее.
Было обнаружено, что объект data должен обязательно иметь поле «message» (в качестве текста уведомления) и «title» (если отсутствует, то заголовок уведомления будет пустым). Поле «uri» необходимо для того, чтобы указать действие, которое совершается при открытии уведомления.
Также важно отметить, что notificationReceived listener срабатывает тогда, когда приложение находится в foreground, а также в случае, когда пользователь открывает уведомление (переход из background’а в foreground). Push уведомления появляются автоматически в background’е и продолжают приходить даже после перезагрузки системы.
Push уведомления на iOS
Краткая документация доступна на странице плагина ngCordova.
В момент, когда разрабатывалось приложение, часть бэкенда, которая отвечает за отправку Apple Push уведомлений (APNS) была не готова. Решили использовать временное решение для тестирования и отладки. Node Push Server был выбран первоначально (т.к. по нему имелись рекомендации в некоторых мануалах по Phonegap/Cordova), но в ходе тестирования выяснилось, что в нём отсутствует поддержка кастомных полей для Push уведомлений на iOS (поддерживаются только badge, alert и sound, а нам нужно передавать uri для открытия определённой страницы) и из-за проблем с форматом некорректно работает на iOS 6 и iOS 7 (счётчик на иконке не отображается).
PhoneGap Build
— Что такое PhoneGap Build?
PhoneGap Build это бесплатный облачный сервис, построенный на основе PhoneGap/Cordova, который позволяет собирать кросс-платформенные мобильные приложения.
— Зачем нам PhoneGap Build?
PhoneGap Build позволяет делать сборки для iOS, Android и Windows Phone одновременно, без необходимости устанавливать какие-либо SDK tools (конечно, в этом есть доля лукавства – при разработке всё равно лучше делать сборку локально, хотя бы на Android, перед отправкой на тестирование). Но что более важно, этот сервис позволяет делать сборки для iOS в облаке без наличия Mac.
Для использования PhoneGap Build нужно сделать настройки:
— После регистрации заходим в «create new app». Необходимо загрузить упакованное в zip содержимое папки www, config.xml должен быть внутри. Доступ к приватным GitHub репозиториям доступен только в платной версии аккаунта).
— Далее нужно перейти в настройки аккаунта: кликнуть по иконке в правом углу, “Edit account” -> “Signing keys”, добавить требуемые сертификаты и ключи (сборка для iOS прервётся при отсутствии сертификата *.p12 и профиля, сборка для Android будет выполнена в режиме AdHoc, если ключ отсутствует).
После того как установочные пакеты для всех требуемых платформ сгенерированы с помощью PhoneGap Build, можно вручную загрузить их на сервис дистрибуции. Существует множество альтернативных вариантов: HockeyApp, TestFlight, TestFairy, но далее мы рассмотрим Ubertesters и изучим, как произвести автоматизацию сборки и дистрибуции с возможностью интеграции Ubertesters Upload API.
Ubertesters
— Почему Ubertesters?
Особенности и преимущества этого сервиса обсуждаются в этой статье.
Сервис Ubertesters предоставляет SDK для всех основных платформ (даже Phonegap/Cordova). Upload API, как уже было сказано, позволяет использовать continuous integration и автоматизировать дистрибуцию.
Чтобы открыть доступ к Upload API необходимо перейти на страницу профиля.
Документация доступна по ссылке.
Чтобы разрешить автоматическую дистрибуцию на устройства команды тестировщиков и разработчиков, необходимо создать группу дистрибуции по умолчанию: “Administration” -> “Distribution Groups” -> “Add distribution group”, выбрать чекбокс “Default group”. Так как в нашем случае поддерживаются 2 платформы, нужно не забыть совершить операцию для каждого из проектов (iOS и Android).
Автоматизация задач
Существует несколько способов автоматизации процесса сборки для приложений на PhoneGap/Cordova. В качестве task manager’a можно использовать Grunt, Ant, Maven а в качестве среды для continuous integration Jenkins CI или Team City.
Конфигурация Grunt
Grunt требует наличия двух файлов: package.json (он определяет зависимости и базовые настройки) и gruntfile.js (конфигурация задач).
Для начала нужно установить grunt-cli:
Зависимости, заданные в package.json, могут быть удовлетворены с помощью npm install
Все необходимые модули будут установлены в /node_modules
Но также потребуется установить grunt-phonegap-build вручную:
- var PHONEGAP_API_ID = «YOUR_PHONEGAP_API_ID»;
- var PHONEGAP_TOKEN = «YOUR_PHONEGAP_TOKEN»;
- var UBERTESTERS_API_KEY = «YOUR_UBERTESTERS_API_KEY»;
- В конфигурации задачи phonegap-build должен быть указан пароль для сертификата iOS.
Список задач Grunt
Методы и документация PhoneGap Build Read API доступны по ссылке.
2) readCurrentVersion
В данный момент скрипт имеет баг: phonegap_app.json должен быть создан вручную до запуска (можно просто создать пустой JSON file). Текущая версия передаётся как параметр к modify_json.
3) modify_json
Обновляет значение текущей версии в package.json.
4) magikarp
Magikarp инкрементирует текущую версию в package.json. Опции доступны: major, minor и build.
5) readNextVersion
Инкрементированная версия из package.json передаётся в xmlpoke.
6) xmlpoke
Изменяет версию в файле www/config.xml.
7) compress
Сжимает содержимое папки www (не саму папку, это важно!), исключая ненужные файлы. Сжатый zip файл сохраняется по указанному пути target/phonegapp.zip
8) phonegap-build:debug
В данный момент debug и release ничем не различаются (release ключ ещё не сгенерирован для Android). Сжатый zip файл отправляется на сервис PhoneGap Build. Задача завершается только после сборки (ios/android) и сохранения установочных пакетов (ipa/apk).
Методы и документация PhoneGap Build Write API methods доступны по ссылке.
Эта задача загружает ipa сборку на Ubertesters с помощью Upload API. Здесь можно использовать любой сервис дистрибуции мобильных приложений, если он имеет REST API.
Та же задача, но для Android apk.
11) PROFIT!
Grunt запускается локально с помощью команды ‘grunt’ или на сконфигурированном build сервере (TeamCity в нашем случае). Также есть возможность настроить TeamCity, чтобы вызывать процесс сборки и дистрибуции при каждом коммите.
Так можно сэкономить немало времени, используя continuous integration при сборке и тестировании мобильных приложений.
Apache Cordova (старое название — PhoneGap) — мобильная среда разработки приложений, первоначально разработанная Nitobi. Компания Adobe Systems приобрела Nitobi в 2011 году и провела ребрендинг PhoneGap, после чего выпустила версию с открытым исходным кодом программного обеспечения под названием Apache Cordova.
Особенности PhoneGap
Аналоги и альтернативы для PhoneGap
PhoneGap - похожие решения и продукты
AppMaster.io
AppMaster.io — это no-code платформа для создания и публикации мобильных и веб-приложений, подходящих для любой операционной системы
Android Studio
Android Studio — интегрированная среда разработки для работы с платформой Android
Xcode
XCode — это интегрированная среда разработки (IDE) Apple
Adalo
Adalo — это платформа для создания мобильных и веб-приложений, которые можно публиковать в App Store, Google Play или как Progressive Web App
Фреймворк для разработки PWA и мобильных приложений под iOS & Android
React Native
React Native — это фреймворк для разработки кроссплатформенных приложений от Facebook
Ionic Framework
Ionic Framework — это технология, позволяющая разрабатывать полноценные приложения для iOS и Android
Swift
Язык программирования с открытым кодом. Мощь, простота и потрясающие приложения для macOS & iOS
Читайте также: