PhoneGap — Adobe tərəfindən Apache Cordova-nın kommersiya distribusiyasıdır, HTML, CSS və JavaScript-də mobil tətbiqlər yaratmağa və yerli SDK olmadan buludda yığmağa imkan verir. Platforma ilk geniş tanınan hibrid freymvork oldu və krossplatforma inkişafının populyarlaşmasında əsas rol oynadı. Adobe PhoneGap, 2024 məlumatlarına görə, platformanın mövcudluğu müddətində 1 milyondan çox tətbiq yaradılmışdır. PhoneGap Build — Xcode və ya Android Studio quraşdırmadan APK və IPA-ya kompilasiya edən Adobe-nin əsas xidmətidir.
Əsas məqamlar
PhoneGap — ilkin olaraq 2009-cu ildə Nitobi Software şirkəti tərəfindən yaradılmış mobil tətbiqlərin hazırlanması platformasıdır. 2011-ci ildə Adobe Nitobi-ni satın aldı və PhoneGap-i kommersiya məhsulu kimi buraxdı, freymvorkun özəyini Apache Software Foundation-a Cordova adı ilə ötürdü.
PhoneGap 2008-ci ildə iPhoneDevCamp konfransında yaradılmışdır, burada Nitobi Software tərtibatçıları veb-tətbiqlərin nativ konteynerə bükülməsi texnologiyasını nümayiş etdirdilər. İlk ictimai versiya 2009-cu ildə buraxıldı və Objective-C öyrənmədən mobil bazara çıxmaq yollarını axtaran veb-tərtibatçıların diqqətini dərhal cəlb etdi.
PhoneGap-in əsas innovasiyası ondan ibarət idi ki, tərtibatçılar tanış veb-texnologiyalardan — HTML, CSS və JavaScript-dən istifadə edərək, proqram mağazaları vasitəsilə qurulan və kamera, GPS, kontaktlar və akselerometr kimi nativ funksiyalara çıxışı olan tətbiqlər yarada bilirdilər.
Adobe Developer Relations (2015) məlumatlarına görə, pik dövrdə PhoneGap-dən dünyada 600 mindən çox tərtibatçı istifadə edirdi. Platforma iOS və Android mühəndislərini işə götürmədən portfelini mobil layihələrlə genişləndirmək istəyən veb-studiyalar və frilanserlər arasında xüsusilə populyar idi.
PhoneGap və Apache Cordova arasındakı əsas fərq paylama modeli və əlavə xidmətlərdədir. Cordova Apache Foundation tərəfindən idarə olunan təmiz open-source freymvorkdur, PhoneGap isə Adobe-nin eksklüziv imkanları ilə onun kommersiya distribusiyasıdır.
| Xüsusiyyət | Apache Cordova | PhoneGap (Adobe) |
|---|---|---|
| Lisenziya | Apache 2.0 (açıq) | Apache 2.0 + mülkiyyət komponentləri |
| Özək | Orijinal kod | Eyni Cordova kodu |
| Bulud yığılması | Yoxdur | PhoneGap Build |
| Alətlər | CLI + üçüncü tərəf IDE-lər | Adobe PhoneGap Desktop + CLI |
| Dəstək | Apache icması | Adobe (2020-ci ilə qədər) |
PhoneGap-in Apache Cordova-dan əsas üstünlüyü və başlıca kommersiya fərqi — kompilasiya mərhələsini öz üzərinə götürən PhoneGap Build xidmətidir. Tərtibatçı mənbə fayllarını Adobe serverinə yükləyir, hədəf platformaları seçir və Android SDK, Xcode və əlaqəli qurğu alətlərini quraşdırmadan hazır binar faylları əldə edir.
Bundan əlavə, PhoneGap Adobe Creative Cloud ilə inteqrasiyanı özündə birləşdirərək, dizaynerlərə Photoshop-dan maketləri birbaşa PhoneGap layihə strukturuna ixrac etməyə imkan verirdi. Bu funksiya ayrıca mobil tərtibatçısı olmayan kiçik komandalarda tələb olunurdu.
PhoneGap Build — PhoneGap/Cordova tətbiqinin mənbə kodunu iOS (.ipa), Android (.apk), Windows Phone (.xap) və digər platformalar üçün quraşdırma fayllarına kompilasiya edən Adobe veb-xidmətidir. İstifadəçi kompüterində hədəf əməliyyat sistemlərinin SDK-nı quraşdırmalı deyil.
Yığma prosesi üç addımdan ibarətdir: tərtibatçı layihəni arxivləşdirir (və ya Git-repozitoriyasını göstərir), onu build.phonegap.com saytına yükləyir və platformaları seçir. Bir neçə dəqiqədən sonra server proqram mağazalarına yükləmək üçün hazır binar faylları qaytarır.
PhoneGap Build iki növ abunə dəstəkləyirdi: pulsuz (2 tətbiqədək, ictimai yığma) və pullu (25 tətbiqədək, şəxsi yığma, fərdi ikonlar və sertifikatlar). iOS üçün istifadəçinin şəxsi kabinetinə yüklədiyi Apple Developer Program yükləmə sertifikatı tələb olunurdu. Build-in iş mexanizmi sadə idi: istifadəçi ZIP-arxiv göndərir və ya Git-repozitoriyasını göstərirdi, server avtomatik olaraq platformaları müəyyənləşdirir və idarəetmə paneli vasitəsilə hazır binar faylları qaytarırdı.
Adobe Blog (2017) məlumatlarına görə, PhoneGap Build vasitəsilə aylıq 500 mindən çox yığma həyata keçirilirdi. Xidmət xüsusilə təhsil müəssisələrində və Mac infrastrukturuna çıxışı olmayan iştirakçıların olduğu hakatonlarda populyar idi. Tərtibatçılar həmçinin Build-dən prototipləri mühit qurulması olmadan birbaşa cihazlarda müştərilərə nümayiş etdirmək üçün istifadə edirdilər.
PhoneGap layihəsinin strukturu Cordova ilə eynidir. Fərq yalnız konfiqurasiya faylı config.xml-dədir, burada PhoneGap versiyasını və Adobe tətbiq identifikatorunu göstərən <gap> elementi əlavə olunur.
<?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 tətbiqi
</description>
<gap:platform name='ios' />
<gap:platform name='android' />
<gap:plugin name='cordova-plugin-camera' />
<gap:config platform='ios' min-version='13.0' />
</widget>
Bu konfiqurasiya faylı iOS və Android dəstəyi olan tətbiqi müəyyənləşdirir, minimum iOS 13 versiyasını göstərir və kamera plaginini qoşur. PhoneGap Build-ə yükləndikdə server avtomatik olaraq bu parametrləri tanıyır və layihəni lazımi asılılıqlarla yığır.
Cihazın hazırlıq hadisəsini idarə edən və nativ dialoqu çağıran əsas JavaScript kodu nümunəsi:
document.addEventListener('deviceready', function() {
console.log('PhoneGap işə hazırdır');
document.getElementById('btnAlert')
.addEventListener('click', function() {
navigator.notification.alert(
'PhoneGap-dən salam!',
function() { console.log('OK'); },
'Mesaj',
'Bağla'
);
});
});
deviceready hadisəsi — bütün PhoneGap və Cordova tətbiqlərində məcburi giriş nöqtəsidir. Bu hadisə olmadan nativ API-lərin çağırışı işləməyəcək, çünki körpü hələ işə salınmayıb. Hazırlıqdan sonra nativ dialoq pəncərələri üçün notification.alert daxil olmaqla bütün plaginlər əlçatan olur.
PhoneGap 2010-cu illərin ortalarında onu məşhur edən bir sıra üstünlüklərə malik idi, lakin 2018-ci ildən sonra bazar payının azalmasına səbəb olan məhdudiyyətlərə də sahib idi.
PhoneGap-in əsas üstünlüyü — veb-tərtibatçılar üçün aşağı giriş həddidir. HTML, CSS və JavaScript hər bir frontend mütəxəssisinin bildiyi texnologiyalardır ki, bu da veb-studiyalara iOS və Android mühəndislərini işə götürmədən mobil tətbiq bazarına sürətlə çıxmağa imkan verirdi.
PhoneGap Build bulud xidməti infrastruktur problemini həll edirdi: Windows komandaları Mac almadan iOS tətbiqlərini yığa bilirdilər. Bu, avadanlıq üçün məhdud büdcəsi olan startaplar üçün vacib idi.
PhoneGap-in əsas çatışmazlığı — performansdır. WebView nativ UI freymvorklarından daha yavaşdır, xüsusən mürəkkəb animasiyalar, böyük siyahılar və qrafik emalı zamanı. HTML5Rocks (2016) testlərinə görə, 1000 elementli siyahının göstərilməsi PhoneGap-də 200–400 ms, nativ tətbiqdə isə 16–30 ms çəkirdi.
Əlavə məhdudiyyətlər istifadəçinin cihazındakı WebView versiyasından asılılıq, nativ plaginlərin sazlanması problemləri və müvafiq Cordova plaginləri çıxana qədər yeni iOS və Android API-lərinə çıxışın olmamasını əhatə edirdi.
2020-ci ildə Adobe PhoneGap və PhoneGap Build-ə dəstəyin dayandırıldığını elan etdi. Şirkət işlənmələri Apache Cordova və ya Capacitor-a keçmək tövsiyəsi ilə icmaya ötürdü. PhoneGap Build bağlandı və bulud yığılması artıq əlçatan deyil.
Mövcud PhoneGap layihələri üçün Capacitor-a miqrasiya tövsiyə olunur — bu minimal kod dəyişiklikləri ilə ən birbaşa yoldur. İnisiallaşdırma skriptlərini əvəz etmək və konfiqurasiyanı yeniləmək kifayətdir. Bütün JavaScript kodu və HTML şablonları dəyişməz qalır, çünki Capacitor eyni körpü prinsiplərindən istifadə edir.
Alternativ variant — birbaşa Apache Cordova-ya keçid. Bu, platformaların CLI vasitəsilə yerli olaraq quraşdırılmasını və yerli yığmanın konfiqurasiyasını tələb edir, lakin mövcud plaginlər və tətbiq arxitekturası ilə tam uyğunluğu qoruyur.
Bağlanmasına baxmayaraq, PhoneGap-in tarixi əhəmiyyətini qiymətləndirmək çətindir. Məhz PhoneGap bazara göstərdi ki, veb-texnologiyalar mobil tətbiqlər üçün əsas ola bilər və müasir hibrid və krossplatforma freymvorklarına yol açdı. İlk dəfə PhoneGap Build-də həyata keçirilən bulud yığılması konsepsiyası sonradan Ionic Appflow, Visual Studio App Center və mobil layihələr üçün digər davamlı inteqrasiya xidmətləri tərəfindən mənimsənildi.
PhoneGap-in memarlıq qərarları — WebView vasitəsilə körpü, plagin sistemi və config.xml vasitəsilə konfiqurasiya — hibrid inkişaf üçün de-fakto standarta çevrildi. Hətta müasir Capacitor layihələrində də PhoneGap-in mirası izlənilir: plaginlərlə işin eyni prinsipləri və oxşar yığma prosesi.
Köhnə PhoneGap layihələrini dəstəkləyən tərtibatçılar üçün əsas bacarıq — plagin körpüsünü başa düşmək və plaginləri müasir Android və iOS versiyalarına uyğunlaşdırmaqdır. Bu olmadan tətbiqin mağazaların yeni tələblərinə uyğun yenilənməsi köhnəlmiş sistem icazələri səbəbindən qeyri-mümkün olur.
Tez-tez verilən suallar
PhoneGap 2020-ci ildən Adobe tərəfindən rəsmi olaraq dəstəklənmir, lakin onun əsasında yaradılmış tətbiqlər işləməyə davam edir. PhoneGap Build vasitəsilə yeni layihələrin yığılması əlçatan deyil. Təhlükəsizlik yeniləmələri üçün Capacitor və ya Apache Cordova-ya miqrasiya etmək tövsiyə olunur.
Ionic — UI komponentləri, marşrutlaşdırma və yığma alətləri əlavə edən Cordova (və sonra Capacitor) üzərindəki əlavədir. PhoneGap bulud yığılması olan Cordova distribusiyasıdır, lakin öz UI komponentləri yoxdur. Ionic nativ giriş üçün Cordova və ya Capacitor-dan backend kimi istifadə edir.
PhoneGap Build sayəsində Mac tələb olunmurdu — iOS yığılması Adobe serverlərində həyata keçirilirdi. Build bağlandıqdan sonra iOS yığılması üçün Xcode ilə Mac tələb olunacaq, çünki Apache Cordova və Capacitor nativ layihələri Apple alətləri vasitəsilə lokal olaraq kompilasiya edirlər.
PhoneGap eyni arxitekturanı istifadə etdiyi üçün bütün Apache Cordova plaginləri ilə uyğundur. cordova-plugin-camera, cordova-plugin-geolocation, cordova-plugin-file və cordova-plugin-inappbrowser plaginləri dəyişiklik olmadan işləyir. Yalnız PhoneGap-ə aid plaginlər mövcud deyildi.
PhoneGap-i yeni alət kimi öyrənməyin mənası yoxdur — o dəstəklənmir. Lakin onun arxitekturasını başa düşmək köhnə layihələrin dəstəklənməsi üçün faydalıdır. Yeni hibrid tətbiqlər üçün Ionic və ya React Native ilə birlikdə Capacitor-u öyrənmək tövsiyə olunur.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun