Apache Cordova একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা আপনাকে HTML, CSS এবং JavaScript ব্যবহার করে ডিভাইসের নেটিভ ফিচারগুলিতে অ্যাক্সেস সহ মোবাইল অ্যাপ্লিকেশন তৈরি করতে দেয়। এটি PhoneGap এবং Ionic সহ অনেক হাইব্রিড প্ল্যাটফর্মের ভিত্তি হিসেবে কাজ করে। Apache Software Foundation, 2025-এর তথ্য অনুসারে, Google Play এবং App Store-এ হাজার হাজার অ্যাপ্লিকেশনে Cordova ব্যবহৃত হয়। WebView ফ্রেমওয়ার্কের প্রধান উপাদান, যা মোবাইল অ্যাপ্লিকেশনের ভিতরে ওয়েব ইন্টারফেস প্রদর্শনের জন্য দায়ী।
মূল পয়েন্ট
Apache Cordova একটি ওপেন-সোর্স প্ল্যাটফর্ম যা একটি ওয়েব অ্যাপ্লিকেশনকে নেটিভ কন্টেইনারে মোড়ানো করে এবং মোবাইল ডিভাইসের হার্ডওয়্যার ক্ষমতাগুলিতে অ্যাক্সেসের জন্য JavaScript API প্রদান করে। প্রকল্পটি মূলত PhoneGap নামে পরিচিত ছিল এবং এটি 2009 সালে Nitobi Software তৈরি করেছিল।
2011 সালে, Adobe Nitobi অধিগ্রহণ করে এবং PhoneGap-এর সোর্স কোড Apache Software Foundation-এ দান করে, যেখানে প্রকল্পটির নামকরণ করা হয় Apache Cordova। Adobe অতিরিক্ত পরিষেবা সহ Cordova-এর একটি ডিস্ট্রিবিউশন হিসেবে PhoneGap প্রকাশ করতে থাকে, যখন ফ্রেমওয়ার্কটি Apache-এর পরিচালনায় একটি স্বাধীন প্রকল্পে পরিণত হয়।
Apache Cordova Project Statistics (2024) অনুসারে, ফ্রেমওয়ার্কটি iOS, Android, Windows, macOS এবং Electron সহ 10টি মোবাইল প্ল্যাটফর্ম সমর্থন করে। প্রধান প্ল্যাটফর্মগুলি Android এবং iOS, যা সমস্ত Cordova প্রকল্পের 95% এর বেশি।
Apache Cordova আর্কিটেকচার চারটি স্তর নিয়ে গঠিত: ওয়েব অ্যাপ্লিকেশন, WebView, প্লাগইন ব্রিজ এবং নেটিভ প্লাগইন। প্রতিটি স্তর বিচ্ছিন্ন, যা সিস্টেমের বাকি অংশ পরিবর্তন না করেই উপাদানগুলি প্রতিস্থাপন করতে দেয়।
WebView Cordova-তে একটি 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 ব্রিজের তুলনায় ধীর। ঘন ঘন নেটিভ API কল, যেমন রিয়েল-টাইমে ক্যামেরার সাথে কাজ করার সময়, এই পার্থক্য লক্ষণীয় হয়। অতিরিক্ত প্লাগইন ছাড়া 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 কোডের উপর ভিত্তি করে, এবং সমস্ত প্লাগইন এবং API অভিন্ন। পার্থক্য শুধুমাত্র 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন