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), в пиковия период над 600 хиляди разработчици по света използваха PhoneGap. Платформата беше особено популярна сред уеб студия и фрийлансъри, които искаха да разширят портфолиото си с мобилни проекти без да наемат iOS и Android инженери.
Основната разлика между PhoneGap и Apache Cordova се състои в модела на дистрибуция и допълнителните услуги. Cordova е чиста рамка с отворен код, управлявана от 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, където се добавя елемент <gap> с указание на версията на PhoneGap и идентификатора на приложението Adobe.
<?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 ms срещу 16–30 ms в нативно приложение.
Допълнителни ограничения включваха зависимост от версията на WebView на устройството на потребителя, проблеми с дебъгване на нативни плъгини и липса на достъп до нови iOS и Android API до излизането на съответните 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 като backend за нативен достъп.
Благодарение на 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 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също