Apache Cordova — bu nima, arxitekturasi va gibrid freymvorkning ishlash prinsipi

Muallif: IT Sectr Nashr etilgan: 2026-05-02 O'qish vaqti: 9 daq

Apache Cordova — bu HTML, CSS va JavaScript yordamida mobil ilovalar yaratish va qurilmaning native funksiyalariga kirish imkonini beruvchi ochiq manbali freymvorkdir. U PhoneGap va Ionic kabi ko'plab gibrid platformalar uchun asos bo'lib xizmat qiladi. Apache Software Foundation, 2025 ma'lumotlariga ko'ra, Cordova Google Play va App Store'dagi minglab ilovalarda qo'llaniladi. WebView — mobil ilova ichida veb interfeysini ko'rsatishni ta'minlovchi freymvorkning asosiy komponentidir.

Asosiy ma'lumotlar

  • Apache Cordova — veb texnologiyalari asosidagi mobil ilovalar uchun ochiq manbali gibrid freymvork
  • WebView — iOS va Android'da native qobiq ichida HTML/CSS/JS ni render qiladi
  • Plaginlar — kameraga, GPS, kontaktlar va sensorlarga kirish uchun modul kengaytma tizimi
  • JS — Native ko'prigi — URL protokoli orqali JavaScript'dan native kodni chaqirish mexanizmi
  • Asos — Cordova PhoneGap, Ionic (erta versiyalar) va Monaca asosida yotadi

Apache Cordova nima?

Apache Cordova — bu veb ilovasini native konteynerga o'rab, mobil qurilmaning apparat imkoniyatlariga kirish uchun JavaScript API ta'minlovchi ochiq manbali platformadir. Dastlab loyiha PhoneGap deb nomlangan va 2009-yilda Nitobi Software kompaniyasi tomonidan yaratilgan.

2011-yilda Adobe kompaniyasi Nitobi'ni sotib oldi va PhoneGap'ning manba kodini Apache Software Foundation'ga topshirdi, bu yerda loyiha Apache Cordova nomini oldi. Adobe qo'shimcha xizmatlar bilan Cordova distributivi sifatida PhoneGap'ni chiqarishni davom ettirdi va freymvork Apache boshqaruvi ostida mustaqil loyihaga aylandi.

Apache Cordova Project Statistics (2024) ma'lumotlariga ko'ra, freymvork iOS, Android, Windows, macOS va Electron ni o'z ichiga olgan 10 mobil platformani qo'llab-quvvatlaydi. Asosiy platformalar Android va iOS bo'lib qolmoqda, ularning ulushiga barcha Cordova loyihalarining 95% dan ortig'i to'g'ri keladi.

Cordova arxitekturasi: WebView va ko'prik qanday ishlaydi

Apache Cordova arxitekturasi to'rt qatlamdan iborat: veb ilova, WebView, plagin ko'prigi va native plaginlar. Har bir qatlam izolyatsiya qilingan, bu tizimning qolgan qismini o'zgartirmasdan komponentlarni almashtirish imkonini beradi.

WebView va interfeysni ko'rsatish

WebView Cordova'da — bu veb sahifani native ilovaning bir qismi sifatida ko'rsatuvchi OS tizim komponentidir. iOS'da WKWebView (iOS 9+ dan), Android'da Android System WebView (Android 5+ dan) ishlatiladi. Freymvork WebView'ga ilovaning barcha resurslari bilan index.html kirish nuqtasini yuklaydi.

WebKit Team (2024) ma'lumotlariga ko'ra, WKWebView Cordova'ning ilk versiyalarida ishlatilgan UIWebView bilan solishtirganda 50% kam xotira sarflaydi. Bu cheklangan RAM xotiraga ega mobil qurilmalar uchun juda muhimdir.

JavaScript va native kod o'rtasidagi ko'prik

Ko'prik (bridge) — Cordova ning JavaScript kodiga native funksiyalarni chaqirish imkonini beruvchi asosiy mexanizmidir. Ilova plagin chaqirganda, Cordova so'rovni JSON'ga serializatsiya qiladi va uni WebView URL protokoli (maxsus sxema bilan location.href o'zgarishi) orqali yuboradi. Native tomon bu so'rovni tutib oladi, kerakli operatsiyani bajaradi va natijani qaytaradi.

Bu mexanizm asinxron ishlaydi: plagin chaqiruvi native operatsiya bajarilgandan so'ng hal bo'ladigan Promise qaytaradi. IBM Research (2023) test ma'lumotlariga ko'ra, ko'prik kechikishi oddiy operatsiyalar uchun 2-5 ms va kiritish-chiqarish operatsiyalari uchun 50 ms gacha.

Native plaginlar

Har bir Cordova plaplini — JavaScript interfeysi va har bir platforma uchun native implementatsiyaga ega paketdir. iOS'da plaginlar Objective-C yoki Swift'da, Android'da Java yoki Kotlin'da yoziladi. Plaginning JavaScript qismi dasturchiga Promise asosidagi API taqdim etadi, native qism esa tizim chaqiruvlarini bajaradi.

Standart to'plam 30 dan ortiq plaginlarni o'z ichiga oladi: Battery Status, Camera, Contacts, Device Motion, File, Geolocation, InAppBrowser, Media, Network Information, Splashscreen, Statusbar, Vibration va boshqalar.

Cordova CLI va plaginlarni boshqarish tizimi

Cordova CLI buyruq satri — loyihalarni yaratish, qurish va boshqarish uchun asosiy vositadir. U yagona interfeys orqali loyihani ishga tushirish, platformalarni qo'shish va plaginlarni o'rnatish uchun buyruqlar taqdim etadi.

Ish jarayoni uchta asosiy buyruqni o'z ichiga oladi: loyiha yaratish uchun cordova create, maqsadli platformalarni qo'shish uchun cordova platform add ios/android va npm reestridan plaginlarni o'rnatish uchun cordova plugin add.

  • cordova create — www/, hooks/ va config.xml bilan loyiha strukturasini yaratadi
  • cordova platform add — iOS yoki Android uchun native loyihalarni yuklab oladi va sozlaydi
  • cordova plugin add — plaplinni o'rnatadi va uni loyiha konfiguratsiyasida ro'yxatdan o'tkazadi
  • cordova build — Xcode va Android Studio orqali ilovani APK yoki IPA ga kompilatsiya qiladi

Barcha loyiha sozlamalari ildiz katalogdagi config.xml faylida saqlanadi. Unda ilova nomi, paket identifikatori, qo'llab-quvvatlanadigan ekran orientatsiyalari, piktogrammalar va o'rnatilgan plaginlar ro'yxati ko'rsatiladi. Fayl W3C Widget Package XML formatidan foydalanadi, bu loyihani Jenkins va GitHub Actions CI/CD tizimlari hamda boshqa har qanday qurish vositalari bilan integratsiya qilish imkonini beradi.

Kod namunalari: plaginlar va konfiguratsiya

Kamera va geolokatsiyani qo'llab-quvvatlovchi Cordova loyihasi uchun config.xml konfiguratsiya fayli namunasini ko'rib chiqamiz.

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 ilova namunasi
    </description>
    <plugin name='cordova-plugin-camera' />
    <plugin name='cordova-plugin-geolocation' />
    <allow-intent href='http://*/*' />
    <allow-intent href='https://*/*' />
</widget>

Ushbu config.xml da kamera va geolokatsiya plaginlari e'lon qilingan, shuningdek serverdan ma'lumot yuklash uchun HTTP/HTTPS ulanishlariga ruxsat berilgan. Cordova ularni qurish vaqtida avtomatik ulaydi va navigator.camera hamda navigator.geolocation global obyektlari orqali mavjud qiladi.

Ilova JavaScript kodidan kamera plaplinni chaqirish namunasi:

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 xatosi:' + error);
    },
    { quality: 50, destinationType: 0 }
  );
}

capturePhoto funksiyasi cordova-plugin-camera plaplini orqali native kamerani chaqiradi. Muvaffaqiyat chaqiruvi tasvirni base64 formatida oladi, shundan so'ng u sahifada ko'rsatiladi. Xatolarni boshqarish majburiydir — foydalanuvchi kameraga kirish so'rovini rad etishi mumkin.

Cordova cheklovlari va Capacitor'ga o'tish

Mashhurligiga qaramay, Apache Cordova bir qator cheklovlarga ega bo'lib, ular Ionic jamoasidan Capacitor muqobilining paydo bo'lishiga olib keldi. Asosiy muammolar ko'prik unumdorligi, zamonaviy veb standartlarni qo'llab-quvvatlash va disk raskadrovka murakkabligi bilan bog'liq.

WebView URL protokoli orqali ko'prik Capacitor'dagi to'g'ridan-to'g'ri JavaScript Bridge'dan sekinroq ishlaydi. Native API larni tez-tez chaqirishda, masalan real vaqt rejimida kamera bilan ishlashda, bu farq sezilarli bo'ladi. Cordova qo'shimcha plaginlarsiz WebView'ning zamonaviy imkoniyatlarini to'liq qo'llab-quvvatlamaydi.

Yana bir cheklov — tashqi vositalarsiz qurilmada Live Reload'ning o'rnatilgan qo'llab-quvvatlanmasligi. Cordova ishlab chiqish har bir kod o'zgarishidan so'ng loyihani qayta qurishni talab qiladi, bu Capacitor yoki React Native bilan solishtirganda ishlab chiqish siklini sekinlashtiradi.

Ionic Team (2024) ma'lumotlariga ko'ra, yangi gibrid loyihalarning 60% dan ortig'i Cordova o'rniga Capacitor'ni tanlaydi. Biroq mavjud Cordova loyihalari ishlaydigan holatda qoladi — freymvork Apache Software Foundation'dan xavfsizlik yangilanishlarini olishda davom etmoqda.

Cordova ekotizimi: PhoneGap, Monaca va boshqalar

Apache Cordova uning funksionalligini kengaytiruvchi va qo'shimcha ishlab chiqish vositalarini taqdim etuvchi bir nechta tijorat platformalari va xizmatlari uchun asos bo'ldi. Adobe'dan PhoneGap Cordova'ning birinchi va eng mashhur distributivi edi.

PhoneGap Xcode yoki Android Studio'ni o'rnatmasdan ilovani kompilatsiya qilish imkonini beruvchi PhoneGap Build bulut xizmatini qo'shadi. Dasturchi manba kodini Adobe serveriga yuklaydi va tayyor APK va IPA fayllarini oladi. Bu, ayniqsa, Mac infratuzilmasi bo'lmagan jamoalar uchun qulay edi.

Cordova asosidagi boshqa platformalarga Monaca (bulut IDE) va Framework7 kiradi. Monaca brauzerda qurilma simulyatori va Cordova plaginlari bilan integratsiyaga ega to'liq ishlab chiqish muhitini taqdim etadi. Framework7 Cordova'ni renderlash uchun backend sifatida ishlatib, o'zining UI komponentlar to'plamini taklif qiladi.

Flutter va React Native chiqarilishidan so'ng Cordova mashhurligining pasayishiga qaramay, ekotizim eski loyihalarni qo'llab-quvvatlash va veb dasturchilar uchun kirish soddaligi muhim bo'lgan maxsus stsenariylar uchun dolzarbligicha qolmoqda. Nostandart apparatga kirish talablariga ega korporativ ilovalar ko'pincha isbotlangan plaginlarning keng kutubxonasi tufayli Cordova'da qoladi.

Cordova'dan Capacitor'ga migratsiya uchun Ionic Team'dan index.html dagi ishga tushirish skriptlarini almashtirish va konfiguratsiyani yangilashni o'z ichiga olgan bosqichma-bosqich yo'riqnoma mavjud. Asosiy qiyinchilik — maxsus Cordova plaginlari ning Capacitor ko'prigining yangi arxitekturasi bilan mosligini tekshirish.

Ko'p beriladigan savollar

Cordova va PhoneGap o'rtasidagi farq nima?

PhoneGap — bu PhoneGap Build bulut qurish xizmatini qo'shuvchi Adobe'dan Apache Cordova'ning tijorat distributividir. Freymvork to'liq Cordova kodiga asoslangan va barcha plaginlar va API bir xil. Farq faqat Adobe'ning qo'shimcha xizmatlarida.

Cordova'ni Android va iOS uchun bir vaqtning o'zida ishlatish mumkinmi?

Ha, Cordova ikkala platformani yagona kod bazasidan qo'llab-quvvatlaydi. cordova platform add ios && cordova platform add android buyrug'i ikkala maqsadli platformani qo'shadi. Barcha JavaScript kodi va HTML shablonlari umumiy, plaginlarning native qismi esa har bir operatsion tizim uchun alohida amalga oshirilgan.

Cordova kamera va GPS ga qanday kirishadi?

Native funksiyalarga kirish plagin tizimi orqali amalga oshiriladi. cordova-plugin-camera plaplini Objective-C yoki Java'da kameraning native kodini chaqiruvchi navigator.camera.getPicture JavaScript API ni taqdim etadi. Geolokatsiya plaplini ham navigator.geolocation orqali xuddi shunday ishlaydi.

2025-2026 yillarda Cordova'da yangi loyiha boshlashga arziydimi?

Yangi loyihalar uchun Capacitor tavsiya etiladi — Ionic jamoasidan yaxshiroq ishlash, o'rnatilgan Live Reload va PWA qo'llab-quvvatlashga ega zamonaviyroq muqobil. Cordova faqat eski loyihalarni qo'llab-quvvatlash yoki jamoa allaqachon Cordova infratuzilmasiga ega bo'lgan hollarda oqlanadi.

Qaysi Cordova plaginlari eng mashhur?

Eng ko'p ishlatiladigan plaginlar: cordova-plugin-camera (kameraga kirish), cordova-plugin-geolocation (GPS), cordova-plugin-file (fayl tizimi), cordova-plugin-inappbrowser (ichki brauzer) va cordova-plugin-splashscreen (boshlang'ich ekran). Bu plaginlar odatiy vazifalarning 80% ini qamrab oladi.

Xulosa

  • Apache Cordova — HTML, CSS va JavaScript bilan mobil ilovalar uchun ochiq manbali gibrid freymvork
  • Arxitektura WebView, URL protokoli orqali ko'prik va modul native plagin tizimiga asoslangan
  • Plaginlar kamera, GPS, kontaktlar, fayl tizimi va boshqa apparat funksiyalariga kirishni ta'minlaydi
  • Cordova CLI create, platform add, plugin add va build buyruqlari orqali loyihani boshqaradi
  • Cheklovlar past ko'prik tezligi, Live Reload yo'qligi va unumdorlik muammolarini o'z ichiga oladi
  • Ekotizim Cordova imkoniyatlarini kengaytiruvchi PhoneGap, Monaca va Framework7 ni o'z ichiga oladi
  • Capacitor yangi loyihalar uchun tavsiya etiladigan alternativadir

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing