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). Приложение состоит из двух основных частей:
- Нативная оболочка — платформо-зависимый код, который создаёт экземпляр WebView (встроенного браузера) и управляет его жизненным циклом.
- Веб-контент — HTML, CSS и JavaScript файлы, которые загружаются в WebView и составляют пользовательский интерфейс и логику приложения.
Плагины
Для доступа к нативным функциям устройства Cordova использует систему плагинов. Каждый плагин представляет собой модуль, который с одной стороны предоставляет JavaScript API, а с другой — реализует нативный код для конкретной платформы. Существует как стандартный набор плагинов (Core Plugins), поддерживаемый проектом (например, cordova-plugin-camera, cordova-plugin-geolocation), так и тысячи сторонних плагинов, созданных сообществом.
Процесс сборки
Разработчик создаёт веб-приложение, затем с помощью командной строки Cordova (CLI) добавляет необходимые платформы (cordova platform add android). После этого выполняется сборка (cordova build android), в ходе которой:
- Веб-ресурсы копируются в папку проекта для конкретной платформы.
- Применяются плагины, их нативный код компилируется вместе с оболочкой.
- Генерируется установочный пакет (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.
Источники
- Документация Apache Cordova (cordova.apache.org).
- Официальный блог Adobe PhoneGap (архив).
- Книга «PhoneGap: The Definitive Guide» (O'Reilly Media).
- Статья «The Rise and Fall of PhoneGap» на сайте Medium.
- Репозиторий Apache Cordova на GitHub.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →