مقدمة:
تطبيقات الأجهزة المحمولة ومنصات الأجهزة
هناك منصتان مهيمنتان في سوق الهواتف الذكية الحديثة. الأولى هي منصة iOS من شركة Apple Inc. وهي نظام التشغيل الذي يُشغّل هواتف iPhone الذكية الشهيرة من Apple. أما الثانية فهي Android من Google. لا يقتصر استخدام نظام Android على أجهزة Google فحسب، بل يُستخدم أيضًا من قِبل العديد من مُصنّعي الأجهزة الأصلية (OEMs) الآخرين لبناء هواتفهم الذكية وغيرها من الأجهزة الذكية.
على الرغم من وجود بعض أوجه التشابه بين هاتين المنصتين عند بناء التطبيقات، إلا أن تطوير تطبيقات iOS مقابل Android يتطلب استخدام مجموعات تطوير برمجيات (SDKs) وسلسلة أدوات تطوير مختلفة. فبينما تستخدم Apple نظام iOS حصريًا لأجهزتها، تتيح Google نظام Android للشركات الأخرى شريطة أن تستوفي متطلبات محددة، مثل تضمين تطبيقات Google معينة على الأجهزة التي تُصدرها. ويمكن للمطورين بناء تطبيقات لمئات الملايين من الأجهزة من خلال استهداف كلا المنصتين.
بدائل لبناء تطبيقات الهاتف المحمول
هناك أربعة أساليب تطوير رئيسية عند بناء تطبيقات الهاتف المحمول
- تطبيقات الهاتف المحمول الأصلية
- تطبيقات الجوال الأصلية متعددة المنصات
- تطبيقات الهاتف المحمول الهجينة
- تطبيقات الويب التقدمية
لكلٍّ من هذه الأساليب لتطوير تطبيقات الهاتف المحمول مزاياه وعيوبه. عند اختيار أسلوب التطوير المناسب لمشاريعهم، يُراعي المطورون تجربة المستخدم المطلوبة، وموارد الحوسبة والميزات الأصلية التي يتطلبها التطبيق، وميزانية التطوير، والأهداف الزمنية، والموارد المتاحة لصيانة التطبيق.
التطبيقات الأصلية Native Applications
تطبيقات الهاتف المحمول الأصلية هي تلك التي تتم كتابتها بلغة البرمجة والأطر التي يوفرها مالك المنصة ويتم تشغيلها مباشرة على نظام التشغيل الخاص بالجهاز مثل iOS و Android .
تطبيقات متعددة المنصات Cross-Platform Applications
يمكن كتابة تطبيقات الهاتف المحمول الأصلية متعددة الأنظمة الأساسية بمجموعة متنوعة من لغات البرمجة والأطر المختلفة، ولكن يتم تجميعها في تطبيق أصلي يعمل مباشرة على نظام التشغيل الخاص بالجهاز.
تطبيقات الويب الهجينة Hybrid-Web Applications
تُبنى تطبيقات الجوال الهجينة باستخدام تقنيات الويب القياسية – مثل JavaScript وCSS وHTML5 – وتُدمج كحزم تثبيت تطبيقات. على عكس التطبيقات الأصلية، تعمل التطبيقات الهجينة على “حاوية ويب” توفر وقت تشغيل للمتصفح وجسرًا لواجهات برمجة تطبيقات الأجهزة الأصلية عبر Apache Cordova.
تطبيقات الويب التقدمية Progressive Web Applications
تُقدم تطبيقات الويب التقدمية (PWAs) نهجًا بديلًا لتطوير تطبيقات الجوال التقليدية، حيث تتخطى عملية توصيل التطبيقات وتثبيتها من متجر التطبيقات. وهي تطبيقات ويب تستخدم مجموعة من إمكانيات المتصفح – مثل العمل دون اتصال بالإنترنت، وتشغيل عمليات في الخلفية، وإضافة رابط إلى الشاشة الرئيسية للجهاز – لتوفير تجربة مستخدم تُشبه التطبيقات.
الايجابيات | |||
+ أفضل أداء وقت التشغيل | + قاعدة كود واحدة لمنصات متعددة | + قاعدة بيانات مشتركة بين تطبيقات الويب والتطبيقات المحمولة | + نفس التطبيق متاح لكل من الويب والجوال |
+ الوصول المباشر إلى واجهات برمجة التطبيقات الخاصة بالجهاز | + سهولة بناء التطبيق الخاص بك وصيانته | + استخدام مجموعة مهارات تطوير الويب لبناء تطبيقات الهاتف المحمول | + لا يتطلب التثبيت، يمكن الوصول إليه من خلال عنوان URL |
سلبيات | |||
– تكاليف أعلى عند بناء التطبيق وصيانته | – يعتمد على الجسور والمكتبات لميزات الجهاز الأصلية | – أداء أقل مقارنة بالتطبيقات الأصلية | – دعم محدود لميزات الجهاز الأصلية |
– قواعد بيانات متعددة لكل منصة | – قيود الأداء بسبب الجسر | – دعم محدود لميزات الجهاز الأصلية | – تعتمد قدرات التطبيق على المتصفح المستخدم |
مقارنة التطبيقات الأصلية والتطبيقات الهجينة
على أعلى مستوى، هناك أربع طرق رئيسية تختلف بها التطبيقات الأصلية عن التطبيقات الهجينة كما هو موضح في الجدول التالي.
محلي | هجين |
---|---|
منصة محددة | متعدد المنصات |
اللغة المترجمة | البرمجة النصية / التجميع |
الوصول إلى أجهزة الجهاز | المكونات الإضافية / الوحدات النمطية الأصلية |
أطر عمل المنصة | أطر عمل الويب |
لماذا تختار النهج الهجين/متعدد المنصات؟
إحدى مشاكل تطوير تطبيقات الجوال الأصلية هي أنها تتطلب مهارات متخصصة للغاية. على الرغم من وجود مجتمعات مطورين كبيرة ونشطة للغتي C وJava – وهما اللغتان الأكثر استخدامًا في التطوير الأصلي – إلا أن هناك عددًا أقل من المطورين الذين يمتلكون خبرة في إصدارات منصات محددة من هاتين اللغتين وبيئات التطوير المتكاملة الخاصة بهما. في الواقع، الطلب على مطوري تطبيقات الجوال الأصليين المهرة كبير، لدرجة أن العديد من الشركات تجد صعوبة في توظيفهم والاحتفاظ بهم، وغالبًا ما تضطر إلى اللجوء إلى شركات تصميم وتطوير خارجية لبناء تطبيقاتها نيابةً عنها.
كيف تعمل الأطر الهجينة ومتعددة المنصات؟
تتيح التطبيقات الهجينة للمطورين استخدام تقنيات الويب HTML5/CSS/JavaScript، ثم تغليف تطبيقات الويب هذه في حاوية تسمح لتطبيق الويب بالعمل كتطبيق أصلي على الجهاز. ونظرًا لأن تطبيقات الجوال الهجينة هي مجرد تطبيقات ويب تعمل على بيئة متصفح مدمجة، فيمكن استخدام معظم شيفرة تطبيق الويب لإنشاء تطبيق جوال. ومع التزايد المستمر في أداء عرض متصفحات الجوال ووقت تشغيلها، يُعد التطوير الهجين بديلاً عمليًا لمطوري الويب الراغبين في إنشاء تطبيقات جوال بسرعة.
على نحو مماثل، تتم كتابة تطبيقات الويب التقدمية باستخدام تقنيات برمجة تطبيقات الويب التقليدية والتي تتضمن عادةً بعض المتغيرات من JavaScript وHTML5 وCSS، ويتم الوصول إليها في البداية من خلال متصفح على الجهاز أو الكمبيوتر.
توفر معظم أطر العمل متعددة الأنظمة الأساسية مثل React Native و Native Script مكونات أصلية للعمل مع الكود متعدد الأنظمة الأساسية، بينما تقوم بعض الأطر الأخرى مثل Flutter و Xamarin بتجميع الكود متعدد الأنظمة الأساسية إلى الكود الأصلي للحصول على أداء أفضل.
دورة حياة تطوير تطبيقات الهاتف المحمول
يتكون التطبيق المحمول من عنصرين أساسيين مترابطين: 1) “الواجهة الأمامية” للتطبيق المحمول والتي توجد على الجهاز المحمول، و2) “الواجهة الخلفية” للخدمات والتي تدعم الواجهة الأمامية للهاتف المحمول.

الواجهة الأمامية مقابل الواجهة الخلفية
في بدايات عصر تطبيقات الهواتف الذكية الحديثة، شهدت تطبيقات الهواتف تطورًا مشابهًا لتطور المواقع الإلكترونية الأولى. في البداية، كانت التطبيقات والمواقع الإلكترونية جزءًا لا يتجزأ من نفسها، ولم تكن سوى إعلانات ثابتة للعلامة التجارية أو الشركة أو المنتج أو الخدمة.
ومع ذلك، ومع تحسن الاتصال وقدرات الشبكة، أصبحت التطبيقات متصلة بشكل متزايد بمصادر البيانات والمعلومات التي كانت تعيش خارج التطبيق نفسه، وأصبحت التطبيقات ديناميكية بشكل متزايد حيث أصبحت قادرة على تحديث واجهة المستخدم والمحتوى باستخدام البيانات المستلمة عبر الشبكة من الاستعلامات إلى مصادر البيانات.
نتيجةً لذلك، تعتمد تطبيقات الواجهة الأمامية للهواتف المحمولة بشكل متزايد على الخدمات الخلفية، وتتكامل معها، مما يوفر بياناتٍ يمكن استخدامها من خلال الواجهة الأمامية. قد تشمل هذه البيانات، على سبيل المثال، معلومات المنتج لتطبيقات التجارة الإلكترونية، أو معلومات الرحلات الجوية لتطبيقات السفر والحجز. أما بالنسبة لألعاب الهواتف المحمولة، فقد تتضمن البيانات مستوياتٍ أو تحدياتٍ جديدة، ونتائج أو صورًا رمزية للاعبين آخرين.
كيف يتحدث الواجهة الأمامية مع الواجهة الخلفية؟
تحصل الواجهة الأمامية للهاتف المحمول على البيانات من الواجهة الخلفية عبر مجموعة متنوعة من خدمات الاتصال، مثل واجهات برمجة التطبيقات (APIs). في بعض الحالات، قد تكون هذه الواجهات مملوكة ومدارة من قِبل نفس الجهة التي تُطوّر تطبيق الهاتف المحمول. وفي حالات أخرى، قد تُسيطر جهة خارجية على واجهة برمجة التطبيقات، ويُمنح الوصول إلى تطبيق الهاتف المحمول عبر اتفاقية تجارية.
على سبيل المثال، قد يحصل مطوّر على محتوى من مواقع التواصل الاجتماعي أو الإعلانات عبر الاتصال بخدمات شركات الإعلام أو الإعلانات. في هذه الحالة، قد يضطر المطوّر إلى توقيع عقد للحصول على بيانات اعتماد ومفتاح يمنحه حق الوصول إلى واجهة برمجة التطبيقات (API) ويحدد كيفية استخدامها، وتكلفتها، وعدد مرات الاتصال بها، وكمية البيانات التي يمكن طلبها خلال أي فترة زمنية.
لماذا يستخدم المطورون الواجهة الخلفية السحابية؟
في معظم التطبيقات، يكون مطورو الأجهزة المحمولة مسؤولين عن إنشاء وإدارة الخدمات الخلفية لتطبيقاتهم. قد لا يكون مطور الأجهزة المحمولة خبيرًا أو حتى ماهرًا في إنشاء وتشغيل البنية التحتية الخلفية.
في مثل هذه الحالة، قد يفضل المطورون الاستفادة من مزود خدمات سحابية – مزود الخدمة الخلفية – الذي يتعامل مع كل العمل الشاق والجهد الثقيل المتمثل في إدارة قدرات الواجهة الخلفية، حتى يتمكن المطورون من التركيز بشكل بحت على الميزات والوظائف التي يقومون ببنائها في تطبيقهم، دون الحاجة إلى القلق بشأن قابلية التوسع والأمان والموثوقية.
واجهة التطبيق المحمول
الواجهة الأمامية للهاتف المحمول هي الجزء المرئي والتفاعلي من التطبيق الذي يختبره المستخدم. عادةً ما تكون موجودة على الجهاز، أو على الأقل توجد أيقونة للتطبيق تظهر على الشاشة الرئيسية أو مثبتة في دليل تطبيقات الجهاز. يمكن تنزيل التطبيق من متجر تطبيقات النظام الأساسي، أو تحميله مباشرةً على الجهاز، أو الوصول إليه عبر متصفح الجهاز، كما هو الحال في تطبيقات الويب التقدمية (PWAs).
كيف يبدو سير عمل تطوير الواجهة الأمامية؟
عندما يقول أحد المطورين أنه مبرمج تطبيقات جوال، فإنه غالبًا ما يشير إلى هذا الجزء الأمامي من التطبيق، وهو ماهر في اللغات والتقنيات المستخدمة لإنشاء هذا التطبيق الأمامي.
بناءً على حجم الفريق المُنتج للتطبيق، قد يشارك العديد من الأشخاص في تصميم وتطوير تطبيق الهاتف المحمول الأمامي. يتراوح حجم الفريق بين مطور واحد يتولى جميع مهام بناء التطبيق، وعشرات ومئات الأشخاص ذوي المهارات المتخصصة.
على سبيل المثال، قد يكون هناك مصممو رسومات/إبداع متخصصون مسؤولون عن إنشاء عناصر بصرية للتطبيقات، مثل الأيقونات والخلفيات والألوان والسمات وأجزاء أخرى من التطبيق. قد يضم الفريق أيضًا مصممي تجربة المستخدم وواجهات المستخدم، ويعملون على تصميم المكونات، وكيفية تفاعلها مع بعضها البعض ومع المستخدم. في حالة أنواع معينة من الألعاب، قد يضم الفريق مطوري رسومات متحركة، وحتى مهندسين يطورون محركات تحكم فيزياء حركة المكونات في التطبيق، مثل سيارة في لعبة سباق.
كيف يتم دمج تطبيقات الهاتف المحمول مع الواجهة الخلفية؟
بغض النظر عن حجم الفريق، فإن العنصر الأساسي لجهود التطوير هو بناء منطق التطبيق المسؤول عن إجراء مكالمات الشبكة إلى الخدمات الخلفية، واسترداد البيانات وتحديث البيانات في أنظمة الواجهة الخلفية بمعلومات جديدة تم إنشاؤها من التطبيق.
عادةً ما يتم الوصول إلى هذه الخدمات الخلفية من خلال مجموعة متنوعة من واجهات برمجة التطبيقات، والمعروفة عادةً باسم واجهات برمجة التطبيقات (APIs). هناك أنواع مختلفة من واجهات برمجة التطبيقات، مثل REST وGraphQL، كما تتوفر مجموعة واسعة من وسائل وأساليب الوصول إليها. في حين أن بعض واجهات برمجة تطبيقات الخدمات الخلفية متاحة مباشرةً للتطبيق من خلال استدعاءات في المنصة نفسها، إلا أن العديد من الخدمات المتخصصة يجب دمجها في التطبيق عبر مجموعة تطوير برمجيات (SDK). بمجرد إضافة مجموعة تطوير البرمجيات (SDK) إلى التطبيق عبر بيئة التطوير، يمكن للتطبيق الاستفادة من واجهات برمجة التطبيقات المُعرّفة فيها.
كيفية التفاعل مع البيانات الخلفية؟
من أمثلة خدمات الواجهة الخلفية للواجهة الأمامية للجوال قاعدة بيانات تحتوي على معلومات مستخدمة في التطبيق. للوصول مباشرةً إلى قاعدة البيانات، يجب على مطور الجوال معرفة موقع قاعدة البيانات على الشبكة، وبروتوكول الوصول إليها، وبيانات اعتماد المصادقة والتفويض للوصول إلى البيانات، وأوامر قاعدة البيانات المحددة اللازمة لاستخراج البيانات المطلوبة.
كبديل، يمكن للمطور استخدام واجهة برمجة تطبيقات (API) متخصصة عند التفاعل مع قاعدة البيانات؛ وقد يحتاج المطور فقط إلى معرفة المعلمات اللازمة في استدعاء دالة للحصول على المعلومات المطلوبة أو تحديثها. في بعض الحالات، قد يطور مطورو الأجهزة المحمولة هذه الواجهات بأنفسهم أو يستخدمون تعريف واجهة برمجة التطبيقات الذي يقدمه لهم مالك/مشغّل مورد الواجهة الخلفية.
عادةً، تُستخدم واجهة برمجة تطبيقات REST للتفاعل مع مصادر البيانات على السحابة، مثل قواعد البيانات السحابية. تُعد واجهة برمجة تطبيقات GraphQL خيارًا آخر للمطورين، إذ تُسهّل العمل مع بيانات الواجهة الخلفية في تطبيقات الجوال. تُوفر GraphQL دعمًا للاستعلامات من خلال نقطة نهاية واجهة برمجة تطبيقات واحدة، ومخطط بيانات يُمكن استخدامه لبناء نماذج البيانات المُستخدمة في التطبيق وتوسيعها بسهولة.
الواجهة الخلفية لتطبيقات الهاتف المحمول
بغض النظر عن منصة الواجهة الأمامية أو منهجية التطوير المستخدمة، فإن تقديم تطبيقات جوال عالية الجودة تسعد المستخدمين وتحتفظ بهم يتطلب خدمات خلفية موثوقة.
نظراً للأهمية البالغة لخدمات الواجهة الخلفية لنجاح تطبيقات الهاتف المحمول، يتعين على المطورين مراعاة عدة قرارات معمارية مهمة. تشمل هذه القرارات تحديد الخدمات التي ينبغي عليهم بنائها بأنفسهم، وخدمات الجهات الخارجية التي ينبغي عليهم الاستفادة منها، ثم هل ينبغي عليهم تشغيل وصيانة خدماتهم بأنفسهم أم الاستفادة من خدمات الجهات الخارجية.
الإجابة واضحة بشكل متزايد؛ لتحسين إنتاجية وكفاءة المطورين، ينبغي على مبرمجي تطبيقات الجوال بناء خدماتهم الخاصة فقط إذا كانت متخصصة للغاية في مجال التطبيق وتتمتع بملكية فكرية فريدة. وحتى بالنسبة للخدمات التي يبنونها بأنفسهم، ينبغي عليهم في أغلب الأحيان الاستفادة من الخدمات السحابية لبناء وصيانة بنيتهم التحتية الخلفية.
خدمات تطبيقات الهاتف المحمول الرئيسية
هناك مئات من خدمات السحابة وخدمات الجهات الخارجية التي يمكن لمطوري تطبيقات الجوال الاستفادة منها لتسريع تطوير تطبيقاتهم وتسليمها. ومع ذلك، من غير المرجح أن يتمكن المطور من أن يصبح خبيرًا في كل خدمة من هذه الخدمات.
وبدلاً من ذلك، ينبغي لمطوري الأجهزة المحمولة البحث عن بيئة تطوير تسهل عليهم دمج واستخدام واستهلاك القدرات الأكثر شيوعًا المطلوبة في تطبيقاتهم بسرعة وسهولة، مع الحفاظ على حرية الاستفادة من العديد من الخدمات الفردية المتاحة.
ضروري
- تسجيل دخول المستخدم/التسجيل وإدارته
- تسجيل الدخول عبر وسائل التواصل الاجتماعي (تسجيل الدخول عبر Facebook، تسجيل الدخول عبر Twitter، وما إلى ذلك)
- التحليلات وإشراك المستخدم
- إشعارات الدفع
- اختبار الجهاز الحقيقي
خدمات البيانات
- التخزين السحابي
- البيانات في الوقت الفعلي وغير المتصلة بالإنترنت
- منطق التطبيق/وظائف السحابة
التعلم الآلي
- روبوتات المحادثة
- التعرف على الصور والفيديو
- التعرف على الكلام