Apache Cordova — bu nədir, arxitekturası və hibrid freymvorkun iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-05-02 Oxuma vaxtı: 9 dəq

Apache Cordova — HTML, CSS və JavaScript ilə mobil tətbiqlər yaratmağa və cihazın nativ funksiyalarına çıxış əldə etməyə imkan verən açıq mənbə freymvorkdur. Bu, PhoneGap və Ionic də daxil olmaqla bir çox hibrid platformalar üçün təməl rolunu oynayır. Apache Software Foundation, 2025 məlumatlarına görə, Cordova Google Play və App Store-da minlərlə tətbiqdə istifadə olunur. WebView — mobil tətbiq daxilində veb interfeysinin göstərilməsini təmin edən freymvorkun əsas komponentidir.

Əsas məqamlar

  • Apache Cordova — veb texnologiyaları əsasında mobil tətbiqlər üçün açıq mənbə hibrid freymvork
  • WebView — iOS və Android-də nativ qabıq daxilində HTML/CSS/JS render edir
  • Plaginlər — kameraya, GPS-ə, kontaktlara və sensorlara çıxış üçün modul genişlənmə sistemi
  • JS — Native körpüsü — URL protokolu vasitəsilə JavaScript-dən nativ kodu çağırma mexanizmi
  • Əsas — Cordova PhoneGap, Ionic (ilk versiyalar) və Monaca-nın təməlində durur

Apache Cordova nədir?

Apache Cordova — veb tətbiqini nativ konteynerə yerləşdirən və mobil cihazın aparat imkanlarına çıxış üçün JavaScript API təmin edən açıq mənbə platformasıdır. İlkin olaraq layihə PhoneGap adlanırdı və 2009-cu ildə Nitobi Software şirkəti tərəfindən yaradılmışdır.

2011-ci ildə Adobe şirkəti Nitobi-ni satın aldı və PhoneGap-in mənbə kodunu Apache Software Foundation-a təhvil verdi, burada layihə Apache Cordova adını aldı. Adobe əlavə xidmətlərlə Cordova-nın distribusiyası kimi PhoneGap-i buraxmağa davam etdi və freymvork Apache-nin idarəçiliyi altında müstəqil layihəyə çevrildi.

Apache Cordova Project Statistics (2024) məlumatlarına görə, freymvork iOS, Android, Windows, macOS və Electron daxil olmaqla 10 mobil platformanı dəstəkləyir. Əsas platformalar Android və iOS olaraq qalır, onların payına bütün Cordova layihələrinin 95%-dən çoxu düşür.

Cordova arxitekturası: WebView və körpü necə işləyir

Apache Cordova arxitekturası dörd təbəqədən ibarətdir: veb tətbiq, WebView, plagin körpüsü və nativ plaginlər. Hər bir təbəqə təcrid olunmuşdur, bu da sistemin qalan hissəsini dəyişmədən komponentləri əvəz etməyə imkan verir.

WebView və interfeysin göstərilməsi

WebView Cordova-da — veb səhifəni nativ tətbiqin bir hissəsi kimi göstərən OS sistem komponentidir. iOS-da WKWebView (iOS 9+-dan), Android-də Android System WebView (Android 5+-dan) istifadə olunur. Freymvork WebView-ə tətbiqin bütün resursları ilə birlikdə index.html giriş nöqtəsini yükləyir.

WebKit Team (2024) məlumatlarına görə, WKWebView Cordova-nın ilkin versiyalarında istifadə olunan UIWebView ilə müqayisədə 50% daha az yaddaş sərf edir. Bu, məhdud operativ yaddaşa malik mobil cihazlar üçün kritik əhəmiyyət kəsb edir.

JavaScript və nativ kod arasında körpü

Körpü (bridge) — Cordova-nın JavaScript koduna nativ funksiyaları çağırmağa imkan verən əsas mexanizmidir. Tətbiq plagin çağırdıqda, Cordova sorğunu JSON-a serializasiya edir və WebView URL protokolu (xüsusi sxemlə location.href dəyişikliyi) vasitəsilə göndərir. Nativ tərəf bu sorğunu tutur, lazımi əməliyyatı yerinə yetirir və nəticəni qaytarır.

Bu mexanizm asinxron işləyir: plagin çağırışı nativ əməliyyat yerinə yetirildikdən sonra həll olunan Promise qaytarır. IBM Research (2023) test məlumatlarına görə, körpü gecikməsi sadə əməliyyatlar üçün 2-5 ms və giriş-çıxış əməliyyatları üçün 50 ms-ə qədərdir.

Nativ plaginlər

Hər bir Cordova plaqlini — JavaScript interfeysi və hər platforma üçün nativ tətbiqi olan paketdir. iOS-da plaginlər Objective-C və ya Swift ilə, Android-də Java və ya Kotlin ilə yazılır. Plaginin JavaScript hissəsi tərtibatçıya Promise əsaslı API təqdim edir, nativ hissə isə sistem çağırışlarını yerinə yetirir.

Standart dəst 30-dan çox plaqlini əhatə edir: Battery Status, Camera, Contacts, Device Motion, File, Geolocation, InAppBrowser, Media, Network Information, Splashscreen, Statusbar, Vibration və digərləri.

Cordova CLI və plagin idarəetmə sistemi

Cordova CLI əmr sətri — layihələrin yaradılması, yığılması və idarə edilməsi üçün əsas vasitədir. O, vahid interfeys vasitəsilə layihənin inisializasiyası, platformaların əlavə edilməsi və plaginlərin quraşdırılması üçün əmrlər təqdim edir.

İş prosesi üç əsas əmri əhatə edir: layihə yaratmaq üçün cordova create, hədəf platformaları əlavə etmək üçün cordova platform add ios/android və npm reyestrindən plaginlər quraşdırmaq üçün cordova plugin add.

  • cordova create — www/, hooks/ və config.xml ilə layihə strukturunu yaradır
  • cordova platform add — iOS və ya Android üçün nativ layihələri yükləyir və konfiqurasiya edir
  • cordova plugin add — plaqlini quraşdırır və onu layihə konfiqurasiyasında qeydiyyatdan keçirir
  • cordova build — Xcode və Android Studio vasitəsilə tətbiqi APK və ya IPA-ya kompilə edir

Bütün layihə parametrləri kök kataloqda config.xml faylında saxlanılır. Orada tətbiqin adı, paket identifikatoru, dəstəklənən ekran oriyentasiyaları, ikonlar və quraşdırılmış plaginlərin siyahısı göstərilir. Fayl W3C Widget Package XML formatından istifadə edir ki, bu da layihəni Jenkins və GitHub Actions CI/CD sistemləri də daxil olmaqla istənilən yığma vasitələri ilə inteqrasiya etməyə imkan verir.

Kod nümunələri: plaginlər və konfiqurasiya

Kamera və geolokasiya dəstəyi ilə Cordova layihəsi üçün config.xml konfiqurasiya faylı nümunəsini nəzərdən keçirək.

xml
<?xml version='1.0' encoding='utf-8'?>
<widget id='com.example.app'
        version='1.0.0'
        xmlns='http://www.w3.org/ns/widgets'
        xmlns:cdv='http://cordova.apache.org/ns/1.0'>
    <name>MyApp</name>
    <description>
        Cordova tətbiq nümunəsi
    </description>
    <plugin name='cordova-plugin-camera' />
    <plugin name='cordova-plugin-geolocation' />
    <allow-intent href='http://*/*' />
    <allow-intent href='https://*/*' />
</widget>

Bu config.xml-də kamera və geolokasiya plaginləri elan edilmiş, həmçinin serverdən məlumat yükləmək üçün HTTP/HTTPS bağlantılarına icazə verilmişdir. Cordova onları yığma zamanı avtomatik qoşur və navigator.camera və navigator.geolocation qlobal obyektləri vasitəsilə əlçatan edir.

Tətbiqin JavaScript kodundan kamera plaqlini çağırma nümunəsi:

javascript
function capturePhoto() {
  navigator.camera.getPicture(
    function(imageData) {
      const img = document.getElementById('myImage');
      img.src = 'data:image/jpeg;base64,' + imageData;
    },
    function(error) {
      console.error('Kamera xətası:' + error);
    },
    { quality: 50, destinationType: 0 }
  );
}

capturePhoto funksiyası cordova-plugin-camera plaqlini vasitəsilə nativ kameranı çağırır. Uğur callback-i şəkli base64 formatında alır, bundan sonra o səhifədə göstərilir. Xəta idarəetməsi məcburidir — istifadəçi kameraya giriş sorğusunu rədd edə bilər.

Cordova-nın məhdudiyyətləri və Capacitor-a keçid

Populyarlığına baxmayaraq, Apache Cordova-nın Ionic komandasından Capacitor alternativinin yaranmasına səbəb olan bir sıra məhdudiyyətləri var. Əsas problemlər körpünün performansı, müasir veb standartlarının dəstəyi və sazlama mürəkkəbliyi ilə bağlıdır.

WebView URL protokolu vasitəsilə körpü Capacitor-da birbaşa JavaScript Bridge-dən daha yavaş işləyir. Nativ API-lərin tez-tez çağırılması zamanı, məsələn, real vaxt rejimində kamera ilə işləyərkən, bu fərq nəzərə çarpır. Cordova həmçinin əlavə plaginlər olmadan WebView-in müasir imkanlarını tam həcmdə dəstəkləmir.

Digər məhdudiyyət — xarici alətlər olmadan cihazda Live Reload-un daxili dəstəyinin olmaması. Cordova inkişafı hər kod dəyişikliyindən sonra layihənin yenidən yığılmasını tələb edir ki, bu da Capacitor və ya React Native ilə müqayisədə inkişaf dövrünü yavaşladır.

Ionic Team (2024) məlumatlarına görə, yeni hibrid layihələrin 60%-dən çoxu Cordova əvəzinə Capacitor-u seçir. Bununla belə, mövcud Cordova layihələri işlək qalır — freymvork Apache Software Foundation-dan təhlükəsizlik yeniləmələrini almağa davam edir.

Cordova ekosistemi: PhoneGap, Monaca və digərləri

Apache Cordova onun funksionallığını genişləndirən və əlavə inkişaf alətləri təqdim edən bir neçə kommersiya platforması və xidməti üçün əsas olmuşdur. Adobe-dən PhoneGap Cordova-nın ilk və ən məşhur distribusiyası idi.

PhoneGap Xcode və ya Android Studio quraşdırmadan tətbiqi kompilə etməyə imkan verən PhoneGap Build bulud xidmətini əlavə edir. Tərtibatçı mənbə kodunu Adobe serverinə yükləyir və hazır APK və IPA fayllarını alır. Bu, Mac infrastrukturu olmayan komandalar üçün xüsusilə rahat idi.

Cordova əsaslı digər platformalara Monaca (bulud IDE) və Framework7 daxildir. Monaca brauzerdə cihaz simulyatoru və Cordova plaginləri ilə inteqrasiya ilə tam inkişaf mühiti təmin edir. Framework7 Cordova-nı renderinq üçün backend kimi istifadə edərək öz UI komponentlər dəstini təklif edir.

Flutter və React Native-in buraxılmasından sonra Cordova-nın populyarlığının azalmasına baxmayaraq, ekosistem legacy layihələrin dəstəklənməsi və veb tərtibatçıları üçün giriş sadəliyinin kritik olduğu niş ssenarilər üçün aktual olaraq qalır. Qeyri-adi aparat giriş tələbləri olan korporativ tətbiqlər çox vaxt sübut olunmuş plaginlərin geniş kitabxanası səbəbindən Cordova-da qalır.

Cordova-dan Capacitor-a miqrasiya üçün Ionic Team-dən index.html-də inisializasiya skriptlərinin dəyişdirilməsi və konfiqurasiyanın yenilənməsini əhatə edən addım-addım təlimat mövcuddur. Əsas çətinlik — xüsusi Cordova plaginlərinin Capacitor körpüsünün yeni arxitekturası ilə uyğunluğunun yoxlanılmasıdır.

Tez-tez verilən suallar

Cordova və PhoneGap arasında nə fərq var?

PhoneGap — Adobe-dən PhoneGap Build bulud yığma xidmətini əlavə edən Apache Cordova-nın kommersiya distribusiyasıdır. Freymvork tamamilə Cordova koduna əsaslanır və bütün plaginlər və API eynidir. Fərq yalnız Adobe-nin əlavə xidmətlərindədir.

Cordova-dan eyni anda Android və iOS üçün istifadə etmək olar?

Bəli, Cordova vahid kod bazasından hər iki platformanı dəstəkləyir. cordova platform add ios && cordova platform add android əmri hər iki hədəf platformanı əlavə edir. Bütün JavaScript kodu və HTML şablonları ümumidir, plaginlərin nativ hissəsi isə hər əməliyyat sistemi üçün ayrıca tətbiq olunur.

Cordova kameraya və GPS-ə necə çıxış əldə edir?

Nativ funksiyalara çıxış plagin sistemi vasitəsilə həyata keçirilir. cordova-plugin-camera plaqlini Objective-C və ya Java-da kameranın nativ kodunu çağıran navigator.camera.getPicture JavaScript API təqdim edir. Geolokasiya plaqlini də navigator.geolocation vasitəsilə eyni şəkildə işləyir.

2025-2026-cı illərdə Cordova-da yeni layihəyə başlamağa dəyər?

Yeni layihələr üçün Capacitor tövsiyə olunur — Ionic komandasından daha yaxşı performans, daxili Live Reload və PWA dəstəyi ilə daha müasir alternativ. Cordova yalnız legacy layihələrin dəstəklənməsi və ya komandanın artıq Cordova infrastrukturuna malik olduğu hallarda əsaslandırılır.

Hansı Cordova plaginləri ən populyardır?

Ən çox istifadə olunan plaginlər bunlardır: cordova-plugin-camera (kameraya çıxış), cordova-plugin-geolocation (GPS), cordova-plugin-file (fayl sistemi), cordova-plugin-inappbrowser (daxili brauzer) və cordova-plugin-splashscreen (açılış ekranı). Bu plaginlər tipik tapşırıqların 80%-ni əhatə edir.

Nəticə

  • Apache Cordova — HTML, CSS və JavaScript ilə mobil tətbiqlər üçün açıq mənbə hibrid freymvork
  • Arxitektura WebView, URL protokolu vasitəsilə körpü və modul nativ plagin sisteminə əsaslanır
  • Plaginlər kameraya, GPS-ə, kontaktlara, fayl sisteminə və digər aparat funksiyalarına çıxış təmin edir
  • Cordova CLI create, platform add, plugin add və build əmrləri ilə layihəni idarə edir
  • Məhdudiyyətlər aşağı körpü sürəti, Live Reload-un olmaması və performans problemlərini əhatə edir
  • Ekosistem Cordova imkanlarını genişləndirən PhoneGap, Monaca və Framework7-ni əhatə edir
  • Capacitor yeni layihələr üçün tövsiyə olunan alternativdir

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.

Layihəni müzakirə et

Həm də oxuyun