تطوير التطبيقات وهندسة البرمجيات مصطلحات بتنا نسمعها كثيرًا في العقد الأخير فإن كنت مهتمًا بالتعرف على الموضوع فلابد أنك تنوي دخول أحد مجالات علوم الحاسوب أو التخصص في برمجة التطبيقات ولكن ما هي التطبيقات؟ وما هي لغات البرمجة المستعملة فيه؟ وكيف يمكن التخصص في هذا المجال ودخول سوق العمل؟ لقد أصبحت صناعة التطبيقات صناعة مزدهرة في السوق العالمي، وصار من شأن كل شركة كبيرة أو صغيرة أن تطور تطبيقًا لها يربطها مع مستخدميها.
سنلقي نظرة في هذه المقالة على تعريف التطبيقات وأنواعها، وسندل القارئ على بعض طرق تعلّمها، ونطلعه على بعض الإحصائيات المهمة عن سوق العمل.
فلنبدأ إذن!
ما هي التطبيقات؟
البرمجيات أو التطبيقات، هي برامج حاسوبية تستعمل إمكانات الحاسوب سواءً كان كبيرًا أو صغيرًا -مثل الجوالات والأجهزة الذكية- لتساعد المستخدم على تنفيذ مهام يرغب فيها. من أمثلة البرمجيات التطبيقية: معالجات النصوص، ومشغلات الوسائط، ومتصفحات الويب، وغيرها من التطبيقات التي نستعملها يوميًّا، ويمكن أن نقول إن التطبيقات هي التي تجعل استخدام الجهاز نافعًا للمستخدم النهائي.
تتنوع التطبيقات من حيث أنظمة التشغيل التي تعمل عليها، فبعض التطبيقات متعدد المنصات (يمكن تشغيله على عدة أنظمة تشغيل)، وبعضها خاص بنظام واحد أو نظامين (مثل تلك الخاصة بنظام أندرويد أو ويندوز مثلًا)، وتتنوع التطبيقات كذلك من حيث لغات البرمجة المستعملة في تطويرها، إذ يمكن تطوير التطبيقات باستخدام عدة لغات برمجة. تقدم كل لغة من هذه اللغات مكتبات وأساليب مختلفة لتطوير التطبيقات ويشيع استعمال بعضها في مجالات معينة.
أنواع التطبيقات
تطورت التطبيقات بتطور الحواسيب المشغلة لها وأنظمتها ووسائل تخزينها واتصالها، فقد كان المستخدم يحتاج إلى شراء قرص فلوبي بالتطبيق المشترى (إن كنت من جيل الألفية فغالبًا لم ترَ قرص فلوبي من قبل)، ثم أصبحت التطبيقات تباع بأقراص CD ثم بأقراص DVD، إلى أن دخل عصر الإنترنت وأصبحت التطبيقات تحمَّل من الشبكة مباشرةً ثم أصبحت تطبيقات سحابية يتكفل مقدموها بإدارة البيانات وإتاحة مشاركتها.
مع دخول عصر الإنترنت انتشرت المتصفحات وتطورت تطوّرًا كبيرًا حتى أتاحت بيئة يمكن أن تعمل التطبيقات فيها مباشرة دون الحاجة إلى تثبيت على نظام التشغيل وهذا عائد إلى عامل آخر أيضًا وهو سرعة الإنترنت الكبيرة، وهكذا انتقل نموذج شراء التطبيقات عبر الدفع مرة واحدة لاستخدام التطبيق (حيث يأتي ملف الترخيص مع قرص التطبيق)، إلى نموذج التأجير عبر الاشتراكات الشهرية أو السنوية، كما أسهم تطور المتصفحات أيضًا بانتقال التطبيقات من الاختصاص بنظام تشغيل واحد إلى العمل على عدة أنظمة.
في البدء، كانت التطبيقات محصورة بالحواسيب المكتبية desktops قبل شيوع الحواسيب الصغيرة المتمثلة بالجوالات والساعات الذكية وأجهزة إنترنت الأشياء وغيرها.
فأصبح لدينا عدة أنواع من التطبيقات هي:
- تطبيقات الحاسوب أو سطح المكتب: ويُقصد بها كل التطبيقات التي تعمل على الحاسوب مكتبي كان desktop أو محمول laptop
- تطبيقات الجوال: تعمل على أجهزة الجوال المحمولة.
- تطبيقات الويب: تعمل عبر المتصفحات بمختلف الأجهزة.
- تطبيقات الأجهزة الملبوسة: تعمل على أجهزة قابلة للارتداء مثل الساعات الذكية.
- تطبيقات إنترنت الأشياء: تعمل على كل الأجهزة التي يمكنها الاتصال بالإنترنت مثل الشاشات المنزلية والبرادات والكاميرات وغيرها.
نماذج تطوير التطبيقات
تختلف منهجيات تطوير التطبيقات فيما بينها بالمراحل، وسأذكر هنا عدة منهجيات شائعة وأذكر مراحل كل واحدة منها وهي:
- نموذج الشلال Waterfall
- النموذج المرن أجايل Agile
- نموذج التطوير السريع Rapid application development
نموذج الشلال Waterfall
يقسّم نموذج الشلال أنشطة المشروع البرمجي إلى مراحل متتابعة خطية، تستفيد كل واحدة من سابقتها. تمر عملية تطوير التطبيقات في نموذج الشلال في المراحل التالية:
- جمع المتطلبات النظامية والبرمجية: تنتج عنها وثيقة متطلبات المنتج.
- تحليل المتطلبات: تنتج عنها مخططات المشروع وهيكلياته وقواعده.
- التصميم: تنتج عنه معمارية التطبيق.
- برمجة التطبيق: تطوير الكود وحمايته وضمان توافق أجزائه.
- الاختبار: البحث النظامي عن العيوب وإصلاحها.
- العمليات: تشمل التثبيت والدعم والصيانة.
النموذج المرن Agile
يعد النموذج المرن حلقةً يدور فيها مطورو التطبيق في مراحل التطوير السابق ذكرها. يلتزم هذا النموذج بالمبادئ التالية:
- إرضاء الزبون بالتقديم المبكر والمستمر للبرمجية على نحو فعّال.
- الترحيب بتغير المتطلبات خلال فترة التطوير.
- تسليم البرمجية بسرعة (كل عدة أسابيع لا كل عدة أشهر).
- التعاون الوثيق اليومي بين أصحاب العمل والمطورين.
- تبنى التطبيقات وتركز على الأفراد أصحاب الدافع، الذين يجب أن يوثق بهم.
- التواصل المباشر (الواقعي) هو أفضل أنواع التواصل.
- إصدار برمجية تعمل هو أفضل مقياس للتقدم.
- التطوير المستدام، والحفاظ على وتيرة ثابتة.
- الاهتمام المستمر بالتفوق التقني والتصميم الصالح.
- تنشأ أفضل المعماريات والمتطلبات والتصميمات من الفرق التي تنظم نفسها.
- يجتمع الفريق دوريًّا ويفكر في طرق زيادة فعاليته ويعدل نفسه بحسبها.
نموذج التطوير السريع Rapid application development
يفضل هذا النموذج التطوير المتكرر (المرور عدة مرات على الكود نفسه لتطويره تدريجيًّا) وبناء نماذج أولية للميزات بدلًا من التركيز على المخططات والنظريات. أهم مبادئ هذا النموذج:
- الهدف الأساسي: تطوير نظام عالي الجودة بسرعة وبأقل تكلفة استثمارية ممكنة.
- محاولة تقليل الخطر في المشروع بتقسيمه إلى أجزاء والترحيب بالتغيير في فترة التطوير.
- السعي إلى إنتاج نظام عالي الجودة بسرعة.
- التركيز الأساسي هو تلبية الحاجة في العمل، أما التفوق التقني والهندسي فهو ذو أهمية أقل.
- وضع أولويات وتحديد مواعيد إنجاز نهائية.
- الاستفادة من المستخدم في عملية التطوير.
- إنشاء توثيق للنظام لتسهيل التطوير والصيانة في المستقبل.
لغات تطوير التطبيقات ومكتباتها
إن أهم جزء في صناعة التطبيقات هو برمجتها وإنشاؤها، لذلك فإن معرفة لغات البرمجة المستخدمة أمر لا بد منه للمتعلم المبتدئ، وتختلف لغات تطوير التطبيقات حسب نوع التطبيق الذي تريد تقديمه، ففي حين يمكن استخدام بعض أطر العمل والمكتبات لتقديم تطبيقات متعددة المنصات، تختص بعض لغات البرمجة بأنظمة ومنصات محددة لا تخرج منها.
تطوير التطبيقات باستخدام لغة بايثون Python
تعد لغة بايثون من اللغات الصاعد نجمها في الآونة الأخيرة، وهي لغة عامة الغرض أي يمكن استعمالها أين ما أمكن وقد شاع استخدامها في تطبيقات تحليل البيانات والذكاء الصنعي.
يمكن استعمال لغة بايثون بمساعدة مكتبات متخصصة لبناء مختلف أنواع التطبيقات ومنها:
- سطح المكتب: تُستعمل لتطوير تطبيقات سطح المكتب بدون واجهة رسومية أو مع واجهة رسومية باستعمال مكتبة TKinter التي تعتمد على مكتبة TK الشهيرة.
- الويب: يُستعمل إطار العمل جانغو Django وإطار فلاسك Flask أو Pyramid
- الجوال: تُستعمل مكتبة Kivy لتطوير تطبيقات متعددة المنصات تعمل على الجوالات وعلى الحواسيب.
تطوير التطبيقات باستخدام لغة جافاسكربت JavaScript
أما لغة جافاسكربت، فهي لغة متخصصة بالويب والمتصفحات عمومًا فهي أهم لغة في تطوير تطبيقات الويب وتوفر مكتباتها طيفًا واسعًا من الإمكانيات لتطوير تطبيقات لمختلف المنصات وإليك أهم المكتبات:
- سطح المكتب: تُستعمل مكتبة Electron.js، التي أثبتت نجاحًا باهرًا في إنشاء تطبيقات سطح المكتب تعمل على مختلف أنظمة التشغيل.
- الويب: يُستعمل إطار أنجولر Angular أو ريآكت React لتطوير الواجهات الأمامية لتطبيقات الويب، وبيئة Node.js لتطوير النظم الخلفية لها.
- الجوال: يُستخدم إطار React Native لتطوير تطبيقات أندرويد أو iOS.
تطوير التطبيقات باستخدام لغة Java و C++
تمتاز لغة جافا Java في مجال تطوير تطبيقات سطح المكتب ذات الواجهات الرسومية بمكتبة JavaFX التي اتسع نطاقها بفضل JavaFXPorts لتشمل الجوالات العاملة بنظام Android ونظام iOS.
تستعمل لغة Java كذلك في تطوير تطبيقات الأندرويد، إذ كانت هي اللغة الرسمية لبرمجتها قبل أن تحل محلها شبيهتها الحديثة كوتلن Kotlin.
أما لغة C++، فتدعمها عدة مكتبات للواجهات الرسومية، منها gtkmm، وهي المكتبة الرسمية للواجهات الرسومية فيها، ومنها مكتبة Qt التي تستعمل في بناء واجهات المستخدم الرسومية وفي تطوير تطبيقات متعددة المنصات تعمل على أنظمة لينكس وويندوز وماك وحتى الأندرويد. من أهم المشاريع التي تستعمل مكتبة Qt إطارات عمل KDE وهي 83 مكتبة مبنية باستخدام Qt.
تطبيقات الحاسوب المكتبية مقابل تطبيقات الويب
شهدت السنين الأخيرة انتشار تطبيقات الويب وازدياد استخدامها على نطاق واسع، وأدى هذا الانتشار إلى اختلاف مفهوم التطبيقات وكيفية شرائها وتخزينها، حيث انتشرت التطبيقات السحابية ذات الاشتراكات الدورية (الشهرية أو السنوية)، ويبرز هذا الاتجاه عندما نرى أن شركة مايكروسوفت أصدرت مجموعة برامج الأوفيس كتطبيقات ويب سحابية تحت اسم Office 365، ونرى انتشار استخدام تطبيقات ويب مثل Figma، و Google Drive وغيرها.
لقد سادت تطبيقات الويب مشهد التطبيقات العالمي بفضل مرونتها وتعدد منصاتها وسهولة استخدامها ولأن كل ما تطلبه إتصال بالإنترنت ومتصفح ويب وهذا ما أصبح متوفرًا على أغلب الحواسيب والجوالات المحمولة ومختلف الأجهزة. إذ لا تحتاج تطبيقات الويب إلى أي عملية تثبيت، كل ما عليك هو استعمال متصفحك لاستخدامها.
تمتاز تطبيقات الويب كذلك بإمكانية تحويلها إلى تطبيقات سطح مكتب أو جوال، باستعمال عدة مكتبات، والسائد حاليًا استعمال تطبيقات الويب التقدمية PWA لمختلف المنصات وأنظمة التشغيل.
كما يمكن تحويل تطبيقات الويب إلى تطبيقات جوال لتسمى آنذاك تطبيقات هجينة فهي ليست إلا تطبيقات ويب مغلفة في حزم تثبيت للجوال يمكن تثبيتها من متاجر التطبيقات، أما تطبيقات الويب التقدمية فلا تحتاج إلى تثبيتها أصلًا. من جهة أخرى، تساعد مكتبة إلكترون Electron.js في تحويل تطبيقات الويب إلى تطبيقات سطح مكتب، إذ تعرض على موقعها شعار «إذا كان في مقدورك أن تصنع موقعًا إلكترونيًّا، ففي مقدورك أن تصنع تطبيق سطح مكتب».
ستجد في أيامنا هذه أن استعمال تقنيات الويب في تطوير تطبيقات سطح المكتب والجوال أصبح أسلوبًا شائعًا وفعّالًا تعتمد عليه أكبر الشركات البرمجية، ولم يعد مجرد أسلوب فرعي يتجه إليه غير العارفين بلغات البرمجة الأصيلة وهذا ما زاد الطلب على مطوري الويب في سوق العمل.
تعلم تطوير التطبيقات
يتجه بعض الناس إلى البحث عن دورات تعليمية إنكليزية لتطوير التطبيقات ولكن هذا يتطلب تعلم لغة أجنبية كاملة من أجل تعلم علوم الحاسوب والحقيقة لا أفضل من التعلم باللغة الأم نفسها، لذا عملت أكاديمية حسوب على توفير دورات متكاملة بلغة عربية مع توفير كل المراجع المطلوبة من كتب ومقالات وتوثيقات لتعلم البرمجة وعلوم الحاسوب من مكان واحد، وهنا اخترت لك دورتين متعلقتين بمجال تطوير التطبيقات.
دورة تطوير التطبيقات باستخدام لغة بايثون Python
أُعِدّت دورة تطوير التطبيقات باستخدام لغة بايثون Python على يد نخبة من المطورين لتنقلك من الصفر في البرمجة إلى الاحتراف، حيث ستتمكن في 57 ساعة من الفيديو من تعلم تطوير التطبيقات والمواقع باستخدام لغة بايثون.
تغطي الدورة الجانب النظري وتعتمد الاعتماد الأكبر على التطبيق العملي، وتشمل الدورة تعليم إطار العمل جانغو Django وإطار العمل فلاسك Flask، وهو ما سيؤهلك للعمل في المجال باستخدام لغة بايثون Python، وتقدم لك أكاديمية حسوب بعد إتمام الدورة واجتياز اختباراتها دعمًا لدخول سوق العمل والحصول على أول وظيفة في البرمجة.
دورة تطوير التطبيقات باستخدام لغة جافاسكربت JavaScript
طرحت أكاديمية حسوب دورة تطوير التطبيقات باستخدام لغة جافاسكربت JavaScript بما يزيد عن 55 ساعة، حيث ستبني الدورة عندك أساسًا نظريًّا متينًا مع تطبيق عملي على مشاريع عديدة مع مدربين متوافرين على مدار الساعة لمساعدتك وشرح أي شيء يستعصي علي.
تتألف الدورة من 9 مسارات تستطيع البدء فيها دون معرفة مسبقة بالبرمجة، وستعلمك الدورة بناء تطبيقات على بيئة Node.js ومكتبة React.js، وبرمجة تطبيقات الجوال باستخدام ReactNative، واستعمال تقنيات الويب لتطوير تطبيقات سطح المكتب باستعمال Electron.js، وهو ما سيؤهلك إلى العمل مطورًا للتطبيقات ويضعك على المسار الصحيح في مشوارك المهني.
سوق العمل في تخصص تطوير التطبيقات
تتنوع أجور العمل في سوق تطوير التطبيقات بتنوع البلدان والمهارات التي يتمتع بها المطور. ففي الإمارات العربية المتحدة تحديدًا في إمارة دبي، وحسب موقع glassdoor، يبلغ متوسط أجر مطوري البايثون 4,500 درهم إماراتي شهريًّا. أما مطور الويب في دبي، وحسب بيانات الموقع نفسه، فيبلغ متوسط أجره 6,000 درهم إماراتي شهريًّا، وفي جمهورية مصر العربية، وحسب بيانات موقع salaryexplorer، يبلغ متوسط أجر مطور الويب 7,650 جنيهًا مصريًّا في الشهر، أما مطور البايثون، فيبلغ متوسط أجره 9,380 جنيهًا في الشهر، حسب بيانات الموقع نفسه هذا أثناء تاريخ كتابة المقال وقد تتغير الأرقام في تاريخ قراءة المقال، والأرقام تلك تدل على أجور مرتفعة عن أي مهنة أخرى.
إذا أردت البحث عن عمل عن بعد في مجال تطوير التطبيقات، ألق نظرة على موقع بعيد، الذي لا يخلو من فرص عمل في هذا المجال. لا تنس كذلك تقديم خدماتك في موقع خمسات، والبحث عن مشاريع مناسبة لك في موقع مستقل، الذي سيساعدك مساعدة كبيرة في معرفة اتجاهات السوق وفي العمل إذا قبلك صاحب أحد المشاريع.
خاتمة
أخيرًا، أرجو أن تكون هذه المقالة مفيدة نافعة أعطتك لمحة عن مجال تطوير التطبيقات، وأن تكون استفدت من قراءتها. أتمنى لك التوفيق في رحلتك!
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.