تطبيقات الجوال: الأصيلة (Native) أم الهجينة (Hybrid) أم الويب (web)

بوجود عدد كبير من المنصات التي تدعم تطوير تطبيقات متعددة المنصات مثل Xamarin، Cordova، وReact Native بسهولة وبساطة من الطبيعي أن يصاب الكثير من مطوري التطبيقات بالحيرة عند اختيار النوع الملائم لتطوير تطبيقه الجديد مابين تطوير تطبيقات أصيلة وهجينة وموقع الويب. تهدف هذه المقالة إلى شرح مختلف الطرق لتطوير تطبيق جوال ومساعدتك على اختيار الطريقة المناسبة

التطبيقات الأصلية

التطبيقات الأصلية هي تلك التطبيقات التي يتم تطويرها بواسطة منصة تطوير معينة خصيصا لنظام تشغيل مستهدف ويتم تحميلها من متجر التطبيقات ك Google Play وApple App Store. تختلف أنظمة التشغيل عن بعضها في لغات البرمجة المدعومة، أدوات التطوير ومكونات الواجهة المرئية (UI) كما توجد إرشادات ومعايير قياسية يجب على المطور مراعتها عند تطوير التطبيق لنظام معين. فمثلا لتطوير تطبيقات للأجهزة التي تعمل بنظام تشغيل Android يجب استخدام لغة Java/Scala بينما يتطلب تطوير التطبيقات لأجهزة IOS استخدام لغة Objective-C/Swift.

تقدم التطبيقات الأصلية أفضل أداء ممكن بما لها من قدرة علي الوصول لكل مكونات ووظائف النظام بسرعة فائقة كما تقدم أفضل تجربة مستخدم (User Experience) ولكن يعيب التطبيقات الأصلية عدم إمكانية تشغيل التطبيق خارج النظام الذي طُور له بالأصل ما يعني ضرورة إعادة برمجة التطبيق من الصفر لكل نظام ترغب باستهدافه الأمر الذي يتطلب جهد اكثر و اموال اكثر و وقت اطول والحاجة لتوظيف عدة فرق تطوير بالبنسبة للشركات

التطبيقات الهجينة

التطبيقات الهجينة هي بالأصل صفحات ويب يتم برمجتها بتقنيات الويب مثل HTML, CSS و Javascrip وتعرُض داخل متصفح النظام (Native Browser) الذي يوفر الوصول لبعض وظائف نظام التشغيل ولهذا السبب يمكن للتطبيقات الهجينة دعم عدة منصات بدون إعادة برمجة التطبيق لكل نظام. تتميز التطبيقات الهجينة بسرعة وسهولة التطوير ويأتي ذلك علي حساب الأداء فاعتماد التطبيق الهجين علي المتصفح يعنى ضعف الأداء بالمقارنة مع التطبيقات الأصلية.

يتطلب تطوير التطبيقات الهجينة معرفة بتقنيات الويب القياسية المدعومة من متصفحات أنظمة التشغيل واستخدام منصة تطوير تطبيقات متعددة المنصات مثل Apache Cordova/PhoneGap، Xamarin، Ionic Framework

الويب

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

تختلف التطبيقات المعتمدة على صفحات الويب عن التطبيقات الأصلية والهجينة بعدم القدرة على الوصول لوظائف النظام وبحاجتها الدائمة للاتصال بالإنترنت في أثناء التصفح على الرغم من وجود وظائف مثل Broswer Caching وLocal Storage لحفظ الصفحات في أثناء إنقطاع الاتصال بالإنترنت تظل الحاجة للاتصال موجودة، لا تحتاج تلك التطبيقات إلى تحميل من متجر التطبيقات ما يغنيها عن التقيد بقواعد وقيود المتجر ويوفر حرية أكبر للمحتوي.


ما الأفضل؟

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

  • هل تؤثر السرعة علي أداء التطبيق كالألعاب مثلا ؟
  • هل يحتاج التطبيق إلي وظائف خاصة بنظام التشغيل كالوصول لسجل المتصلين؟
  • هل طبيعة التطبيق تستدعي الاتصال بالإنترنت أم يمكن تقديم كامل الوظائف بدون الحاجة للاتصال؟
  • ما الميزانية المتوفرة للتطوير والصيانة؟

ونأمل أن يساعدك الجدول التالي في الإختيار

  التطبيقات الأصلية التطبيقات الهجينة الويب
الوصف تطبيقات تم برمجتها بلغة برمجة خصيصا لنظام تشغيل محدد صفحات ويب مستضافة بمتصفح أصيل صفحات ويب مهيأة للعرض بأحجام صغيرة تناسب شاشة الجوال
المهارات اللازمة للتطوير معرفة بلغة برمجة مثل Java - Objective-C - .Net معرفة بتقنيات الويب HTML, CSS, Javascript -
معرفة بمنصة تطوير للتطبيقات
معرفة بتقنيات الويب HTML, CSS, Javascript
الأداء الأفضل متوسط محدود
تجربة المستخدم (UX) الأفضل متوسطة محدودة
دعم عدة منصات غير ممكن ممكن ممكن
كيفية النشر متجر التطبيقات متجر التطبيقات خادم ويب (Web Server)
إمكانية الوصول لوظائف نظام التشغيل إمكانية كاملة إمكانية متوسطة لا توجد
سرعة التطوير والصيانة بطيئة متوسطة سريعة
تكلفة التطوير والصيانة عالية متوسطة منخفطة
الحاجة للاتصال بالإنترنت لا لا نعم
مناسب لــ التطبيقات التي تحتاج إلي أداء عالي وسرعة ووصول إلي كافة وظائف النظام التطبيقات التي لا تحتاج أداء عالي وتحتاج للوصول إلي بعض وظائف النظام التطبيقات التي لا تحتاج أداء عالي ولا الوصول إلي وظائف النظام