ما هي الـ Native Apps و الـ Hybrid Apps ؟ و ما الفرق بينهما ؟ و مميزات كل واحدة منهما ؟

ما هي الـ Native Apps و الـ Hybrid Apps ؟ و ما الفرق بينهما ؟ و مميزات كل واحدة منهما ؟

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


ما هي الـ Native Apps و الـ Hybrid Apps ؟ و ما الفرق بينهما ؟ و مميزات كل واحدة منهما ؟


و مع تطور التقنيات البرمجية و اللغات البرمجية كذلك، أصبح للجميع مهما كان تخصصهم صناعة و إبتكار تطبيقات الموبايل عموما و تطبيقات الأندرويد خصوصا، إلا ان بعض التقنيات البرمجية التي تسمح لك بصناعة تطبيقات الأندرويد قد تكون أقوى و أفضل من غيرها في بناء نفس التطبيقات، سواء من ناحية الآداء او القبول و التوافق مع النظام و نسخه و غيرها.
من هذا المنطلق ظهر مصطلحين للفصل بين نوعين من التطبيقات: التطبيقات الأصيلة او Native Apps، و التطبيقات الهجينة او الـ Hybrid Apps، في هذا المقال سنقوم بشرح كليهما، و وجه التشارك و كذا أوجه الإختلاف بينهما أيضا، الى جانب مميزات صناعة كل نوع و التقنيات المستخدمة في صناعته كذلك . 


- ما هي الـ Native Apps ؟ 

إن كل نظام تشغيل مبني على مجموعة من اللغات البرمجية، لكن من بين هذه اللغات يوجد لغة أصيلة او أساسية تم إبتكار بها ذلك النظام او يدعمها بشكل سريع، ببساطة يمكن التحكم تقريبا في أي جزء من ذلك النظام بالإعتماد على تلك اللغة البرمجية، فعلى سبيل المثال تشكل الجافا جزءا كبيرا من نظام الأندرويد، اي انه و بإستخدام الجافا يمكننا الوصول لأي جزء نريد من الأنرويد ( بالطبع حاليا لا يمكنك فعل ذلك لأن مطوري النظام يحصرون الوصول لبعض الخدمات ).
التطبيقات المبنية على نفس اللغة البرمجية التي طُور بها النظام، او اللغات البرمجية التي يستقبلها النظام بشكل جيد تسمى بالـ Native Apps او التطبيقات الأصيلة، فالتطبيقات المبنية على لغة البرمجة الجافا تُسمى بتطبيقات Native، اي ان أساسها مبني على نفس اللغة التي طور بها النظام، لغة Kotlin هي الأخرى لغة أصيلة، او بالأحرى التطبيقات المبنية على Kotlin هي تطبيقات Native، لكن لماذا ؟ فالأندرويد لم يتم بنائه بـ Kotlin ؟ لا بالطبع، لكن الشركة جعلت من النظام مستقبلا وديا للغة Kotlin و يستطيع تأدية وظيفته بشكل أسرع و أبسط بإستخدام Kotlin كما الحال بالنسبة للجافا. 
الأندرويد مجرد مثال بسيط، فمثلا نظام الـ iOS مبني على الـ Objective-C، اي برمجة تطبيقات iOS بإستخدام Objective-C سيجعلها Native Apps ، تطويرها بالـ Swift كذلك سيجعلها Native و ذلك لأن الشركة تدعم كوتلين كلغة أساسية في تطوير التطبيقات بل و تعتمد الآن على Swift كذلك في تطوير النظام، مما يجعل التطبيقات المبنية بهذه اللغة ودية و تستطيع آداء عملها بشكل أفضل .

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


- مميزات و سلبيات الـ Native Apps : 

للـ Native Apps ميزة جد مهمة و هي الآداء، فالآداء الخاص بالتطبيق المخصص للنظام يكون سريعا و فعالا، كما يمكنك الوصول حرفيا لكل محتويات الهاتف و أقسامه، كما يمكنك إيجاد كل ما تريده في تلك اللغة البرمجية من أجل تطوير أي نوع من التطبيقات تريد لذلك النظام، و هذا ما يجعل العديدين يختصون في صناعة هذا النمط من التطبيقات على غيره من الأنماط الأخرى . 
اما سلبياته فتقريبا محدودة، فالسلبية الوحيدة التي قد تعانيها في الـ Native Apps هي عدم دعم العديد من الأنظمة دفعة واحدة، فتطوير تطبيق مثلا للأندرويد سيكلفك نفس الجهد و العمل لتطويره للـ iOS، اي انه سيتوجب عليك تطوير تطبيقين من الصفر مختلفين كليا، مما يعني وقتا أطول في تطوير تطبيق أندرويد لمنصات مختلفة. 


- ما هي الـ Hybrid Apps ؟ 

فكر البعض في بعض الطرق التي يمكن من خلالها تشغيل تطبيقات على الموبايل دون الحاجة للغة البرمجية الرسمية لتطوير تطبيقات الموبايل، إذ وجد البعض انه يمكن تشغيل التطبيقات على هيئة صفحة ويب بإستخدام الـ Native Browser الموجود ي النظام، اي ببساطة صناعة تطبيق ليُظهر واجهات فقط في التطبيق، هذه الواجهات يمكن صناعتها بلغات معينة، اما لتمرير البيانات او جعل التطبيق ديناميكيا فيمكننا الإعتماد على بعض اللغات الأخرى التي تستطيع تحقيق هذه الغاية في الصفحة على تطبيق يشتغل على نظام هاتف ذكي، مثل تقنية jQuery Mobile او Angular او Reactive X او Xamarin التي تسمح لنا أيضا بالوصول لخدمات الهاتف الأخرى مثل الإشعارات او الملفات وسط الهاتف و الكاميرا و غيرها.
و لبناء هذه الواجهات سنحتاج فقط الى البرمجيات مشهورة تقوم بصناعة واجهات صفحات الويب مثل HTML, CSS ثم إستخدام احدى التقنيات أعلاه من أجل دمج الكل على شكل تطبيق و إطلاقه لنظام مخصص، و ذلك التطبيق النهائي يُسمى بتطبيق هجين او Hybrid App . 

إقرأ أيضا : تعرف على 5 إطارات عمل للجافاسكريبت لصناعة تطبيقات الأندرويد و iOS بإحترافية



مميزات و سلبيات الـ Hybrid Apps : 

الميزة الأقوى للـ  Hybrid Apps هي تعدد المنصات التي يمكن تصدير تطبيقك الأخير إليها، أي ان تطوير او برمجة تطبيق واحد بإستخدام احدى التقنيات المستخدمة في بناء التطبيقات الهجينة و لنقل مثلا منصة Xamarin، فتطويرك لتطبيق على هذه المنصة يعني إمكانية إستخراجه لكل أنظمة الهاتف دفعة واحدة مثل Android, iOS, Windows Phone ... و لست مضطرا الى اعادة برمجته مجددا لنفس المنصة، لهذا يختار البعض صناعة التطبيقات بهذه التقنية فقط من أجل توفير إستخدامها لكل الأنظمة الذكية . 
لكن للـ Hybrid Apps سلبيات ربما أكثر من الإيجابيات، فآداء التطبيقات قد يكون بطيئا حسب النظام و حسب صلاحيات التطبيق، بعض التطبيقات تشتغل بطيئة في بعض الأنظمة، كما انه بعض التقنيات التي تسمح لك بصناعة تطبيقات الأندرويد مثل Cordova قد لا توفر لك كل صلاحيات الوصول لبعض الخدمات الموجودة في الهواتف الذكية مما يجعل تطوير تطبيق ضخم مخصص و يتضمن كل ما تحتاجه من ادوات أمر شبه مستحيل بإستخدام هذه التقنيات. 


- هل يجب علي صناعة تطبيقات Hybrid ام تطبيقات Native ؟ 

لعلك بعد ان إكتشفت الفرق و تعرفت على كليهما، فالسؤال الذي خطر ببالك مباشرة : هل علي صناعة تطبيقات هجينة الآن ام اصيلة ؟ 
جواب هذا السؤال بسيط، يعتمد الأمر على نوع التطبيق، إن كنت تريد صناعة تطبيق متخصص و متعمق كثيرا ( تطبيقات مثل Uber, Facebook, Spotify ... ) التي ستتطلب منك آداء عالي للتطبيق على الجهاز الذكي و سيستخدم أيضا موارد عديدة من الجهاز مثل GPS, Camera و غيرها فحتما يجب على التطبيق ان يكون Native من أجل ضمان جودته و ضمان سرعة آداء للمستخدم ناهيك على إستخدام العديد من التقنيات الأخرى التي قد لا تجدها في خدمات أخرى . 
لكن، إن اردت صناعة تطبيقات بسيطة لتأدية غرض محدد ( تطبيق لتحميل صور أنستغرام، تطبيق لإضافة تأثير على صورة ... ) اي تطبيقات لن تستهلك موارد عديدة من جهاز المستخدم، فسيكون من الأفضل ان يكون Hybrid و ذلك من أجل تحقيق إستفادة أكبر من التطبيق على منصات مختلفة و ليس منصة واحدة .

شاركه على :