Apache Cordova ایک اوپن سورس فریم ورک ہے جو آپ کو HTML، CSS اور JavaScript کا استعمال کرتے ہوئے ڈیوائس کی نیٹیو خصوصیات تک رسائی کے ساتھ موبائل ایپلیکیشنز بنانے کی اجازت دیتا ہے۔ یہ PhoneGap اور Ionic سمیت کئی ہائبرڈ پلیٹ فارمز کی بنیاد کے طور پر کام کرتا ہے۔ Apache Software Foundation، 2025 کے مطابق، Cordova Google Play اور App Store میں ہزاروں ایپلیکیشنز میں استعمال ہوتا ہے۔ WebView فریم ورک کا بنیادی جزو ہے، جو موبائل ایپلیکیشن کے اندر ویب انٹرفیس دکھانے کے لیے ذمہ دار ہے۔
اہم نکات
Apache Cordova ایک اوپن سورس پلیٹ فارم ہے جو ویب ایپلیکیشن کو نیٹیو کنٹینر میں لپیٹتا ہے اور موبائل ڈیوائس کی ہارڈویئر صلاحیتوں تک رسائی کے لیے JavaScript API فراہم کرتا ہے۔ یہ پروجیکٹ اصل میں PhoneGap کہلاتا تھا اور اسے 2009 میں Nitobi Software نے بنایا تھا۔
2011 میں، Adobe نے Nitobi کو حاصل کیا اور PhoneGap کے سورس کوڈ کو Apache Software Foundation کو عطیہ کیا، جہاں پروجیکٹ کا نام Apache Cordova رکھا گیا۔ Adobe نے اضافی خدمات کے ساتھ PhoneGap کو Cordova کی تقسیم کے طور پر جاری رکھا، جبکہ فریم ورک Apache کے زیر انتظام ایک آزاد پروجیکٹ بن گیا۔
Apache Cordova Project Statistics (2024) کے مطابق، فریم ورک iOS، Android، Windows، macOS اور Electron سمیت 10 موبائل پلیٹ فارمز کو سپورٹ کرتا ہے۔ اہم پلیٹ فارمز Android اور iOS ہیں، جو تمام Cordova پروجیکٹس کا 95% سے زیادہ حصہ بناتے ہیں۔
Apache Cordova کا فن تعمیر چار تہوں پر مشتمل ہے: ویب ایپلیکیشن، WebView، پلگ ان پل اور نیٹیو پلگ انز۔ ہر تہہ الگ تھلگ ہے، جس سے سسٹم کے باقی حصوں کو تبدیل کیے بغیر اجزاء کو تبدیل کیا جا سکتا ہے۔
Cordova میں WebView ایک OS سسٹم جزو ہے جو ویب صفحہ کو نیٹیو ایپلیکیشن کے حصے کے طور پر دکھاتا ہے۔ iOS پر یہ WKWebView (iOS 9+ سے)، Android پر — Android System WebView (Android 5+ سے) استعمال کرتا ہے۔ فریم ورک تمام ایپلیکیشن وسائل کے ساتھ index.html انٹری پوائنٹ کو WebView میں لوڈ کرتا ہے۔
WebKit Team (2024) کے مطابق، WKWebView UIWebView کے مقابلے میں 50% کم میموری استعمال کرتا ہے، جو Cordova کے ابتدائی ورژنز میں استعمال ہوتا تھا۔ یہ محدود RAM والے موبائل آلات کے لیے اہم ہے۔
پل Cordova کا کلیدی طریقہ کار ہے جو JavaScript کوڈ کو نیٹیو فنکشنز کال کرنے کی اجازت دیتا ہے۔ جب کوئی ایپلیکیشن پلگ ان کو کال کرتی ہے، تو Cordova درخواست کو JSON میں سیریلائز کرتا ہے اور اسے WebView URL پروٹوکول (کسٹم اسکیما کے ساتھ location.href تبدیل کرکے) کے ذریعے بھیجتا ہے۔ نیٹیو سائیڈ اس درخواست کو روکتا ہے، مطلوبہ آپریشن انجام دیتا ہے اور نتیجہ واپس کرتا ہے۔
یہ طریقہ کار غیر متزامن طور پر کام کرتا ہے: پلگ ان کال ایک Promise واپس کرتی ہے جو نیٹیو آپریشن مکمل ہونے کے بعد حل ہوتی ہے۔ IBM Research (2023) کے ٹیسٹوں کے مطابق، سادہ آپریشنز کے لیے پل کی تاخیر 2–5 ms اور I/O آپریشنز کے لیے 50 ms تک ہے۔
ہر Cordova پلگ ان ایک JavaScript انٹرفیس اور ہر پلیٹ فارم کے لیے نیٹیو نفاذ کے ساتھ ایک پیکیج ہے۔ iOS پر پلگ انز Objective-C یا Swift میں لکھے جاتے ہیں، Android پر — Java یا Kotlin میں۔ پلگ ان کا JavaScript حصہ ڈیولپر کو Promise پر مبنی API فراہم کرتا ہے، جبکہ نیٹیو حصہ سسٹم کالز انجام دیتا ہے۔
معیاری سیٹ میں 30 سے زیادہ پلگ انز شامل ہیں: Battery Status، Camera، Contacts، Device Motion، File، Geolocation، InAppBrowser، Media، Network Information، Splashscreen، Statusbar، Vibration اور دیگر۔
Cordova CLI کمانڈ لائن پروجیکٹس بنانے، بنانے اور ان کا انتظام کرنے کا مرکزی ٹول ہے۔ یہ ایک متحد انٹرفیس کے ذریعے پروجیکٹ شروع کرنے، پلیٹ فارم شامل کرنے اور پلگ انز انسٹال کرنے کے لیے کمانڈز فراہم کرتا ہے۔
ورک فلو میں تین بنیادی کمانڈز شامل ہیں: پروجیکٹ بنانے کے لیے cordova create، ہدف پلیٹ فارمز شامل کرنے کے لیے cordova platform add ios/android اور npm رجسٹری سے پلگ انز انسٹال کرنے کے لیے cordova plugin add۔
تمام پروجیکٹ سیٹنگز روٹ ڈائریکٹری میں config.xml فائل میں محفوظ ہوتی ہیں۔ اس میں ایپلیکیشن کا نام، پیکیج شناخت کنندہ، معاون اسکرین اورینٹیشنز، آئیکنز اور انسٹال کردہ پلگ انز کی فہرست بیان کی جاتی ہے۔ فائل W3C Widget Package XML فارمیٹ استعمال کرتی ہے، جو Jenkins اور GitHub Actions CI/CD سسٹمز سمیت کسی بھی بلڈ ٹول کے ساتھ پروجیکٹ کو مربوط کرنے کی اجازت دیتی ہے۔
آئیے کیمرہ اور جغرافیائی محل وقوع کی حمایت کے ساتھ Cordova پروجیکٹ کے لیے config.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 ایپلیکیشن کی مثال
</description>
<plugin name='cordova-plugin-camera' />
<plugin name='cordova-plugin-geolocation' />
<allow-intent href='http://*/*' />
<allow-intent href='https://*/*' />
</widget>
یہ config.xml کیمرہ اور جغرافیائی محل وقوع کے پلگ انز کا اعلان کرتا ہے، اور سرور سے ڈیٹا لوڈ کرنے کے لیے HTTP/HTTPS کنکشنز کی اجازت دیتا ہے۔ Cordova بلڈ کے دوران خود بخود انہیں منسلک کرتا ہے اور گلوبل navigator.camera اور navigator.geolocation آبجیکٹس کے ذریعے قابل رسائی بناتا ہے۔
ایپلیکیشن JavaScript کوڈ سے کیمرہ پلگ ان کو کال کرنے کی مثال:
function capturePhoto() {
navigator.camera.getPicture(
function(imageData) {
const img = document.getElementById('myImage');
img.src = 'data:image/jpeg;base64,' + imageData;
},
function(error) {
console.error('Camera error:' + error);
},
{ quality: 50, destinationType: 0 }
);
}
capturePhoto فنکشن cordova-plugin-camera پلگ ان کے ذریعے نیٹیو کیمرہ کو کال کرتا ہے۔ کامیابی کال بیک تصویر کو base64 فارمیٹ میں وصول کرتا ہے، جس کے بعد یہ صفحہ پر ظاہر ہوتی ہے۔ غلطی کا انتظام لازمی ہے — صارف کیمرہ تک رسائی کی درخواست کو مسترد کر سکتا ہے۔
اپنی مقبولیت کے باوجود، Apache Cordova میں کچھ حدود ہیں جن کی وجہ سے Ionic ٹیم سے Capacitor متبادل کا ظہور ہوا۔ اہم مسائل پل کی کارکردگی، جدید ویب معیارات کی حمایت اور ڈی بگنگ کی پیچیدگی سے متعلق ہیں۔
WebView URL پروٹوکول کے ذریعے پل Capacitor میں براہ راست JavaScript پل کے مقابلے میں سست ہے۔ بار بار نیٹیو APIs کو کال کرنے پر، جیسے کہ ریئل ٹائم میں کیمرہ کے ساتھ کام کرتے وقت، یہ فرق نمایاں ہو جاتا ہے۔ Cordova اضافی پلگ انز کے بغیر جدید WebView صلاحیتوں کو مکمل طور پر سپورٹ نہیں کرتا۔
ایک اور حد تیسرے فریق کے ٹولز کے بغیر ڈیوائس پر بلٹ ان Live Reload سپورٹ کی کمی ہے۔ Cordova ڈویلپمنٹ میں ہر کوڈ تبدیلی کے بعد پروجیکٹ کو دوبارہ تعمیر کرنے کی ضرورت ہوتی ہے، جو Capacitor یا React Native کے مقابلے میں ڈویلپمنٹ سائیکل کو سست کر دیتی ہے۔
Ionic Team (2024) کے مطابق، 60% سے زیادہ نئے ہائبرڈ پروجیکٹس Cordova کے بجائے Capacitor کا انتخاب کرتے ہیں۔ تاہم، موجودہ Cordova پروجیکٹس فعال رہتے ہیں — فریم ورک Apache Software Foundation سے سیکیورٹی اپڈیٹس وصول کرتا رہتا ہے۔
Apache Cordova کئی تجارتی پلیٹ فارمز اور خدمات کی بنیاد بن گیا ہے جو اس کی فعالیت کو بڑھاتے ہیں اور اضافی ڈویلپمنٹ ٹولز فراہم کرتے ہیں۔ Adobe کا PhoneGap Cordova کی پہلی اور سب سے مشہور تقسیم تھی۔
PhoneGap PhoneGap Build کلاؤڈ سروس شامل کرتا ہے، جو Xcode یا Android Studio انسٹال کیے بغیر ایپلیکیشنز کو کمپائل کرنے کی اجازت دیتا ہے۔ ڈیولپر سورس کوڈ Adobe سرور پر اپ لوڈ کرتا ہے اور تیار APK اور IPA فائلیں وصول کرتا ہے۔ یہ خاص طور پر Mac انفراسٹرکچر کے بغیر ٹیموں کے لیے آسان تھا۔
Cordova پر مبنی دیگر پلیٹ فارمز میں Monaca (کلاؤڈ IDE) اور Framework7 شامل ہیں۔ Monaca براؤزر میں ڈیوائس سمیلیٹر اور Cordova پلگ ان انضمام کے ساتھ ایک مکمل ڈویلپمنٹ ماحول فراہم کرتا ہے۔ Framework7 رینڈرنگ کے لیے Cordova کو بیک اینڈ کے طور پر استعمال کرتا ہے، UI اجزاء کا اپنا سیٹ پیش کرتا ہے۔
Flutter اور React Native کی ریلیز کے بعد Cordova کی مقبولیت میں کمی کے باوجود، ایکو سسٹم لیگیسی پروجیکٹس کی دیکھ بھال اور مخصوص منظرناموں کے لیے متعلقہ ہے جہاں ویب ڈویلپرز کے لیے آسانی سے داخلہ اہم ہے۔ غیر معمولی ہارڈویئر رسائی کی ضروریات والے انٹرپرائز ایپلیکیشنز اکثر ثابت شدہ پلگ انز کی وسیع لائبریری کی وجہ سے Cordova پر رہتے ہیں۔
Cordova سے Capacitor میں منتقلی کے لیے، Ionic ٹیم کی ایک مرحلہ وار گائیڈ موجود ہے جس میں index.html میں ابتدائیہ اسکرپٹس کو تبدیل کرنا اور کنفیگریشن کو اپ ڈیٹ کرنا شامل ہے۔ اہم چیلنج نئے Capacitor پل آرکیٹیکچر کے ساتھ کسٹم Cordova پلگ انز کی مطابقت کی جانچ کرنا ہے۔
اکثر پوچھے گئے سوالات
PhoneGap Adobe کی طرف سے Apache Cordova کی ایک تجارتی تقسیم ہے جو PhoneGap Build کلاؤڈ بلڈ سروس شامل کرتی ہے۔ فریم ورک خود مکمل طور پر Cordova کوڈ پر مبنی ہے، اور تمام پلگ انز اور APIs ایک جیسے ہیں۔ فرق صرف Adobe کی اضافی خدمات میں ہے۔
ہاں، Cordova ایک کوڈ بیس سے دونوں پلیٹ فارمز کو سپورٹ کرتا ہے۔ cordova platform add ios && cordova platform add android کمانڈ دونوں ہدف پلیٹ فارمز شامل کرتی ہے۔ تمام JavaScript کوڈ اور HTML ٹیمپلیٹس مشترکہ ہوتے ہیں، جبکہ پلگ انز کا نیٹیو حصہ ہر OS کے لیے علیحدہ علیحدہ لاگو کیا جاتا ہے۔
نیٹیو فنکشنز تک رسائی پلگ ان سسٹم کے ذریعے ہوتی ہے۔ cordova-plugin-camera پلگ ان navigator.camera.getPicture JavaScript API فراہم کرتا ہے، جو Objective-C یا Java میں نیٹیو کیمرہ کوڈ کو کال کرتا ہے۔ جغرافیائی محل وقوع کا پلگ ان navigator.geolocation کے ذریعے اسی طرح کام کرتا ہے۔
نئے پروجیکٹس کے لیے Capacitor تجویز کیا جاتا ہے — بہتر کارکردگی، بلٹ ان Live Reload اور PWA سپورٹ کے ساتھ Ionic ٹیم کا ایک زیادہ جدید متبادل۔ Cordova صرف لیگیسی پروجیکٹس کی دیکھ بھال کے لیے یا اگر ٹیم کے پاس پہلے سے Cordova پر انفراسٹرکچر ہو تو جائز ہے۔
سب سے زیادہ استعمال ہونے والے پلگ انز ہیں cordova-plugin-camera (کیمرہ تک رسائی)، cordova-plugin-geolocation (GPS)، cordova-plugin-file (فائل سسٹم)، cordova-plugin-inappbrowser (ایپ میں براؤزر) اور cordova-plugin-splashscreen (اسپلیش اسکرین)۔ یہ پلگ انز 80% عام کاموں کو کور کرتے ہیں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں