اذهب إلى المحتوى

إطار العمل أباتشي كوردوفا Apache Cordova


أكاديميّة حسوب

ألقينا في المقال السابق نظرةً عامةً عن تطوير تطبيقات الهاتف، وتطرقنا إلى الطّرق الأربعة المتّبعة في تطوير تطبيقات الهاتف، بحيث فصّلنا الحديث عن طبيعة كل طريقة مع سرد ميّزاتها وعيوبها، ثم وجّهنا المقال نحو طبيعة التطبيق وأجزائه، وبدأنا في تخصيص الحديث عن التطبيقات الهجينة بصفتها حلا وسطًا لمن لا يمتلكون المهارات العالية لتطوير تطبيقات أصيلة بنسخة منفردة لكل نظام تشغيل، ولتوفير الكثير من الوقت والموارد المالية المخصصة لإنشاء تطبيقات أصيلة، وسنتحدث في هذا المقال عن إطار العمل أباتشي كوردوفا Apache Cordova الذي يمكّن المطوّرين من إنشاء تطبيقات هجينة للهاتف، مع ذكر طبيعة إطار العمل وميزاته وعيوبه.

لقد تطورت حاجة المؤسسات إلى وجود موقع إلكتروني يعرض أعمالها للجمهور، ومع سيطرة الأجهزة الذكية على سوق تقنية المعلومات، فقد احتاجت المؤسسات إلى المهارات والموارد اللازمة لإنشاء تطبيقات لجميع المنصات الشائعة للهواتف، وذلك للوصول إلى عملائها عبر هواتفهم في أي وقت، ومع صعوبة توفير بعض الموارد لإنشاء تطبيقات أصيلة، فقد توجهت المؤسسات نحو تطوير التطبيقات الهجينة للهواتف؛ وذلك لما توفره هذه الطريقة من إتاحة نفس التطبيق على منصات متعددة تتضمن بعض الميزات من خلالها تجاوز القيود المتعلقة بالوقت والموارد البشرية والمالية.

يطور المبرمجون التطبيقات الأصيلة للهواتف عن طريق إنشاء تطبيق مستقل لكل منصة (كما وضحنا في المقال السابق في وصفنا لطرق إنشاء تطبيقات الهواتف)، بينما تطوَّر التطبيقات الهجينة للهواتف باستخدام تقنيات الويب القياسية HTML5 وCSS3 وJavaScript، من خلال أحد أُطر العمل على النقيض من تطبيقات الويب التقدمية للهاتف والتي تُنشر من خلال متاجر التطبيقات وتوفر تجربة مستخدم أصلية. إذًا فاختيار طريقة التطبيقات الهجينة للهواتف توفر كثيرًا من الوقت اللازم لإنشاء أول نسخة من التطبيق على كل المنصات. سنخصّص هذا المقال للحديث عن إطار العمل كوردوفا الذي يُستخدم على نطاق واسع لتطوير التطبيقات الهجينة للهاتف، ويقدم العديد من الإمكانيات للمطوّرين للاستفادة القصوى من إمكانيات الهاتف، مستغلين معرفتهم بتقنيات الويب القياسية التي سنبدأ الحديث عنها مباشرةً باختصار قبل الانتقال إلى الحديث بالتفصيل عن إطار العمل أباتشي كوردوفا.

مفاهيم ومصطلحات للعمل بأباتشي كوردوفا

تتكون تقنيات الويب القياسية من ثلاث مكونات رئيسة هي HTML وCSS وJavaScript، حيث يفهم متصفح الإنترنت هذه التقنيات ويستطيع تفسيرها compile وعرضها render على صفحاته دون أي مساعدة من برامج خارجية على العكس من بعض لغات البرمجة التي تطلب وجود خادوم Server، مثل لغة PHP التي تستخدم خادومًا مثل Apache ليفسر تعليماتها البرمجية وينتجها بإحدى أشكال تقنيات الويب القياسية التي يفهمها المتصفح ويستطيع عرضها. سنذكر بعضًا من تفاصيل هذه التقنيات كما يلي:

لغة ترميز النص التشعبي HTML

لغة Hyper Text Markup Language واختصارها HTML، هي الطريقة الرئيسية التي تُنشأ بها أي صفحة في المواقع الإلكترونية على شبكة الإنترنت، ولا تُعَد لغةً برمجيةً بالمعنى المتعارف عليه للغات البرمجة، ولكنها طريقة لهيكلة ووصف محتويات صفحة الويب لمتصفحات الانترنت، حيث أن أي المتصفح يحتاج لمعرفة مكونات الصفحة من عناوين ونصوص وصور وروابط وغير ذلك من محتويات الصفحة، كي يتمكن من عرضها بالشكل الصحيح. لقد أُضيفتسلسلة مقالات تتحدث بالتفصيل عن HTML في أكاديمية حسوب، حيث يمكنك الاطلاع عليه والاستفادة منها.

وتتكون صفحة الويب من مجموعة من العناصر التي تُسمى وسوم Tags -جمع وسْم tag-، حيث كل وسْمٍ يمكن أن يحتوي على بعض الخصائص attributes والأصناف classes التي يمكن من خلالها تخصيص الوسم وإضافة نصوص التنسيق الخاصة CSS.

لغة التنسيق CSS

لغة التنسيق Cascading Style Sheet - CSS تختصّ بدورها في تصميم وتشكيل المظهر العام لصفحة الويب، مثل تحديد الخطوط والهوامش والمسافات لعناصر الموقع، وكذا تحديد لون الخلفيات وحجم العناصر، والحصول على الحركات في الموقع، والعديد من المزايا الأخرى. للتعرف على المزيد من وظائف وخصائص لغة التنسيق، يمكنك الاطلاع على سلسلة المقالات الخاصة بها على أكاديمية حسوب.

جافاسكريبت JavaScript

هي لغة برمجة عالية المستوى تُستخدم بالأصل في متصفحات الويب لإنشاء صفحات تفاعلية بين الموقع الإلكتروني والمستخدم، كما توجد بعض المكتبات المبنية على جافا سكربت التي تساعد على إنجاز وظائف أكثر بنصوص برمجية أقل مثل مكتبة jQuery وأُطر العمل Vue.js وAngular وReact. تتوفر مجموعة من مقالات على أكاديمية حسوب تمكّنك من الاطلاع على طبيعة لغة البرمجة هذه وخصائصها، وأطر العمل المبنية عليها.

إطار العمل framework

يُعَد إطار العمل أداةً تحتوي عدة مكونات تساعد المطوّر على وضع أساس التطبيق الذي يرغب في إنشائه، كما يوفر مجموعةً من النصوص والملفات البرمجية المكتوبة مسبقًا لجزء من التطبيق، ويتواجد هذا المفهوم في عدة لغات برمجية مثل لغة Java التي يتوفر لها إطار العمل Spring، ولغة PHP التي يتوفر لها عدة أطر عمل مثل CodeIgniter، وLaravel، وكذلك لغة JavaScript التي وضحنا لها في الفقرة السابقة بعض المكتبات وأطر العمل. تكمن أهمية أطر العمل في إمكانيتها لتوفير الوقت على المبرمج لأنه يجد أرضًا صلبةً لبدء تطبيقه من خلالها، مستغلًا الملفات والنصوص البرمجية المعدّة مسبقًا. هذه الميّزات تتطلب بالضرورة أن يكون المطور على علم جيّد بلغة البرمجة الأم، إضافةً إلى الخدمات والإمكانيات التي يوفر إطار العمل، مما يعني أن إطار العمل هو أداة مساعدة فقط، وعلى المبرمج تطويعها واستغلال إمكانياتها بما يخدم التطبيق الذي يعمل عليه.

بيئة التطوير المتكاملة Integrated Development Kit 

هي تطبيق يهدف إلى جعْل عملية كتابة النصوص البرمجية أمرًا ميسّرًا، ويمكن لهذه البيئة أن تجمع بين الأدوات المختلفة التي تساعد المطورين على كتابة التعليمات البرمجية وتحريرها، وبناء الملفات التنفيذية واختبار النتيجة وتصحيحها في حال وُجِد خلل بها، مما يوفّر كثيرًا من الوقت والجهد، وبالتالي زيادة إنتاجية المطوّرين.

عادة ما تتكون هذه البيئات البرمجية من أداة لكتابة وتحرير النصوص البرمجية، وتحتوي على مفسّر compiler يشكّل دور الوسيط بين المبرمج والحاسوب، وتحوي أيضًا إمكانية تتبّع الأخطاء ومساعدتك على إصلاحها، وكذا العديد من الأدوات الأخرى لإتمام تطوير البرمجيات. من الأمثلة على هذه البيئات، نجد برنامج NetBeans لتطوير البرمجيات بلغة جافا، وبرنامج Visual Studio Code لعدة لغات برمجة - حسب تخصيص الإضافات - مثل PHP وC#، وغيرها الكثير.

بهذا نكون قد ذكرنا باختصار نبذةً سريعةً عن تقنيات الويب القياسية؛ لأهميتها في تطوير التطبيقات الهجينة للهاتف، ويجب على القارئ الذي يرغب في استكمال هذه السلسلة عن تطوير تطبيقات الهاتف الهجينة أن يكون متمكّنًا من هذه التقنيات، إذ أنّنا لن نتطرق لشرحها في هذه السلسلة، وسندرج في نهاية هذا المقال مراجع لشرح هذه التقنيات.

عمل أباتشي كوردوفا Apache Cordova

بناءً على ما سبق ذكره، تستطيع المؤسسة تسريع تطوير التطبيقات الهجينة للهاتف من خلال الاعتماد على أطر العمل المتاحة في هذا المجال، وأبرزها أباتشي كوردوفا Apache Cordova. في العام 2011 أنشأت مجموعة Nitobi فكرة إطار العمل تحت مسمى PhoneGap، ثم استحوذت عليه Adobe System وأطلقت عليه اسم Cordova، والذي يُعَد إطار عمل Framework مفتوح المصدر ومتاح لتطوير التطبيقات الهجينة للهواتف. إنّ ما يميز كوردوفا هو احتواؤه الكثير من الإمكانيات المقدَّمة للمطورين، والتي تمكّنهم من إنشاء تطبيقات هاتف تعمل على كافة الأنظمة من خلال استخدام تقنيات الويب القياسية سالفة الذّكر، بحيث تُستخدم لغة الترميز لعرض محتوى التطبيق، ولغة التنسيق لإضافة اللمسات الجمالية على المحتوى المعروض، بينما تستخدم لغة JavaScript لتنفيذ الوظائف التي يقدّمها التطبيق، وتتعامل مع تفاعل المستخدم مع التطبيق.

001_cordova diagram.jpg

إذًا، فإطار العمل كوردوفا يمكّن المطورين من إنشاء تطبيقات هجينة متطورة للهاتف، وذلك باستخدام العديد من مكتبات JavaScript، ومن المزايا المذهلة التي يقدمها كوردوفا أنه يوفّر للمطور آلية لتجهيز التطبيقات الهجينة للهاتف لكل منصات الهواتف، مما يعني أنه يمكن تثبيت تطبيق كوردوفا على الهواتف تمامًا مثل تطبيقات الهاتف الأصيلة، حتى لو كان مبنيًّا باستخدام تقنيات الويب.

في ميّزة إضافية تشجّعك على استخدام كوردوفا لتطوير التطبيقات الهجينة للهاتف، نجد توفير إضافات برمجية متنوعة تسمح للتطبيق بالوصول إلى إمكانيات الهاتف مثل الكاميرا ومحدد المواقع وحالة البطارية، كذا الوصول للملفات والوسائط المتعددة، وغيرها الكثير سنتحدث عنها بالتفصيل في المقالات القادمة. لذا يتوجب على المطوّر فهم طبيعة عمل إطار العمل كوردوفا والاطلاع على الميزات التي يقدمها ليساعده في تطوير تطبيقاته.

معالم إطار العمل أباتشي كوردوفا

يدعم نظام تشغيل الهاتف التطبيقات التي تُثبّت عليه، مقدمًا لها العديد من الخدمات التي من بينها المجسات أو المستشعرات، والتعاطي مع المدخلات لتمريرها إلى التطبيق، وفي حال بناء تطبيق الهاتف من خلال كوردوفا، فإن التطبيق سيتكون من جزئيتين رئيستين - كما هو موضح في الشكل أدناه - أولها تطبيق الويب (الذي يُبنى باستخدام تقنيات الويب القياسية) الذي يتعامل مباشرةًً مع محرك عارض الويب WebView من خلال واجهة برمجيات كوردوفا API، وواجهة برمجيات HTML مرفق معه ملف الإعدادات العامة التي تتحكم في العديد من سلوكيات تطبيقات كوردوفا، وهنا يأتي دور محرك عارض الويب في التواصل مع الجزء الثاني من التطبيق وهو إضافات كوردوفا المتنوعة أو المخصصة، تُعدّ الكاميرا والوسائط وجهات الاتصال ومحدد الموقع الجغرافي وغيرها الكثير من الإضافات الجاهزة في كوردوفا، بينما يمكنه التواصل من الإضافات المخصصة التي يطوّرها المبرمجون لدعم وظائف التطبيق الذي يعملون عليه؛ أما بخصوص نظام التشغيل، فإنه يتواصل مع محرر عارض الويب من جهة، ومع الإضافات مباشرةً لتنفيذ وظائف التطبيق. يوضح الشكل أدناه بالتفصيل تركيب الشكل العام لتطبيق مبنيّ من خلال كوردوفا، وآلية التواصل بين أجزائه.

002_Cordova app arch..JPG

نتطرق في النقاط القادمة إلى الجوانب المهمة في كوردوفا، والتي يجب على المطوّر معرفتها كي تساعده في تطوير التطبيقات

قاعدة الملفات البرمجية الموحدة

تدعم كوردوفا في الوقت الحالي الأنظمة الأساسية المشهورة مثل iOS وAndroid وبالتالي، يمكن للمطور استخدام إطار العمل كوردوفا لإنشاء تطبيق هاتف موحّد موجّه للأنظمة الأساسية للهاتف من خلال كتابة التطبيق بتقنيات الويب القياسية التي تحدثنا بالتفصيل أعلاه.

إذًا فكوردوفا تساعد المطور في برمجة أو تطوير التطبيق لمرة واحدة، ثمّ تُنشئ حزمةً برمجيةً قابلةً للتثبيت لكل نظام من أنظمة التشغيل بطريقة مستقلة، هذه الحزمة -عند تثبيتها على الهاتف- تقدّم للمستخدِم تجربة استخدام التطبيقات الأصيلة من خلال الوصول إلى إمكانيات الهاتف مثل الكاميرا ونظام تحديد المواقع GPS والبلوتوث وجهات الاتصال.

عارض الويب WebView

تُشغّل واجهات التطبيقات الهجينة في الحاوية التي يوفرّها نظام التشغيل، وتُعرض هذه الحاوية في شاشة الهاتف، وبما أن أنظمة التشغيل تستخدم نفس عارض الويب WebView، فإن الحاوية تتغير تبعًا لخصائص نظام التشغيل، بينما يتبقى عرض صفحات الويب دون تغيير. وبناءً على هذه الخاصية المتوفرة في أنظمة التشغيل، فقد صُمّمت واجهة المستخدم في كوردوفا لتبدو تقنيًا مثل عرض الويب WebView، كما تقدّم كوردوفا من خلال مكتباتها وإضافاتها الرائعة تجربة مستخدم أصيلة، من خلال تفاعلها مع مكونات نظام تشغيل الهاتف، وهو ما يعطي ميّزةً مذهلةً للمطورين بإثراء تجربة المستخدم للتطبيق بطريقة مستقلة عبر كل نظام تشغيل بدون تغيير الملفات البرمجية للتطبيق طبعًا. تذكر دومًا المزية الرئيسة للتطبيقات الهجينة، وهي تطبيق واحد لكل أنظمة التشغيل.

معمارية/بنية الإضافات

عند استخدام إطار العمل كوردوفا، يستطيع المطورون ربط نصوص برمجية مكتوبة بلغة جافا سكربت للنصوص البرمجية التي تعمل في الواجهة البرمجية الخلفية Back-End من خلال الإضافات (المكونات الإضافية) الاختيارية القوية التي توفرها كوردوفا، إذ توفّر كوردوفا للمطورين عددًا كبيرًا من الإضافات الجاهزة حسب الوظيفة التي يرغب المطوّر بإضافتها للتطبيق، والمتوافقة مع نظام التشغيل الذي يستهدفه التطبيق. يستطيع المطوّر تمكين التطبيق من الوصول إلى إمكانيات الهاتف مستخدمًا إحدى الإضافات التي توفرها كوردوفا، على سبيل المثال يستطيع المطوّر استخدام واجهة برمجية التطبيق Application Programming Interface - API للاستفادة من خصائص الحماية من النظام الأساسي، وفي نفس الوقت، إذا لم يجد المطوّر الإضافة البرمجية التي توفر طلبه بشكل دقيق، فأن كوردوفا -من خلال API الخاصة بها- تمهّد الطريق للمطوّر لبرمجة الإضافات الخاصة به وفقًا لاحتياجاته الدقيقة.

واجهة سطر الأوامر Command Line Interface

تساعد واجهة سطر الأوامر الخاصة بكوردوفا المطورين على تسريع مراحل تطوير تطبيقات الهواتف وإمكانية اختبارها وتجهيزها لتعمل على الأنظمة، من خلال كتابة بعض الأوامر المعروفة، حيث يستطيع المطورون استخدام CLI لتسريع المهام الروتينية لتطوير تطبيقات الهاتف مثل إنشاء مشروع جديد وتجهيز التطبيق للعمل على الأنظمة المختلفة، كما يمكنهم أيضًا تنفيذ أوامر لاختبار التطبيق الهجين للهاتف باستخدام أجهزة حقيقية أو محاكيات وهمية Simulators تُضاف مسبقًا في بيئة العمل. يجب على المطوّر تجهيز بيئة العمل من خلال تثبيت حِزم أدوات تطوير البرمجيات Software Development Kit - SDK لكل منصة هاتف مستهدَفة قبل استخدام أدوات CLI، وسنتطرق في [المقال القادم](راب المقال) إلى تجهيز بيئة العمل، ونتعرف على الأدوات المطلوبة.

مجموعة متنوعة من أدوات التطوير

يتوافق إطار العمل كوردوفا مع العديد من أطر تطوير تطبيقات الهواتف وبيئات التطوير المتكاملة IDEs، كذا والأدوات المستخدمة على نطاق واسع. وبالتالي يستطيع المطورون توسيع إطار عمل كوردوفا بسهولة، وذلك من خلال الاستفادة من الأدوات شائعة الاستخدام مثل دمج أُطر عمل أخرى لبيئة التطوير مثل إطار العمل أيونيك Ionic Framework - الذي يستخدم لتطوير تطبيقات هجينة -، وبيئة التطوير التي تتوافق مع طبيعة التطبيقات التي نطوّرها مثل Android Studio وVisual Studio Code من MicroSoft، والذي تَطوّر كثيرًا في الآونة الأخيرة ليدعم مجموعةً من الأدوات لكوردوفا من بينها مُثبِّت سهل الاستخدام، ومحرر النصوص البرمجية مع دعم لتنقيح الأخطاء، وتخصيص تجربة التطبيق، بالإضافة إلى آليات لاختبار التطبيق؛ أما بخصوص برمجيات أدوات التطوير SDK فإنها توفر للمطورين خيارات متعددة لتطوير التطبيقات الهجينة للهواتف مثل دعم أيونيك Ionic لتحسين مظهر وأدوات تفاعل المستخدم مع التطبيق look and feel، ورفع جودة تجربة المستخدم.

نقاط ضعف التطبيق الهجين لكوردوفا

مثل جميع أدوات التطوير الأخرى للتطبيقات الهجينة للهواتف، تحتوي كوردوفا على بعض العيوب، نذكر منها ما يلي:

  • بطء التطبيق موازنةً بالتطبيقات الأصيلة: إن الاهتمام بتوافق التطبيق الهجين عبر جميع أنظمة التشغيل يجعل تطبيقات الهاتف المنشأة بكوردوفا تعمل أبطأ من التطبيقات الأصيلة.
  • عدم غزارة الإضافات: غالبًا ما تواجه المطورين بعض الصعوبة في العثور على إضافات تتوافق بدقة مع الوظائف المطلوب تنفيذها في التطبيق، مما يضطرهم للجوء إلى تصميم وبرمجة إضافات مخصصة لتتوافق مع احتياجات التطبيقات التي يطوّرونها.
  • المزيد من تخصيص التطبيق: يضطر المطورون للجوء إلى تخصيص التطبيق ليتوافق أكثر مع أنظمة التشغيل المختلفة -تحديدًا iOS وأندرويد-، بتخصيص يتوافق مع طبيعة نظام التشغيل نفسه، وهذه من العيوب التي يعمل مطورو إطار العمل كوردوفا على تطويرها ومعالجة النقص فيها لتكتمل تجربة بناء تطبيقات هجينة تعمل بجودة عالية على جميع أنظمة التشغيل، وقد نجد لها بعض الحلول في الإصدارات القادمة من كوردوفا.

الخلاصة

إجمالًا لما سبق، فإن إطار العمل كوردوفا -عمومًا- ساعد المؤسسات على تقليل تكلفة ووقت تطوير التطبيقات الهجينة للهواتف كثيرًا، لقد وضحنا في هذا المقال بعض المصطلحات الخاصة بتقنيات الويب القياسية التي يجب على المهتمّ بتطوير التطبيقات الهجينة الاهتمام بها وإتقانها، ثم بدأنا في الحديث عن إطار العمل أباتشي كوردوفا الذي يُعَد رائدًا في مجال تطوير التطبيقات الهجينة بناءً على المهارات التي يمتلكها مطور تطبيقات الويب لتسريع آليات بناء التطبيقات، كما وضحنا معمارية تطبيق الهاتف المبنيّ باستخدام كوردوفا كي يكون المطوّر على علم بتركيب وهيكلية التطبيق. وختمنا المقال ببعض العيوب في كوردوفا، والتي تضيف بعض الاستفسارات في عقل المطوّر الذي يجب عليه دراسة وفهم إمكانيات كوردوفا ونقاط الضعف فيها ووضع ذلك في الحسبان وموازنتها وفقًا للاحتياجات الدقيقة لكل تطبيق. سنتحدث في المقال القادم عن تجهيز بيئة العمل الخاصة بإطار العمل كوردوفا قبل إنشاء أول تطبيق هجين.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...