دراسات وأبحاث
Recent Mobile Frameworks
العدد 150 | كانون اﻷول (ديسمبر)-2019

بقلم شفيع خليل البيطار
مهندس معلوماتية

 

انتشرت حديثًا الأجهزة الذكية (iPad، Smart phones، Tablets...) بين أيادي الناس على اختلاف معارفهم. ويَستعمل معظمهم التطبيقات الموجودة في هذه الأجهزة، التي تساعدهم في مجالات شتى؛ مثل: المحادثة مع أناس بعيدين جغرافيًّا، وترتيب جداول أعمالهم، والتذكير ببعض الأعمال، ومشاهدة مقاطع الفيديو وغيرها كثير.

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

 

نظم تشغيل الأجهزة الذكية

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

ومعظم أنظمة التشغيل الخاصة بالأجهزة الذكية غير قابلة للتنصيب إلا على الأجهزة التي صمِّمت لها. ولذلك يُعدّ نظام التشغيل العاملَ الرئيسي في جودة الأجهزة، وخصوصًا مع تقارب المواصفات التقنية بين معظم الأجهزة. ومن أهم أنظمة التشغيل الخاصة بالأجهزة الذكية ما يلي:

  • نظام IOS
  • نظام Android
  • نظام  Windows Mobile
  • نظام  Samsung Bada
  • نظام Symbian
  • نظام  BlackBerry

 

تطبيقات الأجهزة الذكية

تطبيقات الأجهزة الذكية هي تطبيقات برمجية تعمل على مختلف الأجهزة الذكية مثل: iPhone، و  iPad، و Galaxy Tab، وغيرها.

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

  1. باستعمال لغات البرمجة المتخصصة: وهي الطريقة التي يتبعها المطورون المحترفون وشركات البرمجة المتخصصة. وهناك العديد من اللغات المستعملة في تطوير وبرمجة الأجهزة الذكية من أهمها: (Java, C#, C++, Java Script, HTML5, Objective-C, VB, XML, Python, Ruby). وغالبًا ما يستعمل المطورون أكثر من لغة في إنتاج التطبيق الواحد. والتطبيقات المطورة باستعمال لغات البرمجة يمكن ربطها بالعديد من محركات قواعد البيانات منها (SQL, MYSQL, Oracle)، وهي قابلة للعمل على معظم أنظمة تشغيل الأجهزة الذكية، إلا أنها تتطلب الكثير من الوقت والجهد.
  2. باستعمال الحزم البرمجية الجاهزة: وهي مجموعة من التطبيقات الجاهزة تعتمد على استعمال لغة برمجة محددة، وتوفر أدوات مساعدة في عمليات البرمجة وكتابة الرماز البرمجي والتعديل عليها ومحاكاة التطبيقات أثناء التطوير بحيث تسهل عمليات الإنتاج. وعادة ما ترتبط كل حزمة برمجية بإنتاج تطبيقات للعمل على نظام محدد أو أكثر من أنظمة تشغيل خاصة بالأجهزة الذكية، ومن أهم الحزم البرمجية:
    • حزمة  ADT التي تعمل على نظام تشغيل أندرويد، وتتطلب إتقان لغة الجافا، وتستعمل قواعد بيانات SQL.
    • حزمة NDK التي تعمل أيضًا على نظام تشغيل أندرويد، وتتطلب إتقان لغات البرمجة كلغةCولغةC++، ولا تُستعمل إلا في إنتاج التطبيقات المعقدة التي تتعامل مباشرة مع المعالجات والذاكرة، كتطبيقات الألعاب وتطبيقات المحاكاة.
    • حزمة Xcode، وهي حزمة برمجية متكاملة من إنتاج شركة Apple، ولا تعمل إلا على أنظمة Mac، وعدد من المنصات كمنصة  Introducing VT OS الخاصة بأجهزة Apple TV، ومنصةWatchOS 2  التي تعمل على ساعات آبل، ومنصة IOS 9 التي تعمل على أجهزة آيباد وآيفون، ومنصة  OS X El Capitan  التي تعمل على جميع أجهزة آبل المكتبية والمحمولة. ويتطلب استعمال هذه الحزمة إتقان لغة “C” أو لغةC++أو لغة Objective C، وتتضمن الحزمة لغة برمجة خاصة بها هي لغة Swift، وتوفر مخزنًا سحابيًّا للتطبيقات ((Cloud Kit لتسهيل الوصول إلى التطبيقات أثناء تطويرها واختبارها، وتوفير إحصائيات متكاملة عن استعمال كل تطبيق.
    • حزمة Xamarin ، وهي حزمة برمجية لإنتاج التطبيقات التي تعمل على أنظمة تشغيلIOS, Android, Windows, Mac ، وتتطلب إتقان إحدى لغاتC، C++، Java، وتوفر إمكان اختبار التطبيقات المطورة عن طريق مخزن سحابي للتطبيقات، إضافة إلى مراقبة كاملة لمستعملي كل تطبيق، وتحديد مدى تفاعلهم مع التطبيق، ومراقبة أداء التطبيق والحفاظ على سرعة أدائه.
    • حزمة KIVY، وهي حزمة برمجية مفتوحة المصدر لإنتاج التطبيقات التي تعمل على أنظمة تشغيلLinux, Windows, OS X, Android, IOS ، وتتطلب إتقان لغة برمجة Python، وفيها أكثر من 20 أداة برمجة إضافية. وتركز في المقام الأول على إنتاج تطبيقات ذات واجهات مبتكرة، مثل تطبيقات شاشات اللمس المتعدد، ولذا فإن الحزمة تعتمد على وجود وحدة معالجة رسومات من نوع OpenGL ES 2 ذات السرعات العالية في معالجة ونقل البيانات الرسومية.

 

بيئات تطوير التطبيقات الخاصة بالأجهزة الذكية

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

  1. NativeScript

هي بيئة تطوير مجانية ومفتوحة المصدر، طورتها شركة (Telerik)، وتَستعمل لغة (JavaScript) لبناء تطبيقات الأجهزة الذكية. من أهم ميزاتها الوصول إلى واجهات برمجة التطبيقات الأصلية (Native APIs) التي تتيح للمطور الوصول إلى API للنظام باستعمال لغة (JavaScript)، وأيضًا كتابة رماز واحد يعمل على جميع المنصات.

تَستعمل هذه البيئة لغة XML لبناء الواجهة وCSS لتنسيق الواجهة. والتطبيق المستخرج هو تطبيق أصلي لنظامَي Android وiOS. وهذه البيئة لا تتطلب استعمال إطار عمل آخر مثل Angular أو Vue.js، ومع ذلك يمكن استعمال أطر أخرى أو الاكتفاء باستعمال NativeScript Core.

الموقع الرئيسي لبيئة التطوير هو: https://www.nativescript.org/

 

 

 

  1. React Native

هي بيئة تطوير مجانية ومفتوحة المصدر، تَستعمل لغة JavaScript)) للبرمجة وإطار العمل React لتطوير تطبيقات الأجهزة الذكية المتعددة المنصات (cross platforms). طوَّرت هذه البيئة شركات كبيرة مثل Facebook وInstagram وSkype و Uber و Discord و Pinterest وغيرها. تَستعمل هذه البيئة لغة TypeScript للهيكلة والتنسيق، والتطبيق المستخرج هو تطبيق أصلي لأنظمةAndroid, iOS  Windows Phone,.

الموقع الرئيسي لبيئة التطوير هو: https://facebook.github.io/react-native/

 

 

  1. Flutter

هي بيئة تطوير مجانية ومفتوحة المصدر، طورتها شركة (Google)، وتستعمل لغة (Dart) لتطوير التطبيقات المتعددة المنصات، وهي تعمل على Android و IOS. وتُعدّ البيئةَ الوحيدة التي توفر واجهات تفاعلية دون الحاجة إلى استعمال JavaScript، وتتميز بقدرتها على إظهار التغييرات والتعديلات على الرماز أثناء العمل عن طريق خدمة  Hot-reload التي تمكِّن من إعادة بناء الجزء الذي جرى تعديله فقط، ومن ثَم فهي توفر على المبرمج وقتًا كبيرًا.

تسعى غوغل من خلال هذه البيئة إلى توفير طرق أكثر سلاسة لصناعة تطبيقات الأجهزة الذكية وتسهيلها على المطورين. تتطلب صناعة هذه التطبيقات معرفة بلغة JAVA أو Kotlin لنظام Android و Swift لنظام IOS، وقد أدى هذا المطلب إلى انقسام مجتمع مطوري التطبيقات وتخصص المطورين في أحد هذين النظامين. فبهذه الفكرة بدأ مشروع بيئة التطوير Flutter لِلَمّ شمل المطورين وصناعة تطبيقات لكل المنصات باللغة الأصلية وكأن التطبيق مبرمج باللغة الأصلية للنظام.

من مميزات Flutter دعمها الكامل لواجهات Material Design، فعلى نظام أندرويد تأتي المكونات من Text وButton وSwitch افتراضيًّا على تنسيق نوعية التصميم. وهذا ما يوفر عناء التعديل على التصميم كما هو الحال على أندرويد بالجافا.

ومن مميزات Flutter أيضًا، التي جعلتها أكثر سهولة لتطوير تطبيقات الأجهزة الذكية، اعتمادها على نظام الحاجيات (Widgets)؛ فكل عنصر من Flutter يُعدّ إحدى الحاجيات، وقد استُنبط هذا النظام من React JSX. وهذه ميزة للمطورين الذين سبق لهم التعامل مع React، فقد يجدون أن صناعة التطبيقات باستعمال Flutter أكثر سهولة. ونظام الحاجيات جعل من السهل إنشاء مكونات (Components) جديدة. وقد أسهمت قوة لغة Dart أيضًا - لكونها لغة غرضية التوجه (Object Oriented) - إسهامًا فعالًا في هذا الأمر، بحيث يمكن أخذ إحدى الحاجيات الرئيسية وإضافة خصائص جديدة عليها من تأثيرات وحركات (Animation) ببساطة ومن دون تعقيد. وقد مَكَّنَ هذا من إنشاء مكونات جديدة داخل الإطار وإدراج Material Design في المكونات التي تعمل على Android وCupertino على IOS.

الموقع الرسمي لبيئة التطوير هو:  https://flutter.io/

 

 

  1.  RubyMotion

هي بيئة تطوير مجانية وشبه مفتوحة المصدر، طورتها شركة (Scratchwork Development)، ويقتصر تطويرها على مستعملي نظام Mac OS. من ميزاتها الوصول الكامل إلى واجهات برمجة التطبيقات الأصلية واستعمالها للغة Ruby لبرمجة تطبيقات الأجهزة الذكية. وكما في Flutter، فإن بيئةRubyMotion  لا تستعمل أية بيئة تطوير ولا تدعم بيئات التطوير الشهيرة مثل React و Vue وAngular ولا تدعم بناء الوجهات باستعمال xml أو html أو أية لغة مهيكلة أخرى. ويكون تطوير الواجهات والتعامل معها في بيئة RubyMotion عن طريق لغة Ruby. والتطبيق المستخرج هو تطبيق أصلي لنظام Android وiOS.

الموقع الرسمي لبيئة التطوير هو: http://www.rubymotion.com/

 

 

  1. Appcelerator Titanium

هي بيئة تطوير مجانية وشبه مفتوحة المصدر، طورتها شركة (Appcelerator)، وجرى بواسطتها تصميم العديد من التطبيقات المشهورة جدًّا مثل تطبيق Ebay و PayPal و  Zipcarو Cisco. تُستعمل لبرمجتها لغةJavaScript ، ولغة XML للهيكلة ولغة التنسيقTSS . والتطبيق المستخرج هو تطبيق أصلي. لا تتطلب بيئة Appcelerator Titanium  استعمال بيئات تطوير محددة إلى جانبها، ويمكن استعمال بيئة التطوير Backbone أو Alloy مع هذه البيئة لبناء تطبيقات الأجهزة الذكية المتعددة المنصات لنظام Android وiOS.

الموقع الرسمي لبيئة التطوير هو: https://www.appcelerator.com/

 

 

  1. Ionic

هي بيئة تطوير مجانية ومفتوحة المصدر، طورتها شركة (Drifty Co)، وهي تستعمل تقنيات الوب HTML5, CSS, JavaScript  لبناء تطبيقات متعددة المنصات. في الإصدار الأول من Ionic استُعمل إطار العمل AngularJS  وواجهة من إعداد فريق Ionic، وهي ليست مشابهة كثيرًا لواجهة النظام الأصلية، ولكن مع إطلاق الإصدار الثاني من Ionic اعتُمد تصميم ملحقات مشابهة تقريبًا لتصميم ملحقات النظام الأصلية. وفي الإصدار الثاني استُغني عن إطار AngularJS واستُعمل إطار Angular 2 إطارًا أساسيًّا، واستُعملت لغة TypeScript لغةً افتراضية للإطار (تترجم إلىJavaScript ). وفي الإصدار الثالث جرى دعم اللغة التي تكتب من اليمين إلى اليسارRight to Left) ) افتراضيًّا، ومن بين هذه اللغات كانت اللغة العربية. ومع الإصدار الرابع من Ionic أُضيف دعم إطار العمل Vue ليتمكن مستعملو هذا الإطار من تطوير تطبيقاته على Ionic.

من مميزات Ionic إمكان عملها على عدد كبير من المنصات منها Android و iOS وWindow Phone ، وكذلك وجود مجتمع كبير للمطورين. وهي تَستعمل تقنيات الوب المعتادة مثل HTML ولغة التنسيق CSS ولغة البرمجة JavaScript لتطوير تطبيقات الوب. والتطبيق المستخرج هو تطبيق هجين (Hybrid) مشابه جدًّا للتطبيق الأصلي.

الموقع الرسمي لبيئة التطوير هو:  https://ionicframework.com

 

 

  1. Xamarin

هي بيئة تطوير مملوكة لشركة (Microsoft)، وأدواتها مجانية، وتَستعمل لغة C# لتطوير تطبيقات الأجهزة الذكية المتعددة المنصات لنظم iOS وAndroid وWindow Phone. وتَستعمل لغة XAML للهيكلة ولغة التنسيق CSS. والتطبيق المستخرج هو تطبيق أصلي. تمتاز لغة C# بأنها سريعة في التحول إلى لغة الآلة، ولها مجتمع كبير لمطوريها. لا تَستعمل Xamarin أي إطار عمل، ولا تدعم إطارات العمل الشهيرة مثل React وVue وAngular.

الموقع الرسمي لبيئة التطوير هو: https://www.xamarin.com

      

                    

 

  1. Fuse Tools

هي مجموعة أدوات لتطوير تطبيقات الأجهزة الذكية المتعددة المنصات، وهي مجانية ومفتوحة المصدر. تمتاز بالسهولة والعملية، وفيها بيئة تصميم (Visual Designer). وتَستعمل لغة UX للهيكلة، ولغة CSS للتنسيق، ولغة (JavaScript) للبرمجة. والتطبيق المستخرج هو تطبيق أصلي لنظام Android وiOS. لا تَستعمل Fuse أي إطار عمل، ولا تدعم إطارات العمل الشهيرة مثل: React وVue وAngular.

الموقع الرسمي لبيئة التطوير هو: https://www.fusetools.com

 

 

  1. Weex

هي بيئة تطوير مجانية ومفتوحة المصدر، تدعمها ((apache software foundation. تَستعمل لغة (JavaScript) لتطوير تطبيقات الأجهزة الذكية المتعددة المنصات برماز code برمجية واحدة لعدة منصات. وتَستعمل لغة XML للهيكلة، ولغة CSS للتنسيق، ولغة (JavaScript) للبرمجة، وتتيح استعمال إطار العمل Vue، وهو إطار افتراضي عند إنشاء مشروع جديد.

الموقع الرسمي لبيئة التطوير هو: https://weex.incubator.apache.org

 

 

الخاتمة

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


 

قد ترغب كذلك بقراءة
تكنولوجيا المعلومات والاتصالات والاقتصاد الرقمي
الحوسبة العالية الأداء في متناول يدك