Apache Cordova

Apache Cordova (ранее известная как PhoneGap) — это бесплатная платформа с открытым исходным кодом для разработки кроссплатформенных мобильных приложений. Cordova позволяет программистам создавать гибридные мобильные приложения, используя стандартные веб-технологии — HTML5, CSS3 и JavaScript — вместо того чтобы полагаться на специфичные для каждой платформы API, такие как Android, iOS или Windows Phone.​

История и происхождение

PhoneGap был создан примерно в 2008-2009 году канадским стартапом Nitobi Software как среда с открытым исходным кодом, которая позволяла получить доступ к нативным функциям устройства из встроенного WebView. Целью проекта было обеспечить возможность создания мобильных приложений исключительно на веб-технологиях с возможностью вызова нативного кода.​

PhoneGap впервые был разработан на событии iPhoneDevCamp в Сан-Франциско и выиграл приз зрительских симпатий на конференции O’Reilly Media’s 2009 Web 2.0. В октябре 2011 года компания Adobe Systems приобрела Nitobi и все права на PhoneGap. После приобретения Adobe передала исходный код ядра в Apache Software Foundation для инкубации.​

Исходный код остался открытым, но ему понадобилось новое имя. После нескольких неудачных попыток (включая название «Apache Callback») было выбрано название «Cordova» — по названию улицы в Ванкувере, на которой располагался офис Nitobi. PhoneGap стал коммерческой версией Adobe на базе Cordova с дополнительными сервисами и инструментами.​

Архитектура и принцип работы

Приложения Cordova имеют несколько ключевых компонентов:​

WebView. Это основной элемент архитектуры — специальное браузерное окно, которое предоставляет пользовательский интерфейс приложения. Технически WebView — это «урезанный браузер», тулза (виджет) для открытия веб-сайтов. Приложение Cordova по сути представляет собой браузер плюс сайт, где браузер — это WebView, а сайт — это файлы SPA-приложения, сохранённые на телефоне. WebView имеет доступ к этим файлам, поэтому сайт открывается без интернета.​

Веб-приложение. Это часть, где находится код приложения. Приложение реализуется как веб-страница, по умолчанию в виде локального файла index.html, который ссылается на CSS, JavaScript, изображения, медиафайлы и другие ресурсы. Приложение выполняется в WebView внутри нативного контейнера приложения, который распространяется в магазинах приложений.​

Файл конфигурации (config.xml). Очень важный файл, который предоставляет информацию о приложении и указывает параметры, влияющие на его работу, например, реагирование на изменение ориентации экрана.​

Плагины. Ключевой компонент экосистемы Cordova. Плагины предоставляют интерфейс для взаимодействия между Cordova и нативными компонентами, обеспечивая привязки к стандартным API устройства. Это позволяет вызывать нативный код из JavaScript.​

Система плагинов

Все основные функции Cordova API реализованы в виде плагинов. Apache Cordova поддерживает набор так называемых основных плагинов (core plugins), которые предоставляют доступ к функциям устройства, таким как батарея, камера, контакты, геолокация, акселерометр и многое другое.​

Важно отметить, что при создании проекта Cordova он не содержит никаких плагинов по умолчанию — это новое стандартное поведение. Любой необходимый плагин, даже основные, должны быть явно добавлены разработчиком.​

Помимо основных плагинов, доступны множество сторонних плагинов от сообщества, которые предоставляют дополнительные функции. Разработчики также могут создавать собственные плагины для реализации специфических требований. Плагины представляются как сопоставления классов в файле config.xml.​

Cordova не предоставляет UI-виджеты или MV*-фреймворки — он лишь предоставляет среду выполнения, в которой эти виджеты и фреймворки могут работать.​

Основные возможности и функции

Разработка на основе веб-технологий. Cordova позволяет разработчикам использовать существующие навыки HTML, CSS и JavaScript для создания мобильных приложений без необходимости изучать нативные языки программирования.​

Доступ к нативным ресурсам. Хотя приложения Cordova основаны на веб-технологиях, они имеют доступ к нативным функциям устройства через JavaScript API, предоставляемые плагинами. Это позволяет приложениям иметь функциональность, аналогичную нативным приложениям.​

Мультиплатформенное развёртывание. С Cordova можно создать одно приложение и развернуть его на нескольких мобильных платформах: iOS, Android, Windows Phone, Amazon Fire OS, BlackBerry, Firefox OS, Ubuntu и Tizen. Это экономит время и усилия разработки.​

Интерфейс командной строки (Cordova CLI). Мощный инструмент для управления проектами, добавления платформ, установки плагинов и выполнения сборки приложений. Cordova CLI работает на Node.js и доступна через npm.​

Расширяемость. Cordova позволяет расширять функциональность приложения через плагины. Разработчики могут создавать собственные плагины для удовлетворения специфических потребностей приложения.​

Переиспользуемый код между платформами. Один набор кода может использоваться для всех целевых платформ.​

Поддержка офлайн-сценариев. Приложения могут работать без подключения к интернету.​

Преимущества Apache Cordova

Экономия времени и ресурсов. Гибридные приложения разрабатываются быстрее, чем нативные. Разработчики пишут код один раз и компилируют его для различных операционных систем, что значительно сокращает время выхода продукта на рынок.​

Единая кодовая база. Использование одного кода для разных платформ означает, что разработчики могут быстрее вносить изменения и обновления в приложение.​

Низкий порог вхождения. Веб-разработчики могут легко перейти к мобильной разработке, используя знакомые технологии. Не нужно изучать языки программирования для конкретной платформы.​

Большое сообщество и экосистема. Многие инструменты и фреймворки построены на основе Cordova, включая Ionic, Monaca, Framework7, Quasar Framework, Onsen UI и другие. Существует множество надстроек сообщества, библиотек и сред, оптимизированных для работы с Cordova.​

Лицензия Apache. Cordova распространяется под лицензией Apache версии 2.0, что позволяет свободно использовать, модифицировать и распространять код.​

Поддержка крупных компаний. Вкладчиками в проект Apache Cordova являются Adobe, BlackBerry, Google, IBM, Intel, Microsoft, Mozilla и другие.​

Недостатки Apache Cordova

Проблемы с производительностью. Гибридные приложения могут быть медленнее нативных из-за абстракции, создаваемой при использовании веб-технологий. Это особенно заметно в приложениях с высокими требованиями к производительности, таких как игры или приложения с тяжёлой графикой.​

Ограничения пользовательского опыта. Приложения Cordova могут отличаться от нативных по внешнему виду и ощущениям. Пользователи могут заметить менее плавные переходы, более длительное время загрузки и другие проблемы.​

Зависимость от плагинов и их обслуживание. Хотя плагины предоставляют мощные возможности, они также создают зависимости и проблемы с обслуживанием. Плагины могут устареть или стать несовместимыми с новыми версиями операционных систем, требуя постоянной проверки и обновления.​

Проблемы совместимости. Некоторые плагины с разных платформ могут сталкиваться с проблемами совместимости. Для правильного управления этими плагинами их необходимо соответствующим образом модифицировать, что требует дополнительного времени и усилий.​

Ограничения доступа к аппаратным функциям. Хотя Cordova через плагины предоставляет доступ к нативным функциям устройства, некоторые сложные и глубоко кастомизированные аппаратные взаимодействия остаются трудно реализуемыми по сравнению с нативными приложениями.​

Необходимость дополнительной оптимизации. Для обеспечения единообразного пользовательского опыта на всех платформах приложения Cordova могут требовать дополнительной оптимизации. Это может включать настройку макетов, улучшение производительности и другие работы, которые могут частично нивелировать преимущества кроссплатформенной разработки.​

Применение и сценарии использования

Apache Cordova подходит для следующих случаев:​

  • Мобильные разработчики, желающие расширить приложение на несколько платформ без необходимости переписывать его на языке и инструментах каждой платформы
  • Веб-разработчики, желающие развернуть веб-приложение, упакованное для распространения в различных магазинах приложений
  • Разработчики, заинтересованные в смешивании нативных компонентов приложения с WebView, который может обращаться к API уровня устройства

Cordova особенно популярна для средних и малых проектов, стартапов и компаний с ограниченным бюджетом. Однако для приложений, требующих глубокой кастомизации и высокой производительности, разработчикам стоит рассмотреть нативную разработку или другие высокопроизводительные кроссплатформенные решения.​

Apache Cordova остаётся важным инструментом в арсенале разработчиков мобильных приложений, предоставляя баланс между скоростью разработки, экономией ресурсов и функциональностью.​

Виктория М.
Оцените автора
( Пока оценок нет )
СА|БУК
Главная
Поиск
Са.Ба.Ка
Меню