تُعدّ Cordova منصة مفتوحة المصدر تتيح للمطورين بناء تطبيقات الأجهزة المحمولة باستخدام تقنيات الويب مثل HTML و CSS و JavaScript. وباستخدام Cordova، يمكن إنشاء تطبيقات تعمل عبر أنظمة تشغيل مختلفة للأجهزة المحمولة، وأساسًا iOS و Android، دون الحاجة إلى كتابة شيفرة منفصلة لكل منصة. وهذا يجعل Cordova خيارًا شائعًا لدى المطورين الراغبين في تعظيم انتشارهم وكفاءتهم بإعادة استخدام مهاراتهم الحالية في تطوير الويب.
تعمل Cordova بتغليف تطبيق الويب في حاوية أصلية توفر الوصول إلى ميزات الجهاز مثل الكاميرا و GPS ونظام الملفات عبر مجموعة من واجهات JavaScript API التي توفرها الإضافات. وهذا يتيح إنشاء تطبيقات غنية وتفاعلية تستطيع مضاهاة التطبيقات الأصلية في الوظائف لأغراض كثيرة، وإن كان الأداء عادةً أقل في التطبيقات كثيفة الرسوميات.
تُعدّ Apache Cordova منصة قوية مفتوحة المصدر تتيح للمطورين بناء تطبيقات الأجهزة المحمولة باستخدام تقنيات الويب مثل HTML و CSS و JavaScript. وتعمل Cordova كجسر بين تطبيقات الويب وميزات الأجهزة المحمولة الأصلية، إذ توفر الوصول إلى عتاد الجهاز مثل الكاميرا و GPS ونظام الملفات عبر مجموعة من الإضافات. وهذا يتيح تطوير تطبيقات تعمل على عدة أنظمة تشغيل للأجهزة المحمولة، مثل iOS و Android، دون الحاجة إلى كتابة شيفرة منفصلة لكل منصة. وتناسب Cordova بشكل خاص المطورين الراغبين في استخدام مهاراتهم الحالية في تطوير الويب لإنشاء تطبيقات الأجهزة المحمولة، وتقدم حلًا مرنًا وفعالًا من حيث التكلفة لتطوير التطبيقات ونشرها بسرعة.
More about Cordova
تُعدّ Apache Cordova منصة قوية مفتوحة المصدر تتيح للمطورين بناء تطبيقات الأجهزة المحمولة باستخدام تقنيات الويب مثل HTML و CSS و JavaScript. وتعمل Cordova كجسر بين تطبيقات الويب والميزات الأصلية للأجهزة المحمولة، ما يتيح تطوير تطبيقات تعمل على عدة منصات، وهي اليوم أساسًا iOS و Android، دون الحاجة إلى كتابة شيفرة منفصلة لكل منصة. وقد أُوقف دعم Windows Phone والمنصات الأقدم الأخرى.
من الناحية التقنية، تعمل Cordova بتحزيم تطبيقات الويب في حاوية أصلية توفر الوصول إلى واجهات API الأصلية للجهاز. ويتحقق ذلك عبر مجموعة من الإضافات التي تتيح للمطورين التفاعل مع عتاد الجهاز، مثل الكاميرا و GPS ومقياس التسارع، ومع ميزات برمجية مثل الإشعارات الفورية والتخزين دون اتصال. ويتيح هذا النهج استخدام كثير من قدرات الجهاز مع الاحتفاظ بمرونة تطوير الويب.
تُبنى Cordova حول ثلاثة مفاهيم أساسية، يدعم كل منها احتياجات تطوير مختلفة:
WebView: هنا يعمل التطبيق كتطبيق ويب داخل مكون WebView أصلي. وهذا يتيح استخدام تقنيات الويب الحالية لتطوير واجهة مستخدم التطبيق ومنطقه، ما يقلل وقت التطوير وتعقيد صيانة عدة قواعد شيفرة.
الإضافات: تتيح بنية الإضافات في Cordova إضافة ميزات أصلية إلى تطبيق الويب. ويستطيع المطورون إما استخدام إضافات موجودة من مكتبة Cordova الواسعة أو تطوير إضافاتهم المخصصة لتلبية احتياجات محددة.
النهج الهجين: يجمع هذا النهج بين تطوير الويب والتطوير الأصلي. إذ يستطيع المطورون بناء أجزاء من التطبيق كمكونات أصلية لتحقيق أداء أو تجربة مستخدم أفضل، بينما يبقى باقي التطبيق في WebView.
ومن أكبر مزايا Cordova قدرتها على تبسيط عملية تطوير التطبيقات متعددة المنصات. فباستخدام قاعدة شيفرة واحدة، يستطيع المطورون توزيع تطبيقاتهم بسرعة على عدة منصات، ما يوفر الوقت والموارد. وإضافة إلى ذلك، تدعم Cordova نطاقًا واسعًا من الإضافات التي تتيح إضافة ميزات متقدمة دون الحاجة إلى العمل مباشرة بالشيفرة الأصلية.
كما تعني طبيعة Cordova مفتوحة المصدر أن مؤسسة Apache للبرمجيات ومجتمعًا من المطورين يتولون صيانتها. غير أن المجتمع أصغر من ذي قبل بعد أن أنهت Adobe منصة PhoneGap في عام 2020، وتختار كثير من المشاريع الجديدة Capacitor بدلًا منها. ولا يزال بإمكان المطورين المساهمة بتحسيناتهم وإضافاتهم الخاصة، ما يعزز التعاون.
عمليًا، أتاحت Cordova لكثير من مطوري الويب استخدام مهاراتهم الحالية لبناء تطبيقات أجهزة محمولة مع الوصول إلى الميزات الأصلية. وقد استخدمتها الشركات الناشئة الصغيرة والشركات الكبيرة على حد سواء لإنشاء كل شيء من الأدوات البسيطة إلى التطبيقات المعقدة الغنية بالميزات التي تستطيع الوصول إلى جمهور واسع عبر أجهزة ومنصات مختلفة.
خلاصة القول، تُعدّ Apache Cordova منصة متعددة الاستخدامات وفعالة تجمع بين البساطة والمرونة والقوة في حل يجعل تطوير تطبيقات الأجهزة المحمولة أكثر إتاحة. وتجعلها قدرتها على الجمع بين تقنيات الويب والميزات الأصلية أداة مفيدة للمطورين الراغبين في تقديم تطبيقات لجمهور واسع، خاصة عند صيانة المشاريع الموجودة.
Frequently asked questions about Cordova
ما هي Apache Cordova، وبمَ تختلف عن تطوير التطبيقات الأصلية؟
تُعدّ Apache Cordova منصة مفتوحة المصدر تتيح للمطورين بناء تطبيقات الأجهزة المحمولة باستخدام تقنيات الويب مثل HTML و CSS و JavaScript. وتعمل Cordova بتغليف تطبيقات الويب في حاوية أصلية، ما يتيح لها العمل على أنظمة تشغيل مختلفة للأجهزة المحمولة مثل iOS و Android؛ أما المنصات الأقدم مثل Windows Phone فلم تعد مدعومة. وهذا يتيح للمطورين كتابة تطبيقهم مرة واحدة وتوزيعه عبر عدة منصات دون إعادة كتابة الشيفرة لكل منها.
وعلى خلاف تطوير التطبيقات الأصلية، الذي تُكتب فيه التطبيقات خصيصًا لمنصة ما باستخدام لغات المنصة وأدواتها (على سبيل المثال Swift لنظام iOS أو Kotlin لنظام Android)، تقدم Cordova نهجًا أكثر مرونة قائمًا على معايير الويب. وقد يقلل ذلك وقت التطوير وتكاليفه، إذ يلغي الحاجة إلى صيانة قواعد شيفرة منفصلة لكل منصة. غير أن تطبيقات Cordova قد تكون لها قيود في الأداء والوصول إلى الميزات الأصلية المتقدمة مقارنة بالتطبيقات المطورة خصيصًا لمنصة ما.
ومقارنة بتطوير التطبيقات الأصلية، الذي تستطيع فيه التطبيقات الاستفادة الكاملة من الميزات والتحسينات الخاصة بالمنصة، تقدم Cordova حلًا أكثر عمومية قد يكفي لكثير من التطبيقات لكنه قد لا يلبي متطلبات التطبيقات التي تتطلب أداءً عاليًا أو تكاملًا عميقًا مع ميزات المنصة. لذلك تُعدّ Cordova خيارًا جيدًا للتطبيقات التي تحتاج إلى الوصول إلى جمهور واسع بموارد محدودة، لكنها قد تكون أقل ملاءمة للتطبيقات التي تتطلب أعلى مستوى من الأداء والميزات الخاصة بالمنصة.
كيف يمكن لإضافات Cordova تحسين وظائف تطبيق للأجهزة المحمولة؟
تستطيع إضافات Cordova تحسين وظائف تطبيق الأجهزة المحمولة بشكل كبير بتوفير الوصول إلى الميزات الأصلية للجهاز، التي لن تكون متاحة بخلاف ذلك عبر تقنيات الويب القياسية. وتعمل هذه الإضافات كجسر بين شيفرة JavaScript ونظام تشغيل الجهاز، ما يتيح دمج ميزات مثل الكاميرا و GPS ومقياس التسارع مباشرة في التطبيق. ومن الأمثلة على ذلك إضافة InAppBrowser، التي تفتح صفحات الويب في متصفح داخل التطبيق.
وإضافة إلى ذلك، تستطيع إضافات Cordova توسيع قدرات التطبيق دون أن تتطلب مهارات واسعة في التطوير الأصلي: إذ يستطيع المطورون بسهولة إضافة الإضافات وتهيئتها من مكتبة كبيرة من الخيارات مفتوحة المصدر، ما يوفر الوقت والموارد. غير أنه ينبغي التحقق من أن الإضافات تخضع لصيانة نشطة، إذ لم تعد كثير من الإضافات الأقدم تُحدَّث. وهذا يتيح للمطورين التركيز على تحسين تجربة المستخدم والميزات الأساسية للتطبيق مع الاستفادة في الوقت نفسه من ميزات الجهاز المتقدمة.
ومقارنة بتطوير التطبيقات الأصلية من الصفر، الذي تتطلب فيه كل منصة قاعدة شيفرة خاصة بها، تقدم Cordova حلًا أكثر كفاءة وفعالية من حيث التكلفة بإتاحتها تطوير تطبيقات متعددة المنصات من قاعدة شيفرة واحدة. وهذا يتيح للمطورين الوصول إلى جمهور أوسع بسرعة أكبر وبموارد أقل مع الحفاظ على مستوى جيد من الوظائف والأداء.
ما الخطوات المتضمنة في إنشاء مشروع Cordova جديد؟
يُعدّ إنشاء مشروع Cordova جديد عملية تتضمن عدة خطوات رئيسية تتيح بناء التطبيق وتوزيعه بكفاءة عبر منصات مختلفة. وتُعدّ Cordova أداة شائعة لتطوير تطبيقات الأجهزة المحمولة تتيح استخدام تقنيات الويب مثل HTML و CSS و JavaScript لإنشاء تطبيقات لنظامي iOS و Android معًا.
أولًا، يجب تثبيت المتطلبات المسبقة اللازمة على الحاسوب. وتشمل هذه Node.js، وهي بيئة تشغيل JavaScript، و npm (مدير حزم Node)، الذي يُستخدم لتثبيت Cordova. ويمكن تثبيت Cordova على مستوى النظام بتشغيل الأمر npm install -g cordova في الطرفية. ويتطلب البناء لنظام iOS أيضًا جهاز Mac مع Xcode، ويتطلب البناء لنظام Android مجموعة Android SDK.
بعد تثبيت Cordova، يمكن إنشاء مشروع جديد بالأمر cordova create متبوعًا بمجلد المشروع ومعرّف حزمة فريد واسم التطبيق. على سبيل المثال: cordova create myApp com.example.myapp MyApp. ويولّد ذلك بنية مشروع أساسية بالملفات والمجلدات اللازمة.
بعد إنشاء المشروع، تُضاف المنصات المستهدفة. ويتم ذلك بالانتقال إلى مجلد المشروع واستخدام الأمر cordova platform add متبوعًا باسم المنصة، مثل ios أو android. على سبيل المثال: cordova platform add android.
بعد إضافة المنصات، يمكن بدء التطوير بتحرير ملفات HTML و CSS و JavaScript في المجلد www. كما تتيح Cordova إضافة إضافات توسّع وظائف التطبيق، مثل الوصول إلى كاميرا الجهاز أو GPS. ويتم ذلك بالأمر cordova plugin add متبوعًا باسم الإضافة.
وأخيرًا، عندما يصبح التطبيق جاهزًا للاختبار، يمكن بناؤه بالأمر cordova build. ويولّد ذلك الملفات اللازمة لتشغيل التطبيق على المنصات المحددة. ثم يمكن استخدام محاكٍ أو جهاز فعلي لاختبار التطبيق والتحقق من أنه يعمل كما هو متوقع.
ومقارنة بأساليب التطوير الأصلية، التي تتطلب قواعد شيفرة منفصلة لكل منصة، تقدم Cordova نهجًا أكثر كفاءة وانسيابية يوفر الوقت والموارد. وهذا يجعلها خيارًا عمليًا للمطورين الراغبين في الوصول إلى جمهور واسع بجهد محدود.
كيف تتعامل Cordova مع المنصات المختلفة مثل iOS و Android؟
تتعامل Cordova مع المنصات المختلفة مثل iOS و Android بتوفير واجهة API موحدة تجرّد الفروق الخاصة بالمنصات. وعند بناء تطبيق باستخدام Cordova، يُحزَّم كتطبيق أصلي، ما يتيح توزيعه عبر متاجر التطبيقات الخاصة بكل منصة.
وللتعامل مع الميزات الخاصة بالمنصة، تستخدم Cordova بنية إضافات. إذ توفر الإضافات الوصول إلى ميزات الجهاز الأصلية مثل الكاميرا و GPS ونظام الملفات، التي لا تتاح عبر واجهات الويب API القياسية. ويستطيع المطورون إما استخدام إضافات موجودة أو تطوير إضافاتهم الخاصة لتوسيع وظائف تطبيقاتهم.
ومقارنة بتطوير تطبيقات أصلية منفصلة لكل منصة، تقدم Cordova عملية تطوير أكثر كفاءة. فبكتابة الشيفرة مرة واحدة واستخدام Cordova للتعامل مع الفروق الخاصة بالمنصات، يستطيع المطورون توفير الوقت والموارد. وهذا يجعل Cordova خيارًا شائعًا للمطورين الراغبين في الوصول إلى جمهور واسع مع إبقاء الوظائف وتجربة المستخدم عند مستوى مقبول.
ما الاعتبارات الأمنية التي ينبغي مراعاتها عند تطوير التطبيقات باستخدام Cordova؟
عند تطوير التطبيقات باستخدام Cordova، هناك عدة اعتبارات أمنية ينبغي مراعاتها لحماية بيانات المستخدمين وسلامة التطبيق معًا. إذ تعتمد تطبيقات Cordova على تقنيات الويب مثل HTML و CSS و JavaScript، ما يجعلها عرضة لأنواع معينة من الهجمات إذا لم تُؤمَّن بشكل صحيح.
ومن الاعتبارات الأمنية الأساسية الحماية من هجمات البرمجة النصية عبر المواقع (XSS). ويمكن تحقيق ذلك بالتحقق الدقيق من جميع مدخلات المستخدم وتنقيتها، واستخدام سياسة أمان المحتوى (CSP) لتقييد المصادر التي يمكن تحميل البرامج النصية منها. وتستطيع سياسة CSP المساعدة على منع تشغيل الشيفرة الخبيثة في سياق التطبيق، وهو أمر مهم بشكل خاص لأن البرامج النصية المحقونة في تطبيق Cordova تستطيع استدعاء الإضافات الأصلية.
وإضافة إلى ذلك، يجب التعامل مع نقل البيانات بأمان باستخدام HTTPS لجميع الاتصالات بين التطبيق والخوادم. وهذا يساعد على ضمان عدم إمكانية اعتراض البيانات أو التلاعب بها أثناء النقل. وتقدم Cordova إضافات تستطيع المساعدة على تنفيذ اتصال آمن، ويُعدّ إبقاء هذه الإضافات وغيرها محدّثة أمرًا أساسيًا للحماية من الثغرات المعروفة. كما ينبغي استخدام إعدادات قائمة السماح لتقييد النطاقات التي يستطيع التطبيق الوصول إليها.
ومن الاعتبارات المهمة الأخرى قصر أذونات التطبيق على ما هو ضروري. إذ تستطيع تطبيقات Cordova طلب مجموعة من الأذونات، لكن ينبغي تقليلها إلى الحد الأدنى للحد من خطر إساءة الاستخدام. وينبغي إبلاغ المستخدمين بوضوح بسبب الحاجة إلى كل إذن، ما قد يزيد الثقة بالتطبيق.
ومقارنة بالتطبيقات الأصلية، تتطلب تطبيقات Cordova جهدًا إضافيًا لضمان ألا تشكل المكونات القائمة على الويب خطرًا أمنيًا. وباتباع أفضل الممارسات في تطوير الويب واستخدام ميزات الأمان في Cordova، يستطيع المطورون إنشاء تطبيقات آمنة وموثوقة.
كيف يمكن تحسين أداء تطبيق مطور باستخدام Cordova؟
يمكن تحسين أداء تطبيق مطور باستخدام Cordova بالتركيز على عدة مجالات رئيسية تساعد التطبيق على العمل بكفاءة وسرعة استجابة عبر أجهزة مختلفة. ومن الطرق الفعالة تقليل استخدام الإضافات وعدم تضمين إلا ما هو ضروري تمامًا لوظائف التطبيق. وهذا يقلل الحجم الإجمالي للتطبيق وقد يحسّن أوقات بدء التشغيل.
وإضافة إلى ذلك، يمكن تحسين أداء التطبيق بأساليب التحميل الكسول، التي لا يُحمَّل فيها المحتوى والموارد إلا عند الحاجة إليها. وقد يقلل ذلك وقت التحميل الأولي ويحسّن تجربة المستخدم بإبقاء التطبيق سريع الاستجابة، حتى عندما تكون هناك بيانات كثيرة للتعامل معها.
ومن العوامل المهمة الأخرى تحسين شيفرة JavaScript في التطبيق بتصغيرها وتجميعها. ويمكن القيام بذلك بأدوات مثل Terser، خليفة UglifyJS، التي تقلل أحجام الملفات وتختصر الوقت اللازم لتحميل الشيفرة وتحليلها. كما يمكن استخدام البرمجة غير المتزامنة لتجنب حجب الخيط الرئيسي، ما يبقي واجهة المستخدم سلسة وسريعة الاستجابة.
ومقارنة بالتطبيقات الأصلية، التي تعرض واجهتها بمكونات واجهة المستخدم الخاصة بالمنصة، قد تميل تطبيقات Cordova إلى أن تكون أبطأ إذا لم تُحسَّن بشكل صحيح. غير أنه بالتركيز على أساليب التحسين هذه، يمكن تحقيق أداء قريب من أداء التطبيقات الأصلية لأنواع كثيرة من التطبيقات، ما يمنح المستخدمين تجربة مُرضية دون المساس بالوظائف.
Cordova for dummies
Cordova تقنية ذكية تتيح صنع تطبيقات تعمل على أنواع مختلفة من الهواتف دون بنائها من الصفر لكل نوع من الأجهزة. فكّروا فيها كنوع من اللغة العالمية للتطبيقات. وباستخدام Cordova، يستطيع تطبيق مبني بتقنيات الويب العمل على أجهزة iPhone وهواتف Android معًا دون تغييرات كثيرة. وهذا يعني أن التطبيق يستطيع الوصول إلى عدد أكبر من الناس، لأنه يمكن استخدامه على أجهزة كثيرة مختلفة. كما تسهّل Cordova استخدام ميزات الهاتف، مثل الكاميرا أو GPS، في التطبيق، بحيث يمكن صنع تطبيقات مثيرة ومفيدة تستطيع استخدام كثير مما يستطيع الهاتف فعله.