Открыть сервис

Cordova

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

История

Предыстория и создание

Идея создания инструмента, позволяющего веб-разработчикам создавать мобильные приложения, возникла в конце 2000-х годов. В 2008 году компания Nitobi Software, основанная в Канаде, начала разработку проекта под названием PhoneGap. Основной целью было предоставить разработчикам возможность оборачивать веб-приложения в нативную оболочку, которая обеспечивала бы доступ к аппаратным функциям устройства (камера, акселерометр, GPS, контакты и т.д.) через JavaScript API.

Приобретение Adobe и переход в Apache

В 2011 году компания Adobe Systems приобрела Nitobi Software. После покупки исходный код PhoneGap был передан Фонду Apache Software Foundation, где проект получил новое название — Apache Cordova (в честь улицы, на которой располагался офис Nitobi в Ванкувере). Adobe продолжила выпускать коммерческую версию продукта под брендом Adobe PhoneGap, которая включала дополнительные инструменты, такие как облачный сервис сборки PhoneGap Build.

Развитие и упадок

В 2010-х годах Cordova стала одной из самых популярных платформ для гибридной разработки, особенно в среде стартапов и небольших компаний. Однако с ростом производительности нативных инструментов (Swift, Kotlin) и появлением альтернативных кроссплатформенных фреймворков (React Native, Flutter, Xamarin), популярность Cordova начала снижаться. В 2020 году Adobe объявила о прекращении поддержки PhoneGap, передав его сообществу с открытым исходным кодом. Apache Cordova продолжает существовать как проект сообщества, но его активное развитие замедлилось.

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

Основные компоненты

Архитектура Cordova основана на модели «веб-оболочка» (WebView). Приложение состоит из двух основных частей:

  1. Нативная оболочка — платформо-зависимый код, который создаёт экземпляр WebView (встроенного браузера) и управляет его жизненным циклом.
  2. Веб-контент — HTML, CSS и JavaScript файлы, которые загружаются в WebView и составляют пользовательский интерфейс и логику приложения.

Плагины

Для доступа к нативным функциям устройства Cordova использует систему плагинов. Каждый плагин представляет собой модуль, который с одной стороны предоставляет JavaScript API, а с другой — реализует нативный код для конкретной платформы. Существует как стандартный набор плагинов (Core Plugins), поддерживаемый проектом (например, cordova-plugin-camera, cordova-plugin-geolocation), так и тысячи сторонних плагинов, созданных сообществом.

Процесс сборки

Разработчик создаёт веб-приложение, затем с помощью командной строки Cordova (CLI) добавляет необходимые платформы (cordova platform add android). После этого выполняется сборка (cordova build android), в ходе которой:

  1. Веб-ресурсы копируются в папку проекта для конкретной платформы.
  2. Применяются плагины, их нативный код компилируется вместе с оболочкой.
  3. Генерируется установочный пакет (APK для Android, IPA для iOS).

Возможности и ограничения

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

  • Кроссплатформенность: Один код для Android, iOS, Windows и других платформ.
  • Низкий порог входа: Разработчикам, знакомым с веб-технологиями, не требуется изучать нативные языки (Java, Swift).
  • Быстрый прототипинг: Позволяет быстро создать работающее приложение.
  • Открытый исходный код: Бесплатен, доступен для модификации.

Недостатки

  • Производительность: Приложения на Cordova работают медленнее нативных, особенно в задачах, требующих интенсивной графики (игры, анимации). Это связано с тем, что весь интерфейс отрисовывается через WebView, а не через нативные компоненты.
  • Ограниченный доступ к API: Не все возможности устройства доступны через плагины. Для сложных функций (например, Bluetooth Low Energy, NFC) может потребоваться написание собственного плагина.
  • Размер приложения: Встроенный WebView и плагины увеличивают размер установочного пакета.
  • Зависимость от WebView: Поведение приложения может различаться на разных версиях операционных систем из-за различий в реализации WebView.

Применение

Cordova использовалась для создания тысяч приложений, как коммерческих, так и любительских. Среди известных примеров — приложение Wikipedia для мобильных устройств (ранние версии), Sworkit (фитнес-приложение), а также множество корпоративных и внутренних приложений. Платформа часто применялась для создания прототипов и минимально жизнеспособных продуктов (MVP), а также для приложений, где производительность не является критическим фактором (например, новостные агрегаторы, простые каталоги, приложения для ввода данных).

Альтернативы

К 2024 году основными конкурентами Cordova являются:

  • React Native (Facebook): Использует JavaScript и React, но рендерит нативные компоненты, что обеспечивает более высокую производительность.
  • Flutter (Google): Использует язык Dart и собственный движок рендеринга Skia, обеспечивая высокую производительность и единообразный интерфейс на всех платформах.
  • Xamarin (Microsoft): Использует C# и .NET, позволяет создавать нативные приложения с общим кодом.
  • Ionic: Фреймворк, построенный поверх Cordova, предоставляющий более богатый набор UI-компонентов и инструментов. Позднее Ionic перешёл на использование собственного движка Capacitor, который является эволюционным развитием идей Cordova.

Интересные факты

  • Название «Cordova» происходит от названия улицы Cordova Street в Ванкувере, Канада, где располагался офис компании Nitobi.
  • Несмотря на то, что Adobe прекратила поддержку PhoneGap, проект Apache Cordova остаётся активным, и сообщество продолжает выпускать обновления для поддержки новых версий Android и iOS.
  • Cordova послужила основой для многих других проектов, включая Ionic Framework, Monaca и Telerik Platform.

Источники

  1. Документация Apache Cordova (cordova.apache.org).
  2. Официальный блог Adobe PhoneGap (архив).
  3. Книга «PhoneGap: The Definitive Guide» (O'Reilly Media).
  4. Статья «The Rise and Fall of PhoneGap» на сайте Medium.
  5. Репозиторий Apache Cordova на GitHub.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →