Ionic تهتم بالجانب التصميمي للتطبيق، وتعتمد على Cordova كأساس للتواصل مع نظام تشغيل الموبايل.
Cordova عبارة عن مجموعة مكتبات ولواحق تم كتابتها لكل نظام تشغيل على حدة (Android, iOS, windows Phone, Web OS) وغيرها، ثم قامت Cordova بتقديم هذه الخدمات APIs كخدمة موحدة وبشكل دوال جافا سكربت. JavaScript API
بمعنى لو اردنا عمل تطبيق يقوم بفتح الكاميرا والتقاط صورة، فإن طريقة تطويره على اندرويد تختلف عن iOS وعن باقي الأنظمة الاخرى. Cordova قامت بكتابة هذه الأكواد المختلفة نيابة عنك، ثم وحدت ألية استخدامها وصدرتها بشكل جافا سكربت. بالتالي يمكنك فتح الكاميرا ضمن تطبيق Cordova بواسطة دالة واحدة فقط بالجافا سكربت، وسيعمل التطبيق على جميع المنصات، بدون الحاجة لمعرفة الطريقة الاصلية في كتابة ذلك. قس على ذلك باقي الخدمات التي تقدمها انظمة التشغيل المختلفة.
بالتالي Cordova ليس لها علاقة بشكل التطبيق، هي فقط المحرك او الجسر الواصل بين تطبيق الموبايل (بالجافا سكربت) وبين انظمة التشغيل المختلفة.
الآن حتى نتغلب على مشكلة التصميم، ظهرت مكتبات ومشاريع اخرى، مثل Framework 7, BootStrap و بالطبع Ionic. وغيرها الكثير. ولكل وجه نظر مختلفة في الية الاستخدام، لكن في النهاية انت ستكتب جافا سكربت! الذي قدمته Cordova!
البرمجة الهجينة لم ولن تكن كالبرمجة الآم او Native، لان البرمجة الهجينة Hybrid ذات امكانيات محدودة، فهي تقوم بتغليف المهام الأصلية لنظام التشغيل وعمل طبقة مجردة Abstraction Layer، لتتمكن من جعل هذه الوظيفة عامة ومشتركة بين جميع انظمة التشغيل المختلفة.
بالنسبة للواجهات، هي ليست كواجهة الويب، بل هي الويب نفسها، لان تطبيق Hybrid عبارة عن تطبيق أصلي Native يحوي على شاشة واحدة فقط هي Web View (يمكنك تصور Web View كمتصفح بدون أزرار وبدون حقل Url، وبدون ألية Back- Forward)
وكل ما يقوم به التطبيق هو رسم عناصر HTML وتفسير (تنفيذ) كود جافا سكربت على هذه الشاشة، وايهام المستخدم بان هناك مجموعة شاشات تعمل. بالتالي تطبيقك سيعتمد على قدرة المتصفح الرسومية لانشاء الواجهات، وليس على كارد الشاشة الخاص بالجهاز!
وللتحايل على شكل عناصر HTML ظهرت مشاريع مثل Ionic لتعطي للتطبيق شكل مشابه للتطبيق الأصلي (فتجد مفهوم Material Design المطبق بانظمة الاندرويد) موجود ضمن Ionic، او لنقل عمل CSS مشابه للاندرويد.
الآن، لماذا يتم استخدام Cordova او التطبيقات الهجينة، الجواب مرة اخرى "الاختلاف والتنوع" وحجم المشروع الذي تعمل عليه ومتطلباته وميزانياته.
تقريبا يعتبر هكذا نوع من التطبيقات مناسب للتطبيقات التي تسمى LOB او Line of Business والتي غالبا تقوم بعرض مجموعة بيانات وادراتها، مثل محرك بحث معين. بحيث لا تتعامل بكثرة مع نظام التشغيل (مثل الملفات والكامير والرسوميات وغيرها).
بالنسبة لي، عملت على مشروع واحد باستخدام Cordova وكان ناجحاً، لكني لن أكرر التجربة! لان المتطلبات التي نعمل عليها وحجم العملاء، قد لا تتمكن Cordova من تحقيق المتطلبات المناسبة.
بالتوفيق،،،