PhoneGap je komerční distribuce Apache Cordova od Adobe, která umožňuje vytvářet mobilní aplikace v HTML, CSS a JavaScript s možností kompilace v cloudu bez lokálních SDK. Platforma se stala prvním široce známým hybridním frameworkem a sehrála klíčovou roli v popularizaci cross-platform vývoje. Podle údajů Adobe PhoneGap, 2024 bylo během existence platformy vytvořeno více než 1 milion aplikací. PhoneGap Build — klíčová služba Adobe, která provádí kompilaci do APK a IPA bez instalace Xcode nebo Android Studio.
Hlavní body
PhoneGap — je platforma pro vývoj mobilních aplikací, původně vytvořená společností Nitobi Software v roce 2009. V roce 2011 Adobe koupilo Nitobi a vydalo PhoneGap jako komerční produkt, přičemž jádro frameworku předalo Apache Software Foundation pod názvem Cordova.
PhoneGap byl vytvořen na konferenci iPhoneDevCamp v roce 2008, kde vývojáři Nitobi Software předvedli technologii zabalení webových aplikací do nativního kontejneru. První veřejná verze vyšla v roce 2009 a okamžitě upoutala pozornost komunity webových vývojářů, kteří hledali způsoby, jak vstoupit na mobilní trh bez učení Objective-C.
Hlavní inovace PhoneGap spočívala v tom, že vývojáři mohli používat známé webové technologie — HTML, CSS a JavaScript — k vytváření aplikací, které se instalují na zařízení prostřednictvím obchodů s aplikacemi a mají přístup k nativním funkcím: fotoaparátu, GPS, kontaktům a akcelerometru.
Podle Adobe Developer Relations (2015) používalo PhoneGap v období vrcholu více než 600 tisíc vývojářů po celém světě. Platforma byla obzvláště populární mezi webovými studii a freelancery, kteří chtěli rozšířit své portfolio o mobilní projekty bez najímání iOS a Android inženýrů.
Hlavní rozdíl mezi PhoneGap a Apache Cordova spočívá v modelu distribuce a doplňkových službách. Cordova je čistě open-source framework spravovaný Apache Foundation, zatímco PhoneGap je jeho komerční distribuce s exkluzivními možnostmi Adobe.
| Vlastnost | Apache Cordova | PhoneGap (Adobe) |
|---|---|---|
| Licence | Apache 2.0 (otevřená) | Apache 2.0 + proprietární komponenty |
| Jádro | Původní kód | Stejný kód Cordova |
| Cloudová kompilace | Chybí | PhoneGap Build |
| Nástroje | CLI + IDE třetích stran | Adobe PhoneGap Desktop + CLI |
| Podpora | Komunita Apache | Adobe (do roku 2020) |
Hlavní výhoda a nejdůležitější komerční rozdíl PhoneGap oproti Apache Cordova — je služba PhoneGap Build, která přebírá fázi kompilace. Vývojář nahraje zdrojové soubory na server Adobe, vybere cílové platformy a získá hotové binární soubory bez instalace Android SDK, Xcode a souvisejících nástrojů pro kompilaci.
Kromě toho PhoneGap zahrnoval integraci s Adobe Creative Cloud, což umožňovalo designérům exportovat návrhy z Photoshopu přímo do struktury projektu PhoneGap. Tato funkce byla žádaná v malých týmech bez vyhrazeného mobilního vývojáře.
PhoneGap Build — je webová služba Adobe, která kompiluje zdrojový kód aplikace PhoneGap/Cordova do instalačních souborů pro iOS (.ipa), Android (.apk), Windows Phone (.xap) a další platformy. Uživatel nemusí na svém počítači instalovat SDK cílových operačních systémů.
Proces kompilace se skládá ze tří kroků: vývojář archivuje projekt (nebo zadá Git repozitář), nahraje jej na build.phonegap.com a vybere platformy. Po několika minutách server vrátí hotové binární soubory k nahrání do obchodů s aplikacemi.
PhoneGap Build podporoval dva typy předplatného: bezplatné (až 2 aplikace, veřejná kompilace) a placené (až 25 aplikací, soukromá kompilace, vlastní ikony a certifikáty). Pro iOS byl vyžadován nahrávací certifikát Apple Developer Program, který uživatel nahrál do svého osobního účtu. Mechanismus fungování Build byl jednoduchý: uživatel odeslal ZIP archiv nebo zadal Git repozitář, server automaticky určil platformy a vrátil hotové binární soubory prostřednictvím ovládacího panelu.
Podle Adobe Blog (2017) prošlo PhoneGap Build měsíčně více než 500 tisíc kompilací. Služba byla obzvláště populární ve vzdělávacích institucích a na hackathonech, kde účastníci neměli přístup k Mac infrastruktuře. Vývojáři také používali Build k předvádění prototypů klientům přímo na zařízeních bez nastavení prostředí.
Struktura projektu PhoneGap je identická s Cordova. Rozdíl je pouze v konfiguračním souboru config.xml, kde je přidán element <gap> s uvedením verze PhoneGap a identifikátoru aplikace 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>
Aplikace 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>
Tento konfigurační soubor definuje aplikaci s podporou iOS a Android, specifikuje minimální verzi iOS 13 a připojuje plugin fotoaparátu. Při nahrání do PhoneGap Build server automaticky rozpozná tato nastavení a zkompiluje projekt s potřebnými závislostmi.
Příklad základního JavaScript kódu s obsluhou události připravenosti zařízení a voláním nativního dialogu:
document.addEventListener('deviceready', function() {
console.log('PhoneGap připraven k práci');
document.getElementById('btnAlert')
.addEventListener('click', function() {
navigator.notification.alert(
'Ahoj z PhoneGap!',
function() { console.log('OK'); },
'Zpráva',
'Zavřít'
);
});
});
Událost deviceready — povinný vstupní bod ve všech aplikacích PhoneGap a Cordova. Bez této události volání nativních API nebudou fungovat, protože můstek ještě není inicializován. Po připravenosti jsou k dispozici všechny pluginy, včetně notification.alert pro nativní dialogová okna.
PhoneGap měl řadu výhod, které jej učinily populárním v polovině 2010. let, ale měl také omezení, která vedla k poklesu jeho tržního podílu po roce 2018.
Hlavní výhoda PhoneGap — nízký práh vstupu pro webové vývojáře. HTML, CSS a JavaScript jsou technologie, které zná každý frontend specialista, což umožňovalo webovým studiím rychle vstoupit na trh mobilních aplikací bez najímání iOS a Android inženýrů.
Cloudová služba PhoneGap Build řešila problém infrastruktury: týmy na Windows mohly kompilovat iOS aplikace bez nákupu Macu. To bylo klíčové pro startupy s omezeným rozpočtem na vybavení.
Hlavní nevýhoda PhoneGap — výkon. WebView je pomalejší než nativní UI frameworky, zejména u složitých animací, velkých seznamů a zpracování grafiky. Podle testů HTML5Rocks (2016) trvalo vykreslení seznamu 1000 prvků v PhoneGap 200–400 ms oproti 16–30 ms v nativní aplikaci.
Další omezení zahrnovala závislost na verzi WebView na zařízení uživatele, problémy s laděním nativních pluginů a nedostatek přístupu k novým iOS a Android API až do vydání odpovídajících Cordova pluginů.
V roce 2020 Adobe oznámilo ukončení podpory PhoneGap a PhoneGap Build. Společnost předala výsledky komunitě s doporučením přejít na Apache Cordova nebo Capacitor. PhoneGap Build byl uzavřen a cloudová kompilace již není k dispozici.
U stávajících projektů PhoneGap se doporučuje migrace na Capacitor — to je nejpřímější cesta s minimálními změnami kódu. Stačí nahradit inicializační skripty a aktualizovat konfiguraci. Veškerý JavaScript kód a HTML šablony zůstávají nezměněny, protože Capacitor používá stejné principy můstku.
Alternativní možnost — přímý přechod na Apache Cordova. To vyžaduje lokální instalaci platforem přes CLI a nastavení lokální kompilace, ale plně zachovává kompatibilitu se stávajícími pluginy a architekturou aplikace.
Navzdory uzavření je historický význam PhoneGap těžké přecenit. Právě PhoneGap ukázal trhu, že webové technologie mohou být základem pro mobilní aplikace, a otevřel cestu moderním hybridním a cross-platform frameworkům. Koncept cloudové kompilace, poprvé implementovaný v PhoneGap Build, byl později převzat Ionic Appflow, Visual Studio App Center a dalšími službami kontinuální integrace pro mobilní projekty.
Architektonická rozhodnutí PhoneGap — můstek přes WebView, systém pluginů a konfigurace přes config.xml — se stala de facto standardem pro hybridní vývoj. I v moderních projektech Capacitor je patrné dědictví PhoneGap: stejné principy práce s pluginy a podobný proces kompilace.
Pro vývojáře udržující staré projekty PhoneGap je klíčovou dovedností porozumění pluginovému můstku a schopnost přizpůsobit pluginy moderním verzím Android a iOS. Bez toho je aktualizace aplikace podle nových požadavků obchodů nemožná kvůli zastaralým systémovým oprávněním.
Často kladené otázky
PhoneGap oficiálně není podporován společností Adobe od roku 2020, ale aplikace vytvořené na jeho základě nadále fungují. Kompilace nových projektů prostřednictvím PhoneGap Build není k dispozici. Doporučuje se migrovat na Capacitor nebo Apache Cordova kvůli bezpečnostním aktualizacím.
Ionic — je nadstavba nad Cordova (a později Capacitor), která přidává UI komponenty, směrování a nástroje pro kompilaci. PhoneGap je distribuce Cordova s cloudovou kompilací, ale bez vlastních UI komponent. Ionic používá Cordova nebo Capacitor jako backend pro nativní přístup.
Díky PhoneGap Build nebyl Mac potřeba — iOS kompilace probíhala na serverech Adobe. Po uzavření Build bude pro iOS kompilaci potřeba Mac s Xcode, protože Apache Cordova a Capacitor kompilují nativní projekty lokálně prostřednictvím nástrojů Apple.
PhoneGap je kompatibilní se všemi pluginy Apache Cordova, protože používá identickou architekturu. Pluginy cordova-plugin-camera, cordova-plugin-geolocation, cordova-plugin-file a cordova-plugin-inappbrowser fungují bez úprav. Neexistovaly pluginy specifické pouze pro PhoneGap.
Učení PhoneGap jako nového nástroje nemá smysl — není podporován. Nicméně porozumění jeho architektuře je užitečné pro údržbu starších projektů. Pro nové hybridní aplikace se doporučuje učit Capacitor v kombinaci s Ionic nebo React Native.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také