مراحل بناء تطبيقات إحترافية

بناء التطبيقات انا دائما أشبهه بعملية بناء العمارة. ما يمديك تاخذ طوبه و تروح تبني على طول !!

لأنك لو سويت كذا راح تستكشف أخطاء كثير و أمور ما عملتها بالحسبان راح تخليك تعيد البناء من جديد و بالتالي ضيعت وقتك و طوبك

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

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

المراحل بالترتيب كالتالي

تحديد الفكرة

تحديد الفكرة الأساسية للتطبيق – القيم الأساسية اللي يقدمها التطبيق – الفئة المستهدفة.

المسؤول عن المرحلة: مدير المنتج أو صاحب الفكرة أو صاحب العمل

المتطلبات: الفكرة

المخرجات: مستند إيضاحي للفكرة. مافي صيغة محددة للمستند فقد يكون بسيط و على ورقه بشكل نقاط متعددة و قد يكون على هيئة business plan. أهم شي المستند يكون واضح بالنقاط اللي بالأعلى

تحليل النظام

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

المسؤول عن المرحلة: محلل النظم و هوا عادة شخص يكون دارس Information System or Software Engineering or MIS or IT

المتطلبات: الــمستند الإيضاحي للفكرة

المخرجات: في الغالب يكون مستند واحد يسمى بــ  Software Requirements Specifications (SRS)

يحتوي المستند على معلومات تقنية مثل الـ:

  • Features List
  • Use cases
  • User Stories
  • Activity Diagrams
  • Sequence Diagrams
  • UML design

و غيرها من المعلومات المهمة للمطورين

User Experience Analysis (UX) تحليل قابلية الإستخدام أو

مافي مرات يجيك إحساس ان تطبيق معين “يرفع الضغظ” ؟ أو انه مقرف أو صعب او يلخبط ؟ مرات تكره تطبيق بس ما تعرف ليه.

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

  • أظهار المعلومة فقط في الوقت المناسب و المكان المناسب
  • إمكانية التوجه من شاشة أ الى شاشة ب بأقل عدد من الخطوات
  • تسهيل الوصول للوظيفة الأساسية للتطبيق
  • طرق التطبيق بين الشاشات و إستخدام التطبيق ضروري تتبع نهج نظام التشغيل ( يعني لو التطبيق على ios لازم مثلا يكون عنوان الشاشة اللي انت فيها بالنص في الأعلى و لو أندرويد يكون على اليسار و ما الى ذلك )

أمثلة للقرارات اللي يتم اتخاذها في المرحلة هذي هي مثل:

  • هل نستخدم قائمة بأسفل الشاشة و لا تنسحب من اليسار ؟
  • هل تكون الإعدادت موجودة في الصفحة الأساسية ؟
  • لو عندنا قائمة فيها صور، ايش المعلومات اللي تظهر في القائمة و ايش المعلومات اللي تظهر لما تضغط على الصورة و تدخل صفحة التفاصيل ؟

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

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

المتطلبات: الــSRS من المرحلة السابقة

المخرجات: wireframes  و هي تخطيطات تبين اماكن تواجد الازارير على الشاشة و كيفية الانتقال بين الشاشات

User Interface Design (UI)تصميم واجهات الإستخدام

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

المسؤول عن المرحلة: مصمم الواجهات User Interface Designer

المتطلبات:

  • الــ wireframes من المرحلة السابقة
  • هوية التطبيق ( الشعار و الألوان و الخط للهوية و ما الى ذلك )

المخرجات:

  • صور screenshots لجميع لواجهات
  • الملفات الأصلية للـ screenshots و التي عادة تكون PSD او ai
  • صور متفرقة sliced images للأيقونات و الصور المستخدمة في الـ واجهات

تجهيز البنية التحتية السحابية 

لو التطبيق يتطلب منك عمل بنية تحتية سحابية فـ المرحلة هذي بتجي هنا. ( كتبت عن متى تحتاج بنية تحتية ساحبية في موضوعي السابق ).

في المرحلة هذي يتم تجهيز الخوادم و ربطها مع الدومين أو نطاق الموقع الرسمي

المسؤول عن المرحلة: مسؤول الخوادم server admin و لكن في الكثير من المرات يقوم مطور الويب بعمل هذي المرحلة لأنها بسيطة في الغالب

المتطلبات:

  • الــSRS من مرحلة التحليل لتحديد مواصفات الخادم
  • معلومات النطاق الرسمي للموقع

المخرجات:

  • خادم جاهز للإستخدام و الربط

تطوير البنية التحتية السحابية Backend Development

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

المسؤول عن المرحلة: مطور برمجيات ويب web developer. عادة يكون مبرمج متمرس على احد لغات الويب مثل PHP – python – Ruby و غيرها

المتطلبات: الــSRS من مرحلة التحليل

المخرجات:

  • الشفرة البرمجية source code
  • Database
  • web services or APIs لربط الخادم و قواعد البيانات مع التطبيق
  • Documentation لإستخدام الـ APIs

تطوير التطبيقات 

هنا يبدأ تطوير التطبيق نفسه ( لاحظ ان عملية تطوير التطبيق جات في اواخر مراحل عملية بناء التطبيق)

في المرحلة هذي يتم برمجة التطبيق و تركيب التصميم على التطبيق

المسؤول عن المرحلة: مطوري تطبيقات هواتف ذكية (مطور أندرويد – مطور iOS – مطور ويندوز )

المتطلبات:

  • الــSRS من مرحلة التحليل
  • صور screenshots لجميع لواجهات
  • صور متفرقة sliced images للأيقونات و الصور المستخدمة في الـ واجهات

المخرجات:

  • الشفرة البرمجية source code
  • ملف التطبيق API for Android or IPA for iOS

الربط 

هذي المرحلة فقط لما يكون هناك خطوة تطوير بنية تحتية سحابية. يتم في المرحلة هذي ربط التطبيق مع قواعد البيانات عن طريق الـ APIs

المسؤول عن المرحلة: مطوري تطبيقات هواتف ذكية (مطور أندرويد – مطور iOS – مطور ويندوز )

المتطلبات:

  • الــSRS من مرحلة التحليل
  • Documentation لإستخدام الـ APIs

المخرجات:

  • الشفرة البرمجية source code
  • ملف التطبيق API for Android or IPA for iOS

الإختبار و التأكد من الجودة Quality Assurance

مرحلة مهمة و هي اختبار التطبيق بشكل كامل للتأكد انه بالفعل يقوم بكل شي كان موضح في مستند الفكرة الإيضاحي و بالتالي الــ SRS

عادة في المرحلة هذي يكون في اختبارات لسيناروهات متعددة للتأكد ان كل شي تمام و يتضمن الإختبار الأمور التالية:

  • اختبار قوة التحمل Stress testing
  • اختبار قابلية الاستخدام
  • اختبار من المعلومات
  • اختبار التشغيل

المسؤول عن المرحلة: مسؤول الجودة و مرات يكون هو نفسه محلل النظم 

المتطلبات:

  • الــSRS من مرحلة التحليل
  • ملف التطبيق API for Android or IPA for iOS

المخرجات:

  • تقرير الجودة

الإطلاق

بعد الانتهاء من التطبيق تجي مرحلة الإطلاق و تتضمن:

  • عمل حساب رسمي في متاجر التطبيقات
  • إستخراج نسخة رسمية للتطبيق
  • استخراج شهادة للتطبيق
  • رفع التطبيقات على متاجر التطبيقات المخصصة
  • كتابة وصف التطبيق في المتجر
  • رفع صور للتطبيق في المتجر
  • تحديد الأسواق المتاح بها التطبيق

المسؤول عن المرحلة: عمل جماعي بين مدير المنتج و مدير المشروع و المطورين و المصممين   

المتطلبات:

  • حساب في متاجر التطبيقات
  • شعار التطبيق
  • اسم التطبيق
  • وصف التطبيق
  • صور للتطبيق
  • ملف التطبيق API for Android or IPA for iOS

المخرجات:

  • رابط التطبيق في المتاجر

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

ملاحظة: صورة العرض مأخوذة من أحدى مطبوعات وقود التقنية و الخطوات أيضا مستوحاة من طريقة عمل الشركة

2 Comments

  1. السلام عليكم
    تدوينة ممتازة
    فهمت المبادىء و لله الحمد مع اني ما اعرف شيء في التطبيقات، اخ عسيري اذا عندي فكرة موقع و تطبيق، من اقدر اروح له ؟ و وش الخيارات اللي قدامي ؟

    شكرا لك

  2. عبداللهsays:

    شكرًا أخوي عبدالله

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

تعليق ؟