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

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

يمكننا تقسيم صناعة تطبيقات الهواتف النقالة إلى عدد من الخطوات، كالتالي:

  1.  اختيار الشريك.

  2.  استكشاف المنتج.

  3. تصميم UX / UI.

  4.  التجهيز للانطلاق.

  5.  تطوير التطبيق مع ضمان الجودة.

  6.  نشر التطبيق.

  7.   مرحلة ما بعد التطوير.

دعونا نتعمق الآن في كل خطوة من الخطوات المذكورة:

المرحلة الأولى: اختيار الشريك – اختر شركة لتصميم وتطوير تطبيقك

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

  • أولاً تحليل الشركات التي تم ترشيحها:

قم بالتحقق من الآراء حول هذه الشركات، بالإضافة إلى سيرتها المهنية، من الممكن طرح مثل هذه الأسئلة لاختيار الشركة المناسبة:

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

من المفيد الحصول على تقديرات لتكلفة تطوير تطبيقك (التكلفة المالية/ مدة التطوير) من أكثر من شركة ومقارنتها، فإذا حصلت على تقديرين مختلفين تمامًا، يجدر بك التحقق من كيفية قيام كل شركة بتقديراتها، وما الذي تشمله هذا التقديرات، دقق في التالي:

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

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

  • خامساً تحقق من تفاصيل العقد:

يجب التدقيق في تفاصل العقد بعناية، وتأكد من استشارة محام بشأنه، كما يجب أن يشمل العقد بعض التفاصيل الخاصة بصناعة البرمجيات مثل:

–  السرية: تأكد من أن العقد يحتوي على بند بشأن المعلومات السرية، يجب أن يلتزم شريكك بعدم الكشف عن أي معلومات حول مشروعك لم يتم نشرها للجمهور بعد.

–  الملكية الفكرية: ملكيتك للمشروع تعني أنك تمتلك كامل حقوق الملكية الفكرية له، ويجب تسليم كل المنتج بما يحتويه من أفكار وتصاميم أصلية، يجب أن يذكر ذلك في العقد، ويجب التدقيق في ذلك عند التسليم لكي نبتعد عن أي مشاكل قانونية مستقبلا.

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

–  الدفعة المقدمة: نوصي بألا تتجاوز الدفعة المقدمة تكلفة عمل الفريق لمدة شهر واحد، إلا في حالة وجوب تكبد الشريك نفقات كبيرة (على سبيل المثال للأجهزة أو التراخيص) في بداية المشروع، عندها يمكن أن يكون الدفع المسبق الأعلى معقولاً.

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

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

المرحلة الثانية: استكشاف المنتج – حدد ما تريد إنشاؤه ولمن ولماذا.

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

فيما يلي المجالات التي يجب التركيز عليها أثناء استكشاف المنتج:

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

حتى إن كنت تعرف الإجابات بالفعل، وتمتلك رؤية واضحة لتطبيقك، يجب عليك كتابة هذه الإجابات وتعميمها على الآخرين، تحدث مع أعضاء فريقك، ولأصحاب المصلحة، يجب أن تكون الأهداف التي نريد الوصول إليها واضحة للجميع، في مجال إدارة الجودة، لدينا “قاعدة 1: 10: 100”، التي تنص على أن الوقاية أرخص من التصحيح، والتصحيح أرخص من الفشل، لا تكلف عملية اكتشاف المنتج شيئًا مقارنة بإصدار تطبيق غير واضح وعديم الفائدة.

المرحلة الثالثة: تصميم (UI / UX) – حدد شكل تطبيقك وكيفية عمله.

يمكننا اختصار التعريف الرسمي لتجربة المستخدم (User Experience/UX)، بقولنا أنا تعني الطريقة التي يعمل بها التطبيق وكيف يتعامل المستخدمون معه، بينما نعني بواجهة المستخدم (User Interface/UI)، شكل التطبيق وكيف يظهر للمستخدمين.

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

تتضمن هذه المرحلة من عملية تطوير تطبيقات الأجهزة الذكية إنشاء الآتي:

  • خريطة رحلة المستخدم (User Journey Map): وهي عبارة عن خريطة توضح بشكل مرئي طريقة سير وإبحار المستخدم داخل التطبيق، حيث أنها تخبرنا بقصة تجربة المستخدم للتطبيق بكل خصائصه وخدماته.
  • المخططات الهيكلية :(Wireframes) ينشئ المصممون المخططات الهيكلية (Wireframes) والتي تمثل نموذجاً للعناصر المكونة للتطبيق بشكل رقمي ومرئي ومبسط، حيث تشمل هذه المخططاتالهيكل والتسلسل الهرمي والعلاقة بين العناصر التي يتكون منها التطبيق، يتم استخدام هذه المخططات لأنشاء نموذج أولي ديناميكي وتفاعلي وقابل للنقر للتطبيق، يمكنا القول إن هذا النموذج يحاكي النسخة الحقيقية للتطبيق.
  • التصميم (UI): يعمل المصممون على واجهة المستخدم (User Interface) على انشاء واجهة رسومية تمثل الشكل النهائي للمنتج بالإضافة إلى تمثيل للحركة باستخدام الفيديو وحركات انتقال الشاشة داخل التطبيق، يمكن لمن يراه أن يتخيل الشكل النهائي للمنتج قبل البدء في إنشائه بشكل فعلي.

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

 

 

المرحلة الرابعة: التجهيز للانطلاق – آخر الاستعدادات قبل بدء تطوير التطبيق.

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

هذه العناصر تعتبر ضرورية لبدء تطوير الهواتف الذكية:

  • إنشاء مستودع للتطبيق في GitHub أو أي خدمة استضافة أخرى على شبكة الإنترنت: هذا يعني إنشاء مساحة مخصصة لمشروعك على السحابة، حيث سيتم حفظ جميع إصدارات التعليمات البرمجية (App Code) الخاصة بك، بالإضافة إلى كل الوثائق الخاصة بالتطبيق، وأرشفتها بأمان.
  • التأكد من التكامل المستمر (Continuous Integration/CI): جب فحص كل جزء جديد من التعليمات البرمجية قبل دمجها في المشروع، قد يتم فحصه يدويًا، أو من خلال الاختبارات الآلية بواسطة منصات الاختبار المختلفة مثل: (Bitrise/CircleCI/Jenkins )، وذلك لضمان تكامل الأجزاء المضافة في كل دورة تطوير جديدة مع ما تم إنجازه مسبقا، بالإضافة إلى ذلك تشمل عملية التكامل المستمر عملية إطلاق النسخ المختلفة على (Google Play / Apple Store)، والسماح للمستخدمين باختبارها.
  • إعداد أداة توزيع النسخ التجريبية (beta distribution tool) على منصة التكامل المستمر: توجد أدوات للمساعدة على توزيع النسخ التجريبية للتطبيق ولجمع تقارير فشل المنتج والتعليقات عليه من المستخـــدمين، مثــل (App Centre / Fabric)، هذه التغذية الراجعة مهمة جدا وجوهرية في عملية تطوير التطبيق وتحسينه.
  • اختيار بنية الكود والمكتبات وأدوات التطوير: يختـــار المطـــــورون بنية الكود (Code Architecture) المناسبة لتطبيقك مثل ((MVC,MVP,MVVP, Clean Swift، إن بنية الكود لا يراها ويتعامل معها إلا المطورون، وهي ليست ظاهرة للمستخدم النهائي، مع ذلك فهي التي تحدد قوة وترابط أجزاء التطبيق، بالإضافة إلى ذلك، يختار المطورون أيضًا المكتبات وأدوات تطوير البرامج (libraries & SDKs) التي سيستخدمونها في بناء التطبيق، والاختيار الصحيح لهذه الأدوات يوفر كثيرا من الوقت والجهد ويرفع من الإنتاجية بشكل كبير.
  • إعداد المشروع في بيئة تطوير متكاملة (Integrated Development Environment/IDE): يقوم المطورون بإعداد التطبيقات البرمجية في بيئة تطوير متكاملة مناسبة، حيث تسهل هذا البيئات إضافة أي مكتبات خارجية أو أدوات لازمة لتطوير التطبيق، بالإضافة لمجموعة أخرى من الخصائص والتسهيلات التي يحتاجها المطور أثناء عمله، على سبيل المثال يتم استخدام (Android Studio)لتطبيقات Android ، أو(XCode) لتطبيقات iOS .
  • سجّل التطبيق في أي خدمات أخرى تحتاجها إذا لزم الأمر: إذا كان التطبيق الخاص بك سيستخدم بعض مكونات الطرف الثالث مثل: (خرائط جوجل، آليات الدفع)، فيجب تسجيله في هذه الخدامات والتأكد من تكاملها الجيد مع التطبيق، وعملها بالشكل المطلوب.

المرحلة الخامسة: تطوير التطبيق مع ضمان الجودة.

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

  • التنقيح وإعداد قائمة المهام (Refinement and Product Backlog): لنعمل بشكل منظم، يجب علينا إعداد قائمة بكل الأعمال التي نريد أنجازها بصورة واضحة ومرتبة ومحدثة بشكل دائم، يتم اعداد هذا القائمة قبل بداية دورة التطوير الأولى، ثم يتم مراجعتها في الاجتماعات الدورية لفريق التطوير.
  • التخطيط (Planning):تتم عملية التخطيط لكل دورة (Sprint)، في بدايتها وذلك في اجتماعات فريق التطوير الدورية، والتي لا يفترض أن تتجاوز مدتها ساعتان لكل دورة تطوير، حيث يتم تحديد الأشياء التي يجب القيام بها في هذه الدورة، وكيفية تقسيم المهام على فريق التطوير، ومعايير تسليم المهام، هذه الاجتماعات يجب أن تضم كلا من مشرف سكرم (Scrum Master/SM)، المطورون (Developers/Devs)، مالك المنتج (Product Owner/PO)، لنضمن بذلك موافقة جميع الأطراف على ما سنقوم به من أعمال.
  • كتابة التعليمات البرمجية (Coding):يقوم المطورون بكتابة التعليمات البرمجية وتنفيذ أجزاء التطبيق المخطط لها لكل دورة تطوير، ومن الجيد أن يمارس المطورون مراجعة التعليمات البرمجية التي يكتبونها، ليس فقط للتأكد من خلوها من الأخطاء، بل لإنتاج تعليمات برمجية واضحة ونظيفة، يمكن مراجعتها وإعادة استخدامها بكل سهولة، كما ينصح دائما بتطوير عادات برمجية موحدة بين أعضاء فريق التطوير كتوحيد هيكلية بناء التعليمات البرمجية، وطرق التوثيق والتعليق على أجزاء هذه التعليمات.
  • الاختبار وضمان الجودة (Testing and Quality Assurance): نعملية الاختبار وضمان الجودة هي الوسيلة الناجعة لمنع الأخطاء في التطبيقات التي يتم تطويرها، وهي تجنبنا المشاكل عند تسليمها للمستخدمين، لذلك فإن عملية ضمان الجودة يجب أن تكون مدمجة ومرافقة لكل مرحلة من مراحل التطوير، ومن أمثلة دمج عملية ضمان الجودة مع عمليات تطوير التطبيق:

1. كتابة التعليمات البرمجية (Coding): في هذه المرحلة يقوم المطور بكتابة التعليمات البرمجية، ويقوم أخصائي ضمان الجودة بكتابة الاختبارات الآلية.

2. طلب السحب (Pull Request): يخبر المطور أعضاء الفريق الآخرين عن إضافة جزء جديد من التعليمات البرمجية لينتبهوا لها ويتم اختبارها.

3. تنفيذ الاختبارات الآلية(Execution of automated tests): وهي الاختبارات المكتوبة للتحقق مما إذا كانت التغييرات والإضافات الجديدة للتطبيق لا تؤدي إلى تعطيل أي وظائف تم تنفيذها فيما سبق، وهي تتكون من:

  • تحليل الكود الثابت (Static Code Analysis): وفيه يتم فحص الكود بواسطة برامج خاصة مثل (Lint or Sonar)، حيث تتحقق هذه البرامج مما إذا كانت التعليمات البرمجية المكتوبة تتوافق مع المعايير التي اتفق عليها فريق التطوير.
  • تنفيذ اختبارات الوحدة (Executing Unit Tests): وهي تلك الاختبارات الآلية التي تتحقق مما إذا كانت كل وحدة(unit) من البرنامج تعمل بالطريقة المصممة لها.
  • تنفيذ اختبارات تكامل واجهة المستخدم (Executing UI Integration Tests): وهي الاختبارات الآلية التي تتحقق مما إذا كانت مكونات التطبيق متكاملة وتشتغل معاً بشكل صحيح.
  • اختبار الجهاز الافتراضي (Virtual Device Testing): يستخدم هذا الاختبار للعثور على أي أخطاء في توافق التطبيق مع النسخ المختلفة للبيئات ونظم تشغيل الهواتف، حيث يقوم على اختبار التطبيق في بيئة تحاكي الأجهزة الحقيقية.

4. مراجعة التعليمات البرمجية (Code Review): كل جزء من الكود يتم كتابته من أحد المطورين، لا تتم الموافقة عليه إلا بعد مراجعته من مطور واحد على الأقل من فريق التطوير.

5. النشر (Deployment): قبل نشر النسخ المعتمدة من التطبيق يتم تسليم إصدارات تجريبية (alpha/beta releases) إلى العملاء والمختبرين، للحصول على أي ملاحظات تتعلق بعمل التطبيق وأي أخطاء محتملة.

6. الاختبارات اليدوية: وفيها يتم اختبار التطبيق بناءً على مجموعة محددة من حالات الاستخدام (Use Cases)، تم اعدادها من متخصصي ضمان جودة البرمجيات.

7. قبول الكود الذي نجح في اجتياز كل الاختبارات السابقة.

تتكرر عملية الاختبار وضمان الجودة بكل خطواتها المبينة أعلاه، كلما تم إضافة ميزة جديدة أو جزء من التعليمات البرمجية للتطبيق.

  • المراجعة (Review): خلال مراجعة دورة التطوير، يتعاون فريق التطوير وأصحاب المصلحة في تقييم جميع المهام التي تم إنجازها في هذه الدورة، ومن الممارسات الرائعة أن يتم تجهيز التالي بعد كل دورة تطوير:
  • إصدار تجريبي للتطبيق (للتأكد من أن التطبيق الذي تم إنشاؤه يناسب التوقعات).
  • مراجعة مفصلة لما تم إنجازه.
  • معلومات حول الصعوبات أو العمل الإضافي الذي تم القيام به.
  • معلومات حول عدد ساعات عمل الفريق في المشروع أثناء دورة التطوير.
  • تحسين دورات التطوير القادمة (Sprint Retrospective): الاجتماع الاستعدادي، يتم عادة بعد الانتهاء من عملية مراجعة دورة التطوير التي انتهت، حيث يخطط فريق التطوير للطرق الممكنة لزيادة الإنتاجية وتحسين جودة المنتج، ويكون الهدف من هذا الاجتماع هو:
  • التحقق من كيفية سير آخر دورة تطوير فيما يتعلق بالأشخاص والعلاقات والعمليات والأدوات.
  • رصد ما سار بشكل جيد وتحديد التحسينات المحتملة.
  • ضع خطة لتنفيذ التحسينات.

المرحلة السادسة: نشر التطبيق.

عندما يكون الإصدار الأول من التطبيق الخاص بك جاهزًا، فقد حان الوقت لنشره، وذلك بتحميل تطبيق الأندرويد (Android)على متجر شركة جوجل (Google Play)، وتطبيق iOS على متجر آبل (Apple)، تعد عملية النشر أيضًا جزءاً من عملية تطوير التطبيق.

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

سيتم اختبار تطبيقك ومراجعته ما قمت بتحميله قبل اتاحته للجمهور.

المرحلة السابعة: ما بعد التطوير – متابعة التطبيق وتحسينه.

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

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

 

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *