آيفونآيبودآبل

سلسلة دروس برمجة تطبيقات الآيفون (6) الجزء الأول

آيفونآيبودآبل

في هذا الدرس سيكون بإذن الله إكمالا لما بدأناه سابقا، وبإمكانك مشاهدة المواضيع السابقة في حال فاتك شيئاً.

العناويين التي سوف نغطيها اليوم:

– تصميم تطبيقات آيفون.

– لماذا وكيف سنستخدم (Model-View-Controller).

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

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

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

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

نلاحظ أنه أيضا في معظم البرامج تعتمد على شكل محدد مشهور في ترتيب الشاشة بحيث كما نرى في الصورة أنه يكون في الأعلى Navigation Bar شريط الملاحة وفي الأسفل Tab Bar وهو شريط التبويب.

ففي شريط الـ Navigation Bar  نلاحظ أنه يحوي على توريث للمحتويات Hierarchy of content  بحيث أنه يربط النافذة الحالية بنافذة سابقة أيضاً يمكن أن يحوي على زر لتفاصيل أكثر لشيء المشار إليه في النافذة.

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

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

فالتصميم هو الذي يمثل الـ View بالنسبة للبرنامج وأما المعلومات فهي تمثل بالـ Model واللذي يربط بينهم هو Controller ونشاهد في الصورة مثال على سجل الأرقام.

لماذا وكيف سنستخدم (Model-View-Controller)

لماذا علينا استخدام الـ MVC ؟

عند البدء في البرمجة ثم الإنتقال إلى مرحلة متعمقة فيها فسيصبح الكود لديك كأنه “اسباقتي” أي انه متداخل بحيث يكون صعب جداً الرجوع اليه وفهمه فبالتالي سيصبح الصيانة وإضافة التعديلات أو تصحيح الأخطاء فعند استخدام الـ MVC سيكون التعامل مع الكود أسهل بكثير وأيضاً إعادة استخدام الكود في أماكن أخرى سيكون اسهل. لن يكون هناك كلاس واحدة متحكمة بالكل ولكن سيكون الكود مقسم وسطور الكود ستكون أقل بحيث التقسيم سيضمن لك اعادة استخدام نفس الكود في أماكن أخرى من البرنامج فقط كل ماعليك هو مناداة الكلاس.

كيفية عمل الـ MVC ؟

كيف للـ Objects التواصل وكيف لها أن تعرف عن بعضها البعض؟

Model:

ليس له إرتباط بالـ View أو الـ Controller ولا يجب أن يكون له علم بهما فهو يحوي المعلومات فقط وهي في الغالب قابلة لإعادة الاستخدام في أكثر من برنامج.

وحتى تتواصل مع View والـ Controller فإنها تستخدم طريقتين :

– Key-Value observing.

– Notification.

ففي الطريقة الأولى تظل مراقبة طول الوقت لأي تغيير في القيمة سواء من طريق الـ Controller أو من طريق الـ View.

والطريقة الثانية تعطي تنبيه لكل من الـ Controller والـ View بتغير القيمة وإرسالها للكل على شكل Broadcast.

view :

ليس عليها أن تكون على إطلاع وعلم بالـ Controller ولكن يجب أن تكون على إطلاع بالـ Object Model الذي تكون مرتبطة فيه. وفي الغالب تكون قابلة لإعادة الإستخدام.

يكون تواصلها مع الـ Controller بطريقتين:

– Target-Action.

– Delegation.

وتم شرحهم سابقا في الدروس السابقة.

Controller :

هو الرأس المدبر للبرامج ككل وهو الذي يدير عملية العرض وهو مايسمى بعقل البرنامج وهو على علم ودرايه بكل من الـ View والـ Model  ويقوم بعملية التحكم بالعمليات والعلاقات وتسلسل المعلومات. في الغالب يكون صعب إعادة استخدامة في برنامج آخر لأن لكل برنامج Controller مختلف عن الآخر.

هذه صورة توضح العلاقات بين الـ MVC:

بهذا نكون انهينا الجزء الأول من الدرس السادس.

دمتم بود 🙂

الوسوم

7 آراء على “سلسلة دروس برمجة تطبيقات الآيفون (6) الجزء الأول”

  1. السلام عليكم ورحمة الله وبركاته

    شكرا على هذا الشرح السلسل والمميز منذ بداية هذه السلسلة وفعلا ً يوما ً عن الاخر

    تزيد الرغبة في دخول عالم برمجة التطبيقات لدى الشخص ،

    خالص الود وفي انتظار تكملة هذه السلسلة .

  2. رائع جدا جدا ،، اتمنى عندم انقطاع هذه السلسلة رغم قله التعليقات هنا.

  3. اعجز عن الشكر
    وبانتضار بفارغ الصبر بقية الدروس

    وبصراحة تشكرو عاهالموضوع ..
    وانا اول موقع عربي (واعتقد الوحيد) اشوفو يهتم بشكل جدي بنشر المعرفة والمعلومات المهمة باللغة العربية

  4. السلام عليكم
    بارك الله فيكم ويعطيكم العافية
    أتمنى إضافة فيديو للدروس العملية

  5. شكرا روان علي جهودك ..

    حبيت امشي معك لكن عندي مشكله بالربط في درس الاول الربط في الفيو والايقونات في
    MainWindow.xib

    مثل
    connect the File’s Owner to the Tab Bar Application , select delegate

    حاولت البحث لكن الاجابات وصور تخدم اصدار ٣ من Xcode ولكنه تغير في 4
    هل بالامكان ان اجد الاجابه

    وجزاك الله خير

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

اترك تعليقاً

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