السلام عليكم.

تطبيقات الهواتف الذكية أصبحت من ضروريات الحياة اليومية "لبعضنا على الأقل"، ولتطوير هذه التطبيقات يجب على المبرمج تعلم لغة جديدة (في حالة iOs مثلا تحتاج تعلم Obj-C ...) لكن بعضهم فكّر بشكل مختلف حيث قال لما لا نستفيد من الخبرة التي اكتسبناها في الويب (HTML5/CSS3/JS) ونضعها تحت تصرفنا في هذه الأنظمة (Android, iOs, Blackberry ...) بحيث نربح وقتا و جهدا. وحقيقة فعلوا هذا في مشاريع متعددة لعل أشهرها هو Phonegap ( للمزيد :

http://phonegap.com

) وتسمى التطبيقات المبرمجة بها بالهجينة كونها مبرمجة بتكنلوجيات الويب و تعمل تحت حاوية طبيعية (Native Container) إلا أن هناك مشكل فيها. مشكل حقيقي. هو الأداء.

السؤال: هل ستضحي بالأداء من أجل خبرتك (أو التكنولوجيات) التي يمكنك أن تستفيد منها أم بوقتك من أجل الأداء؟

مميزات التطبيقات الهجينة:

  1. سهلة التطوير (طبعا إن كنت تتقن تكنلوجيات الويب)

  2. سرعة التنفيذ و انخفاض الكلفة.

  3. الوصول لمجموعة كبيرة (والأساسية) من الواجهات البرمجية التي يوفرها النظام (APIs)

  4. عصفورين بحجر، أي دعم عدة منصات مرة واحدة.

*عيوب التطبيقات الهجينة:

  1. الأداء الضعيف.

  2. هناك حدود لبعض الواجهات البرمجية (APIs)

  3. دعم عدة منصات يحتاج بعض الأحيان إلى حيل و خدع إضافية.

  4. اختلاف الواجهة من منصة لأخرى.

مميزات التطبيقات الطبيعية:

  1. الوصول لكل الواجهات البرمجية.

  2. الأداء و الانسيابية.

  3. تحكم أكبر بالواجهة و التأثيرات.

  4. تنقيح أسهل (Debug)

عيوب التطبيقات الطبيعية:

  1. تحتاج أن تتعلم لغة المنصة التي تبرمج لها.

  2. تأخذ وقتا و جهدا وبالتالي تكلفة فكما يقولون الوقت هو المال.

  3. لا تستطيع استعمال الشفرة المصدرية في منصات أخرى.

إن رأيت أن هناك ترجمة أفضل لبعض الكلمات (مثل native) فأخبرنا بها من فضلك!


على الهامش: مشكل الأداء في التطبيقات الهجينة ممكن سيزول قريبا فكما نرى كل يوم يظهر هاتف ذكي أو لوحي ذو مواصفات ممتازة تقترب من أجهزة الكمبيوتر "أبالغ قليلا هنا".

هناك أيضا مشروع مثيرة للإهتمام استحوذت عليه facebook من مدة ليست ببعيدة اسمه Parse ويمكن الإطلاع عليه من :

بحيث يتيح كتابة تطبيقات طبيعية (Native) بواسطة عدة لغات تختار منها ما تشاء.