إضافة خريطة تفاعلية للتطبيق - كتاب هندسة البرمجيات - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: إضافة خريطة تفاعلية للتطبيق

📚 معلومات الصفحة

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

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

يتعمق المحتوى في شرح مكون الترتيب الأفقي (Horizontal Arrangement Component)، حيث يتم توضيح كيفية ترتيب الكائنات أفقيًا ومحاذاتها رأسيًا في الوسط. يتم شرح خصائص الارتفاع والعرض للمكون، بما في ذلك الإعدادات مثل 'تلقائي' (Automatic) و'تعبئة المساحة' (Fill parent)، وكيف تؤثر هذه الإعدادات على تخطيط التطبيق.

يتم دعم الشرح النصي بلقطة شاشة مفصلة لبيئة تطوير MIT App Inventor، تظهر واجهة المستخدم لتطبيق 'Visit_SA_App'، مع إبراز المكونات الرئيسية مثل لوحة المكونات (Palette) ولوحة الخصائص (Properties). تشمل النقاط البارزة تكوين مكون التسمية (Label) وإعدادات الخصائص مثل الارتفاع والعرض ولون النص والرؤية، مما يوفر دليلًا مرئيًا لفهم سياق تطوير التطبيقات.

📄 النص الكامل للصفحة

شكل 3.29: إضافة مكون الوصف النصي Adding an Interactive Map to the Application إضافة خريطة تفاعلية للتطبيق سيتمكن المستخدمون من تصفح خريطة تفاعلية تعرض الموقع الدقيق للمعلم من الشاشة الخاصة به، وذلك ليتمكنوا من رؤية جميع معالم المدينة. ستُنشئ في البداية مجمعًا للزر الذي سيعرض الخريطة التفاعلية، ثم ستُضيف المكون. مكون الترتيب الأفقي Horizontal Arrangement Component باستخدام مكون الترتيب الأفقي، يتم ترتيب الكائنات أفقيًا على طول المحور الأفقي ومحاذاتها رأسيًا في الوسط. إذا تم تعيين خاصية الارتفاع أو العرض إلى Automatic (تلقائي)، سيتم تحديد الارتفاع الفعلي للمكون حسب ارتفاع أطول كائن بداخله. إذا كانت خاصية Height (الارتفاع) لمكون HorizontalArrangement (الترتيب الأفقي) فارغة، فسيكون الارتفاع 100. إذا تم تحديد خاصية Height (الارتفاع) أو Width (العرض) لمكون HorizontalArrangement (الترتيب الأفقي) بواسطة Fill parent (تعبئة المساحة) أو (البكسل)، فإن أي خاصية Width (عرض) محددة بواسطة Fill parent (تعبئة المساحة) ستشغل أيضًا أي مساحة لا تشغلها المكونات الأخرى. 146 وزارة التعليم 2025 - 1447 Ministry of Education --- VISUAL CONTEXT --- **SCREENSHOT**: MIT App Inventor Interface for Visit_SA_App Description: A comprehensive screenshot of the MIT App Inventor development environment, displaying the user interface for creating a mobile application. The interface is divided into several panels: a top menu bar, a project bar, a left-hand 'Palette' for UI components, a central 'Viewer' with a phone emulator, a 'Components' panel showing the app's structure, a 'Properties' panel for component configuration, and a 'Media' panel for asset management. The phone emulator shows a preview of the 'Visit_SA_App' with a map-related theme. Data: The screenshot shows the MIT App Inventor web-based IDE. The top bar includes project management options ('Projects', 'Connect', 'Build', 'Settings', 'Help', 'My Projects', 'View Trash', 'Guide', 'Report an Issue') and user account details ('English', 'qkhaled.b@gmail.com'). Below that, a project bar shows 'Visit_SA_App', 'AlMasmak', 'Add Screen', 'Remove Screen', 'Publish to Gallery'. The left 'Palette' panel lists UI components under 'User Interface' (e.g., 'Button', 'CheckBox', 'Image', 'Label') and other categories ('Layout', 'Media', 'Drawing and Animation'). The central 'Viewer' panel displays a phone emulator with 'Phone size (506,320)' and the app preview. The app preview shows 'Discover Saudi Arabia', 'Al Masmak', an image of a fort, and 'Text for Label1'. The 'Components' panel on the right lists the hierarchical structure of the app's UI elements ('AlMasmak', 'discover_label', 'VerticalArrangement1', 'title_label', 'image', 'description_label'). The 'Properties' panel allows configuration of the selected component ('description_label'), showing properties like 'BackgroundColor: None', 'FontBold: unchecked', 'FontSize: 14.0', 'Height: Fill parent', 'Width: Automatic', 'Text: Text for Label1', 'TextColor: White', 'Visible: checked'. The 'Media' panel lists uploaded image assets ('welcome-screen.png', 'riyadh_nav-img.png', 'jeddah_nav-img.png', 'al_masma_sized.jpg'). Key Values: App Name: Visit_SA_App, Project Name: AlMasmak, Phone Size: 506,320, Font Size: 14.0, Height property: Fill parent, Width property: Automatic, Text property: Text for Label1, TextColor property: White, Media files: welcome-screen.png, riyadh_nav-img.png, jeddah_nav-img.png, al_masma_sized.jpg Context: This visual provides a detailed overview of the MIT App Inventor environment, demonstrating the layout of its various panels and the types of information and controls available to a developer. It serves as a visual aid for understanding the context of app development instructions. **CALLOUT**: Callout 1: Label Component in Palette Description: A blue numbered '1' pointing to the 'Label' component within the 'User Interface' section of the 'Palette' panel on the left side of the App Inventor interface. This indicates the selection or identification of the Label component. Key Values: Label Context: Highlights a fundamental UI component used for displaying static text in the app. **CALLOUT**: Callout 2: description_label in Components Tree Description: A blue numbered '2' pointing to 'description_label' in the 'Components' panel on the right side of the App Inventor interface. This indicates that 'description_label' is the currently selected component in the app's hierarchy, whose properties are displayed in the 'Properties' panel. Key Values: description_label Context: Identifies a specific instance of a label component within the application's structure, showing how components are organized. **CALLOUT**: Callout 3: Height and Width Properties Description: A blue numbered '3' pointing to the 'Height' property (set to 'Fill parent') and 'Width' property (set to 'Automatic') under the 'Properties' panel for 'description_label'. These settings control the dimensions of the selected component. Key Values: Height: Fill parent, Width: Automatic Context: Illustrates how to configure the size and layout behavior of a UI component, demonstrating options like 'Fill parent' for dynamic sizing and 'Automatic' for content-based sizing. **CALLOUT**: Callout 4: BackgroundColor and FontBold Properties Description: A blue numbered '4' pointing to the 'BackgroundColor' property (set to 'None') and the 'FontBold' checkbox (unchecked) under the 'Properties' panel for 'description_label'. These properties control the background and font style of the text label. Key Values: BackgroundColor: None, FontBold: unchecked Context: Shows how to customize the visual appearance of a text label, including its background and text weight. **CALLOUT**: Callout 5: TextColor and Visible Properties Description: A blue numbered '5' pointing to the 'TextColor' property (set to 'White') and the 'Visible' checkbox (checked) under the 'Properties' panel for 'description_label'. These properties control the color of the text and whether the component is displayed on the screen. Key Values: TextColor: White, Visible: checked Context: Demonstrates further customization options for text color and the ability to control the visibility of a component during runtime.

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 4

سؤال مربع-1: باستخدام مكون الترتيب الأفقي، يتم ترتيب الكائنات أفقيًا على طول المحور الأفقي ومحاذاتها رأسيًا في الوسط.

الإجابة: الوسط

خطوات الحل:

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

سؤال مربع-2: إذا تم تعيين خاصية الارتفاع أو العرض إلى Automatic (تلقائي)، سيتم تحديد الارتفاع الفعلي للمكون حسب ارتفاع أطول كائن بداخله.

الإجابة: حسب ارتفاع أطول كائن بداخله.

خطوات الحل:

  1. **الشرح:** الفكرة في هذا السؤال تتعلق بكيفية تحديد حجم المكون تلقائيًا. عندما نعيّن خاصية مثل الارتفاع (Height) أو العرض (Width) إلى القيمة "تلقائي" (Automatic)، فإن البرنامج لا يفرض قيمة ثابتة. بدلاً من ذلك، يترك البرنامج للمكون أن يحدد حجمه بنفسه بناءً على محتوياته. في حالة الارتفاع، إذا كان المكون يحتوي على عدة كائنات بداخله (مثل أزرار أو نصوص)، فسيحتاج إلى أن يكون مرتفعًا بما يكفي لاستيعاب جميع هذه الكائنات. لذلك، لكي يضمن استيعاب كل المحتويات، سيقوم المكون تلقائيًا بضبط ارتفاعه ليكون مساويًا لارتفاع أطول كائن موجود بداخله. هذا يمنع تقطيع أو إخفاء أي جزء من المحتويات. إذن الإجابة هي: **حسب ارتفاع أطول كائن بداخله.**

سؤال مربع-3: إذا كانت خاصية Height (الارتفاع) لمكون HorizontalArrangement (الترتيب الأفقي) فارغة، فسيكون الارتفاع 100.

الإجابة: فسيكون الارتفاع 100.

خطوات الحل:

  1. **الشرح:** هذا السؤال يختبر معرفتنا بالقيمة الافتراضية لإحدى خصائص المكون. خاصية الارتفاع (Height) لمكون "الترتيب الأفقي" (HorizontalArrangement) يمكن أن تُعطى قيمة محددة بالبكسل، أو تُترك فارغة. عندما تكون الخاصية "فارغة"، هذا يعني أن المبرمج لم يقم بتعيين قيمة لها. في مثل هذه الحالات، تستخدم أنظمة البرمجة عادةً قيمة افتراضية (Default Value) لضمان عمل المكون بشكل صحيح حتى بدون إعدادات محددة. بالنسبة لهذا المكون المحدد، القيمة الافتراضية للارتفاع عندما تكون الخاصية فارغة هي 100 بكسل. هذه قيمة قياسية توفر حجماً معقولاً للمكون على الشاشة. إذن الإجابة هي: **فسيكون الارتفاع 100.**

سؤال مربع-4: إذا تم تحديد خاصية Height (الارتفاع) أو Width (العرض) لمكون HorizontalArrangement (الترتيب الأفقي) بواسطة Fill parent (تعبئة المساحة) أو (البكسل)، فإن أي خاصية Width (عرض) محددة بواسطة Fill parent (تعبئة المساحة) ستشغل أيضًا أي مساحة لا تشغلها المكونات الأخرى.

الإجابة: ستشغل أيضًا أي مساحة لا تشغلها المكونات الأخرى.

خطوات الحل:

  1. **الشرح:** لنفهم هذا السؤال المعقد قليلاً. يتناول سلوك خاصية العرض (Width) عندما يتم ضبطها على "تعبئة المساحة" (Fill parent) في مكون الترتيب الأفقي. الفكرة هنا هي أن خيار "تعبئة المساحة" يعني أن المكون سيحاول ملء كل المساحة الأفقية المتاحة له من العنصر الأب (مثل الشاشة أو مكون آخر). يضيف السؤال شرطًا: إذا كان هناك مكونات أخرى داخل نفس الترتيب الأفقي، فإنها ستشغل جزءًا من المساحة الأفقية المتاحة. في هذه الحالة، الخاصية المعينة بـ "تعبئة المساحة" ستجعل المكون يشغل المساحة المتبقية بعد أن تشغل المكونات الأخرى حصتها. أي أنها ستتمدد لتملأ أي فراغ أو مساحة غير مشغولة على المحور الأفقي. إذن الإجابة هي: **ستشغل أيضًا أي مساحة لا تشغلها المكونات الأخرى.**

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 6 بطاقة لهذه الصفحة

ما هو الغرض من إضافة خريطة تفاعلية في تطبيق زيارة السعودية؟

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

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

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

التصنيف: مفهوم جوهري | المستوى: سهل

ما هو مكون الترتيب الأفقي (Horizontal Arrangement) في MIT App Inventor؟

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

الشرح: هذا المكون من مكونات التخطيط (Layout) في App Inventor يساعد في تنظيم العناصر المرئية بطريقة منظمة.

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

التصنيف: تعريف | المستوى: متوسط

ماذا يحدث إذا تم تعيين خاصية الارتفاع أو العرض لمكون الترتيب الأفقي إلى Automatic (تلقائي)؟

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

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

تلميح: فكر في كيفية تحديد الحجم عندما يكون الإعداد تلقائياً.

التصنيف: مفهوم جوهري | المستوى: متوسط

ما هو الارتفاع الافتراضي لمكون HorizontalArrangement إذا كانت خاصية Height (الارتفاع) فارغة؟

الإجابة: سيكون الارتفاع 100.

الشرح: هذه قيمة افتراضية في بيئة MIT App Inventor تضمن أن المكون له حجم مرئي حتى لو لم يتم ضبطه.

تلميح: تذكر القيمة الرقمية الافتراضية لهذا المكون عندما لا يتم تحديد ارتفاع.

التصنيف: رقم/تاريخ | المستوى: سهل

ما الذي يحدث إذا تم تحديد خاصية Height أو Width لمكون الترتيب الأفقي بواسطة Fill parent (تعبئة المساحة)؟

الإجابة: فإن أي خاصية Width (عرض) محددة بواسطة Fill parent (تعبئة المساحة) ستشغل أيضًا أي مساحة لا تشغلها المكونات الأخرى.

الشرح: خاصية Fill parent تجعل المكون يتوسع ليشغل المساحة المتاحة في الحاوية الأم، مما يساعد في تصميم واجهات متجاوبة.

تلميح: فكر في سلوك المكون عندما يطلب ملء المساحة المتاحة.

التصنيف: مفهوم جوهري | المستوى: صعب

ما هي الخطوات الأساسية لإضافة خريطة تفاعلية للتطبيق حسب النص؟

الإجابة: 1. إنشاء مجمع للزر الذي سيعرض الخريطة التفاعلية. 2. إضافة المكون.

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

تلميح: ركز على التسلسل المذكور في بداية النص.

التصنيف: صيغة/خطوات | المستوى: سهل