Bosh sahifa Wiki Cordova

Cordova

CordovaHTML, CSS va JavaScript yordamida mobil application yaratib, web interfeysni native container ichida ishga tushirishga mo‘ljallangan ochiq kodli platforma. To‘liq nomi ko‘pincha Apache Cordova shaklida ishlatiladi. Application WebView ichida ishlaydi, native qurilma imkoniyatlariga esa pluginlar orqali murojaat qiladi.

Cordova web developerga mavjud frontend bilimlari bilan Android va iOS application yaratish imkonini beradi.

WebView

Applicationning asosiy UI qismi platformadagi WebView componentida render qilinadi.

WebView HTML document, CSS va JavaScriptni bajaradi.

U oddiy browserga o‘xshaydi, ammo native application processi va configurationi ichida ishlaydi.

Browser engine platforma versiyasiga bog‘liq.

Native shell

Cordova project har platforma uchun native wrapper yaratadi.

Wrapper:

bilan ishlaydi.

Developer ko‘p UI kodini umumiy www directory’da saqlaydi.

Project tuzilishi

Asosiy qismlar:

  • web source;
  • configuration;
  • platformlar;
  • pluginlar;
  • hooklar;
  • build artifact.

Generated platforms directory ko‘pincha tool tomonidan qayta yaratiladi.

Qo‘lda o‘zgartirish keyingi buildda yo‘qolishi mumkin.

config.xml

Application metadata va platforma preference’larini belgilaydi.

Masalan:

Build tizimi undan Android va iOS project konfiguratsiyasini yaratadi.

Plugin

Plugin JavaScript API va native implementationni birlashtiradi.

Misollar:

  • camera;
  • file;
  • geolocation;
  • notification;
  • device info;
  • biometric.

Har plugin Android va iOS uchun alohida kodga ega bo‘lishi mumkin.

JavaScript-native bridge

JavaScript method plugin bridge orqali native qismga message yuboradi.

Native kod actionni bajarib callback yoki Promise natijasini qaytaradi.

Ko‘p mayda bridge call performance’ni pasaytiradi.

Katta binary data almashish ehtiyotkor tashkil qilinadi.

Device ready

Cordova APIlari native bridge tayyor bo‘lgandan keyin ishlatiladi.

deviceready event shuni bildiradi.

Oddiy DOM ready bridge tayyorligini kafolatlamaydi.

Plugin call juda erta bajarilsa API mavjud bo‘lmasligi mumkin.

Platform qo‘shish

Projectga Android yoki iOS platforma targeti qo‘shiladi.

Tool tegishli native projectni yaratadi.

Build uchun Android SDK, Gradle yoki Xcode kabi platforma vositalari kerak.

Cordova ularning o‘rnini bosmaydi.

Build

Web asset native projectga nusxalanadi, plugin kod ulanadi va platforma build tooli package yaratadi.

Android APK/AAB, iOS archive yoki IPAga oid artifact olinadi.

Release signing har platforma qoidasi bilan bajariladi.

Single Page Application

Cordova UI ko‘pincha SPA framework bilan yaratiladi.

Routing browser path o‘rniga hash yoki local history bilan ishlashi mumkin.

Application assetlari local file yoki internal web serverdan yuklanadi.

Deep link alohida plugin va native configuration talab qiladi.

Network

WebView Fetch yoki XHR orqali backend APIga murojaat qiladi.

CORS, TLS va certificate behavior WebView va plugin usuliga bog‘liq.

Allowlist faqat kerakli domainlarga navigationni cheklaydi.

Token secure storage pluginida saqlanishi mumkin.

Content Security Policy

CSP injected script va noma’lum resource’larni cheklashga yordam beradi.

Cordova application local content ishlatsa ham XSS xavfi mavjud.

Inline script va evalni keng ruxsat qilish himoyani susaytiradi.

Remote HTMLni ishonchsiz holda application WebView’da ochish xavfli.

XSS xavfi

Oddiy web saytdagi XSS Cordova’da native pluginlarga access olishi mumkin.

Agar JavaScript bridge camera, file yoki token APIlarini ochsa hujum ta’siri kattalashadi.

User input sanitization, CSP va minimal plugin permission muhim.

Plugin sifati

Plugin platforma yangilanishiga mos bo‘lishi kerak.

Eski plugin:

yaratishi mumkin.

Maintainer faolligi va source code tekshiriladi.

UI performance

WebView DOM va CSS bilan interfeys yaratadi.

Oddiy form va content application uchun yetarli.

Murakkab animation, katta list va grafikada native yoki boshqa rendering toolkit tezroq bo‘lishi mumkin.

Performance real past quvvatli qurilmada tekshiriladi.

Offline

Web assetlar application ichida bo‘lgani sabab UI offline ochilishi mumkin.

API data cache, IndexedDB yoki file storage’da saqlanadi.

Service worker WebView’da platforma va origin configurationiga bog‘liq.

Sync conflict va stale data boshqariladi.

Update

Store orqali yangi native package tarqatiladi.

Faqat remote web contentni almashtirish platforma store siyosati va security talablariga zid bo‘lishi mumkin.

Plugin yoki permission o‘zgarsa baribir yangi native build kerak.

Cordova va PWA

PWA browser orqali o‘rnatiladi va web capabilitylarga tayanadi.

Cordova native package va plugin bridge beradi.

Cordova store distribution va chuqurroq native API uchun, PWA esa URL orqali tarqatish uchun qulay bo‘lishi mumkin.

Cordova va Ionic

Cordova runtime va native bridge qatlamidir.

Ionic esa web UI componentlari va application frameworkini beradi.

Ionic Cordova yoki boshqa native bridge bilan ishlashi mumkin.

Ular bir xil tushuncha emas.

Maintenance

Platforma SDK va store talablarining o‘zgarishi Cordova CLI, platform package va plugin update’ini talab qiladi.

Generated projectni yillar davomida yangilamaslik release buildni buzadi.

Dependency lock va reproducible CI ishlatiladi.

Bog‘liq tushunchalar

Apache Cordova, WebView, Hybrid application, JavaScript bridge, Cordova plugin, HTML, CSS, JavaScript, Ionic, PWA, Cross-platform development