PhoneGap — це комерційний дистрибутив Apache Cordova від Adobe, який дозволяє створювати мобільні додатки на HTML, CSS і JavaScript з можливістю збірки в хмарі без локальних SDK. Платформа стала першим широко відомим гібридним фреймворком і відіграла ключову роль у популяризації кроссплатформенної розробки. За даними Adobe PhoneGap, 2024, за час існування платформи було створено понад 1 мільйон додатків. PhoneGap Build — ключовий сервіс Adobe, який виконує компіляцію в APK та IPA без встановлення Xcode або Android Studio.
Головне
PhoneGap — це платформа для розробки мобільних додатків, спочатку створена компанією Nitobi Software у 2009 році. У 2011 році Adobe придбала Nitobi і випустила PhoneGap як комерційний продукт, передавши ядро фреймворку до Apache Software Foundation під іменем Cordova.
PhoneGap був створений на конференції iPhoneDevCamp у 2008 році, де розробники Nitobi Software продемонстрували технологію обгортки веб-додатків у нативний контейнер. Перша публічна версія вийшла у 2009 році та миттєво привернула увагу спільноти веб-розробників, які шукали способи виходу на мобільний ринок без вивчення Objective-C.
Основна інновація PhoneGap полягала в тому, що розробники могли використовувати звичні веб-технології — HTML, CSS та JavaScript — для створення додатків, які встановлюються на пристрій через магазини додатків і мають доступ до нативних функцій: камери, GPS, контактів та акселерометра.
За даними Adobe Developer Relations (2015), у піковий період PhoneGap використовували понад 600 тисяч розробників по всьому світу. Платформа особливо популярна серед веб-студій та фрілансерів, які хотіли розширити портфоліо мобільними проектами без найму iOS та Android інженерів.
Головна відмінність між PhoneGap та Apache Cordova полягає в моделі розповсюдження та додаткових сервісах. Cordova — це чистий open-source фреймворк під управлінням Apache Foundation, а PhoneGap — його комерційний дистрибутив з ексклюзивними можливостями Adobe.
| Характеристика | Apache Cordova | PhoneGap (Adobe) |
|---|---|---|
| Ліцензія | Apache 2.0 (відкрита) | Apache 2.0 + пропрієтарні компоненти |
| Ядро | Оригінальний код | Той самий код Cordova |
| Хмарна збірка | Відсутня | PhoneGap Build |
| Інструменти | CLI + сторонні IDE | Adobe PhoneGap Desktop + CLI |
| Підтримка | Спільнота Apache | Adobe (до 2020 року) |
Основна перевага та головна комерційна відмінність PhoneGap перед Apache Cordova — це сервіс PhoneGap Build, який бере на себе етап компіляції. Розробник завантажує вихідні файли на сервер Adobe, вибирає цільові платформи та отримує готові бінарники без встановлення Android SDK, Xcode та пов'язаних інструментів збірки.
Крім того, PhoneGap включав інтеграцію з Adobe Creative Cloud, дозволяючи дизайнерам експортувати макети з Photoshop прямо в структуру PhoneGap-проекту. Ця функція була затребувана в невеликих командах без виділеного мобільного розробника.
PhoneGap Build — це веб-сервіс Adobe, який компілює вихідний код PhoneGap/Cordova-додатка в інсталяційні файли для iOS (.ipa), Android (.apk), Windows Phone (.xap) та інших платформ. Користувачеві не потрібно встановлювати на комп'ютер SDK цільових ОС.
Процес збірки складається з трьох кроків: розробник архівує проект (або вказує Git-репозиторій), завантажує його на build.phonegap.com і вибирає платформи. Через кілька хвилин сервер повертає готові бінарні файли для завантаження в магазини додатків.
PhoneGap Build підтримував два типи підписок: безкоштовну (до 2 додатків, публічна збірка) та платну (до 25 додатків, приватна збірка, кастомні іконки та сертифікати). Для iOS вимагався завантажувальний сертифікат Apple Developer Program, який користувач завантажував в особистий кабінет. Механізм роботи Build був простий: користувач надсилав ZIP-архів або вказував Git-репозиторій, сервер автоматично визначав платформи та повертав готові бінарні файли через панель управління.
За даними Adobe Blog (2017), через PhoneGap Build проходило понад 500 тисяч збірок щомісяця. Сервіс був особливо популярний у навчальних закладах та на хакатонах, де учасники не мали доступу до Mac-інфраструктури. Розробники також використовували Build для демонстрації прототипів замовникам прямо на пристроях без налаштування середовища.
Структура PhoneGap-проекту ідентична Cordova. Відмінність лише в конфігураційному файлі config.xml, де додається елемент
<?xml version='1.0' encoding='utf-8'?>
<widget id='com.adobe.phonegap.app'
version='1.0.0'
xmlns='http://www.w3.org/ns/widgets'
xmlns:gap='http://phonegap.com/ns/1.0'>
<name>PhoneGapApp</name>
<description>
Додаток PhoneGap
</description>
<gap:platform name='ios' />
<gap:platform name='android' />
<gap:plugin name='cordova-plugin-camera' />
<gap:config platform='ios' min-version='13.0' />
</widget>
Цей конфігураційний файл визначає додаток з підтримкою iOS та Android, вказує мінімальну версію iOS 13 та підключає плагін камери. При завантаженні в PhoneGap Build сервер автоматично розпізнає ці налаштування та збирає проект із потрібними залежностями.
Приклад базового JavaScript-коду з обробкою події готовності пристрою та викликом нативного діалогу:
document.addEventListener('deviceready', function() {
console.log('PhoneGap готовий до роботи');
document.getElementById('btnAlert')
.addEventListener('click', function() {
navigator.notification.alert(
'Привіт з PhoneGap!',
function() { console.log('OK'); },
'Повідомлення',
'Закрити'
);
});
});
Подія deviceready — обов'язкова точка входу у всіх додатках PhoneGap та Cordova. Без цієї події виклик нативних API не спрацює, оскільки міст ще не ініціалізований. Після готовності доступні всі плагіни, включаючи notification.alert для нативних діалогових вікон.
PhoneGap мав ряд переваг, які зробили його популярним у середині 2010-х років, але також володів обмеженнями, що призвели до зниження його частки ринку після 2018 року.
Головна перевага PhoneGap — низький поріг входу для веб-розробників. HTML, CSS та JavaScript — це технології, якими володіє будь-який фронтенд-спеціаліст, що дозволяло студіям веб-розробки швидко виходити на ринок мобільних додатків без найму iOS та Android інженерів.
Хмарний сервіс PhoneGap Build вирішував проблему інфраструктури: команди на Windows могли збирати iOS-додатки без покупки Mac. Це було критично для стартапів з обмеженим бюджетом на обладнання.
Основний недолік PhoneGap — продуктивність. WebView повільніший за нативні UI-фреймворки, особливо при складних анімаціях, великих списках та обробці графіки. За даними тестів HTML5Rocks (2016), рендеринг списку з 1000 елементів займав у PhoneGap 200–400 мс проти 16–30 мс у нативному додатку.
Додаткові обмеження включали залежність від версії WebView на пристрої користувача, проблеми з налагодженням нативних плагінів та відсутність доступу до нових API iOS та Android до виходу відповідних Cordova-плагінів.
У 2020 році Adobe оголосила про припинення підтримки PhoneGap та PhoneGap Build. Компанія передала напрацювання спільноті з рекомендацією переходити на Apache Cordova або Capacitor. PhoneGap Build був закритий, і хмарна збірка більше недоступна.
Для існуючих PhoneGap-проектів рекомендується міграція на Capacitor — це прямий шлях з мінімальними змінами коду. Достатньо замінити скрипти ініціалізації та оновити конфігурацію. Весь JavaScript-код та HTML-шаблони залишаються без змін, оскільки Capacitor використовує ті самі принципи мосту.
Альтернативний варіант — перехід на Apache Cordova безпосередньо. Це вимагає встановлення платформ локально через CLI та налаштування локальної збірки, але повністю зберігає сумісність з існуючими плагінами та архітектурою додатка.
Незважаючи на закриття, історичне значення PhoneGap важко переоцінити. Саме PhoneGap продемонстрував ринку, що веб-технології можуть бути основою для мобільних додатків, проклавши шлях для сучасних гібридних та кроссплатформенних фреймворків. Концепція хмарної збірки, вперше реалізована в PhoneGap Build, пізніше була перейнята Ionic Appflow, Visual Studio App Center та іншими сервісами безперервної інтеграції для мобільних проектів.
Архітектурні рішення PhoneGap — міст через WebView, система плагінів та конфігурація через config.xml — стали стандартом де-факто для гібридної розробки. Навіть у сучасних Capacitor-проектах простежується спадщина PhoneGap: ті самі принципи роботи з плагінами та схожий процес збірки.
Для розробників, які підтримують старі PhoneGap-проекти, ключовий навик — розуміння плагінного мосту та вміння адаптувати плагіни під сучасні версії Android та iOS. Без цього оновлення додатка під нові вимоги магазинів стає неможливим через застарілі системні дозволи.
Часто задавані питання
PhoneGap офіційно не підтримується Adobe з 2020 року, але додатки, створені на його основі, продовжують працювати. Збірка нових проектів через PhoneGap Build недоступна. Рекомендується мігрувати на Capacitor або Apache Cordova для отримання оновлень безпеки.
Ionic — це надбудова над Cordova (і пізніше Capacitor), яка додає UI-компоненти, маршрутизацію та інструменти збірки. PhoneGap — це дистрибутив Cordova з хмарною збіркою, але без власних UI-компонентів. Ionic використовує Cordova або Capacitor як бекенд для нативного доступу.
Завдяки PhoneGap Build Mac не був потрібний — збірка iOS виконувалася на серверах Adobe. Після закриття Build для збірки iOS потрібен Mac з Xcode, оскільки Apache Cordova та Capacitor компілюють нативні проекти локально через інструменти Apple.
PhoneGap сумісний з усіма плагінами Apache Cordova, оскільки використовує ідентичну архітектуру. Плагіни cordova-plugin-camera, cordova-plugin-geolocation, cordova-plugin-file та cordova-plugin-inappbrowser працюють без змін. Специфічних тільки для PhoneGap плагінів не існувало.
Вивчати PhoneGap як новий інструмент не має сенсу — він не підтримується. Однак розуміння його архітектури корисне для підтримки легасі-проектів. Для нових гібридних додатків рекомендується вивчати Capacitor у зв'язці з Ionic або React Native.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також