شرح الدرس
قد تكتشف أيضًا أن تصميمك مقيد بالمنصة المحددة. قد تجبرك الأذونات والإمكانيات والقيود الخاصة بنظام التشغيل أو الجهاز على اتخاذ قرارات تصميم معينة.
- نتاج التعلم ج
- الاعتبارات القانونية والأخلاقية
- بحث
- بحث
- وقفة للتفكير
- المهارات
- نتاج التعلم ج
- نتاج التعلم ج
- فكر في الأمان.
- نصائح
- موضوعات ذات صلة
- المهارات
- قم بتنزيل Java SDK من www.oracle.com
- نتاج التعلم ج
- هياكل البرمجة
- أوامر الإدخال والإخراج
- الكلمات المحجوزة والمتغيرات العالمية والثوابت والتعيين
- في كل إعلان نقول
- العوامل
- تسلسلات التحكم
- الدوال والإجراءات
- العناصر والفئات
- معالجة الأحداث
- التعليق التوضيحي للكود
- الاستفادة من إمكانات الجهاز
- التحقق من حالة الجهاز
- اتجاه الجهاز
- إنشاء ملف تنفيذي لجهاز مستهدف
- جهاز تمت محاكاته
- جهاز مادي
- مراقبة الجودة
- اختبار المستخدمين وملاحظات المستخدم
- الجدول 7.8 الأسئلة الكمية والنوعية
- مراجعة المهارات والمعارف والسلوكيات
- تمرين تقييمي 7.2
- التخطيط
- التنفيذ
- راما
- تركيز مهاراتك
نتاج التعلم ج
قد تكتشف أيضًا أن تصميمك مقيد بالمنصة المحددة. قد تجبرك الأذونات والإمكانيات والقيود الخاصة بنظام التشغيل أو الجهاز على اتخاذ قرارات تصميم معينة.
الاعتبارات القانونية والأخلاقية
يجب أن تؤخذ الاعتبارات القانونية والأخلاقية في الاعتبار كجزء من وثائق التصميم الخاصة بك، وخاصة تلك ذات الصلة في بلدك. في حالة تطوير تطبيقات للمستخدمين في بلدان أخرى، ستحتاج إلى مراعاة المتطلبات القانونية والأخلاقية المحددة لتلك الأسواق. من الضروري توفير إصدارات بديلة من التطبيق في مناطق مختلفة. الخصوصية مهمة للمستخدمين، لذلك يجب أن تفكر في كيفية قيام تطبيقك بجمع البيانات الشخصية والتعامل معها وتأمينها، وما إذا كان من الضروري للغاية جمع أنواع معينة من البيانات في المقام الأول. من الناحية الأخلاقية، هناك مخاوف بشأن البيانات التي يمكن مشاركتها من قبل الشركات التي تطور التطبيقات. يمكن استخدام البيانات الشخصية التي يتم جمعها للتأثير في قرارات التأمين أو الائتمان أو التعليم أو التوظيف. كما ذكرنا سابقًا، تعتمد الأجهزة المحمولة الحديثة عمومًا على الأذونات لمنع استخدام البيانات الشخصية للمستخدمين من قبل الشركات التي تمتلك التطبيقات دون موافقتهم، ولكن في النهاية، فإن الأخلاقيات التوجيهية للمطور هي الحماية النهائية. انتبه إلى المشكلات المحتملة مثل انتهاك حقوق الطبع والنشر، خاصة في ما يتعلق باستخدام الوسائط مثل الصور والفيديو والملفات الصوتية. على الرغم من أنه يمكن دمج أصول الوسائط بسهولة في تطبيق الجهاز المحمول الخاص بك، إلا أنها تحتفظ بحقوق الطبع والنشر لمنشئها الأصلي وتظل ملكيتها الفكرية وليس ملكك.
بحث
تعرف قواعد الممارسة الموصى بها لمطوري تطبيقات الأجهزة المحمولة في بلدك. يتضمن ذلك أفضل الممارسات حول ضمان خصوصية المستخدمين.
بحث
قم بزيارة موقع إلكتروني محلي في بلدك وتعرف التشريعات المتعلقة بحقوق النشر والتصاميم وبراءات الاختراع.
وقفة للتفكير
هل يمكنك شرح نتاج التعلم؟ ما العناصر التي وجدتها أسهل؟ تلميح: كيف تحدد متطلبات التصميم للتطبيق؟ توسيع الأفق: ما العناصر التي يجب تضمينها في وثائق الحل المقترح؟
ج) تطوير تطبيق جهاز محمول يستخدم وظائف الجهاز
- بمجرد مراجعة تصميم تطبيق الجهاز المحمول وفقًا لمتطلبات المستخدم وقبوله من قبل العميل، يمكنك بدء عملية التطوير المادي.
- هناك عدد من المراحل المختلفة للعمل من خلالها والتي ستتحدث لتطوير مجموعة مجزية من المهارات العملية والتقنية في تطوير تطبيقات الأجهزة المحمولة.
يتم تجميع تطبيقات الأجهزة المحمولة باستخدام أشكال متنوعة من المحتوى الرقمي، بما في ذلك كود البرنامج والتنسيقات المرئية وملفات الصوت والصور (الرموز والصور والرسوم المتحركة) والفيديو. قبل إنشاء تطبيق الجهاز المحمول الخاص بك، من الجيد إعداد هذا المحتوى، أي مواردك، بحيث تكون جاهزة لوضعها مباشرة في تطبيقك.
المهارات
- اختيار أدوات وأنظمة تكنولوجيا المعلومات المناسبة لتطوير حل تطبيقات الأجهزة المحمولة
- مهارات الإدارة الذاتية والتخطيط
نتاج التعلم ج

- من المحتمل أن تقتصر خيارات تطوير التعليمات البرمجية الخاصة بك على Android Studio أو Apple Xcode. ومع ذلك، هناك العديد من الخيارات المختلفة لتحرير الصور والصوتية، بما في ذلك الأدوات المساعدة عبر الإنترنت والبرامج المجانية والبرامج التجارية.
- اقترحت معظم عمليات التحرير سير عمل أفضل الممارسات من أجل تحقيق أفضل النتائج للأجهزة المحددة التي تستهدفها مع تطبيقك.
فكر في كيفية تأثير سمات الجهاز المختلفة على المحتوى الخاص بك عند استخدامه (انظر الشكل 7.14).

تشمل الأشياء التي يجب مراعاتها ما يلي:
- الاتجاه (أفقي أو عمودي أو كليهما)
- حجم الشاشة الفعلي (مثل سبع بوصات)
- دقة الشاشة (بالبكسل) (على سبيل المثال 1024 × 600)
- موارد التطبيق المتاحة (مثل ذاكرة الوصول العشوائي (مثل 1 غيغابايت (GB)))
- الصوت (على سبيل المثال، ما إذا كان الجهاز يدعم Dolby)
نتاج التعلم ج
اختر تنسيقات ملفات متوافقة لأصول الوسائط (انظر الشكل 7.15).

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

قم بتطبيق التحسين المعقول على:
- كود البرنامج (على سبيل المثال، إزالة الأقسام غير الضرورية من الكود المكتوب مسبقًا ('boilerplate') والتي توفرها بيئات التطوير المتكاملة (IDE) غالبًا ما تكون نقطة بداية مفيدة)
- تقليل أحجام ملفات أصول الوسائط باستخدام تقنيات الضغط مثل حفظ الصور كملفات .png أو .jpg أو تحديد التنسيق الأكثر كفاءة لنوع معين من المحتوى أو قص أجزاء من الملفات غير المطلوبة.
يجب أن تتذكر دائمًا أن هناك مفاضلة بين مستويات التحسين والجودة (اختر ما تفضل وستتأثر جودة المحتوى الخاص بك).
فكر في الأمان.
- قد تحتوي بعض البيانات على الأصول على معلومات حساسة.
- فكر في استخدام أدوات التشفير لحمايتها وحماية المستخدمين المستهدفين لتطبيقك من الهجمات الإلكترونية.
- عادةً ما يكون التشفير عبارة عن خوارزمية حسابية تعمل على تشويش البيانات الحساسة باستخدام مفتاح محدد من قبل المستخدم.
- إذا كانت البيانات مشفرة، فإنها تعتبر آمنة من متطفل الطرف الثالث لأنه لا يمكن إلغاء تشفيرها بشكل صحيح دون مفتاح محدد من قبل المستخدم.
نصائح
حافظ دائمًا على مفاتيح المستخدم (كلمات المرور) آمنة وقم بتغييرها بانتظام. حتى البيانات المشفرة قد تكون في خطر إذا لم تكن كلمات المرور آمنة.
ينطوي تصميم أي تطبيق هاتف محمول على أعمال تخطيط كبيرة، لا سيما في ما يتعلق بالتحقيق وفهم متطلبات المستخدمين المستهدفين وتعقيدات المنصات المستهدفة. يجب ألا يقتصر أي حل مقترح على سرد الإجراءات التي تحتاج إلى تنفيذها فحسب، بل يجب أن يتضمن تقديرًا لمقدار الوقت الذي تتطلبه كل خطوة للتطوير. إن تسجيل النتائج بدقة وشمولية خلال مراحل التصميم وإعداد المحتوى يعزز حل مشكلتك من خلال توفير أساس متين يمكن أن يبدأ التطوير الفعال عليه.

موضوعات ذات صلة
لمزيد من المعلومات حول الرسوم (الصور النقطية والمتجهة) راجع قسم تطوير ألعاب الحاسوب (مثال عملي)، الصفحة 49 في الوحدة 8: تطوير ألعاب الحاسوب.
سيأخذك هذا الجزء خلال عملية تطوير تطبيق الجهاز المحمول لتلبية متطلبات المحددة، وضمن جزء من هذه الرحلة، سيقدم لك المفاهيم الأساسية التي تشكل لغة برمجة الجهاز المحمول وبيئة التطوير المستخدمة في بنائها. يستخدم هذا المثال لغة برمجة Android Studio وبرمجة جافا. سيوضح لك المثال الآتي كيفية تصميم تطبيق بسيط لتحويل درجة الحرارة للتحويل بين القراءات بالدرجة المئوية والدرجة فهرنهايت. يمكن رؤية التصميم الأساسي في الشكل 7.17. لإنشاء هذا التطبيق، ستحتاج إلى تنزيل وتثبيت Java SDK ونسخة من Android Studio، وكلاهما متاح مجانًا. يجب تثبيت Java SDK أولًا، متبوعًا بنظام Android Studio.
المهارات
- مهارات التحليل واتخاذ القرار
- التواصل الكتابي الرسمي
- مهارات الإدارة الذاتية والتخطيط
- القدرة على العمل بطريقة قانونية وأخلاقية
| تحويل درجات الحرارة | |
|---|---|
| مئوية | [ ] |
| فهرنهايت | [ ] |
| [مئوية إلى فهرنهايت] | [فهرنهايت إلى مئوية] |
قم بتنزيل Java SDK من www.oracle.com
قم بتنزيل Android Studio من https://developer.android.com
نتاج التعلم ج

تعمل طريقة عرض تصميم Android Studio على مبدأ (السحب والإسقاط) البسيط، لذلك يجب أن تكون قادرًا على نقل TextView المحدد بحرية في النموذج الرئيس للتطبيق. يحتوي Android Studio على عدد من الفئات المختلفة التي يمكن استخدامها لوضع الكائنات على النموذج الرئيس للتطبيق. تظهر هذه في لوحة الألوان (Palette) على يسار لوحة التصميم المركزية. يتم تجميع الفئات في الأنواع الآتية:
- التخطيطات (Layouts) - التحكم في كيفية تنظيم محتويات النموذج (على سبيل المثال في جدول، في مصفوفة، في صفوف).
- الأدوات (Widgets) - أنواع مختلفة من عناصر النماذج المستخدمة لإنشاء واجهة التطبيق، مما يسمح للمستخدم بإدخال البيانات وإجراء التحديدات ومشاهدة المخرجات (مثل وحدات TextViews وButtons وCheckBox).
- حقول النص (Text Fields) - أنواع محددة من TextView لوظائف محددة (مثل كلمة المرور وعنوان البريد الإلكتروني ورقم الهاتف).
- الحاويات (Containers) - طرق تجميع عناصر النموذج معًا.
- التاريخ والوقت (Date & Time) - أنواع مختلفة من عناصر النموذج المتعلقة بتقويم الجهاز والساعة (مثل DatePicker وTimePicker وCalendarView وTextClock وAnalogClock).
- خبير (Expert) - أنواع معقدة من عناصر النموذج لمطور التطبيقات الأكثر تقدمًا.
- مخصص (Custom) - فئة متخصصة تم إنشاؤها بواسطة المطور أو أداة تابعة لجهة خارجية.
- عندما تقوم بسحب وإسقاط فئة من لوحة الألوان إلى النموذج، تقوم Java بإنشاء كائن صلب (مثيل لتلك الفئة) له اسم وخصائص (أشياء تصفه) وأساليب (أشياء يمكنه القيام بها).
- يقوم Android Studio أيضًا بإنشاء ملف XML (لغة الترميز القابلة للتوسيع) الذي يصف مظهر التطبيق في أثناء إجراء كل تغيير وإضافة؛ ويمكن عرض هذا في علامة تبويب Text أسفل الشاشة.
ستقوم الآن بحذف نص "Hello World!" TextView واستبدله بالمحتوى بناءً على تصميم تطبيق تحويل درجة الحرارة. يوضح الشكل 7.19 هذه الإجراءات. قم بتحرير خصائص النموذج بحيث يشبه التصميم الموضح في الشكل 7.19.

- يمكن تحرير كل كائن عن طريق تغيير خصائصه (لاحظ نافذة الخصائص Properties في الزاوية اليمنى السفلية من بيئة التطوير المتكاملة Android Studio).
- الخصائص تتحكم في المظهر المرئي لكل كائن وتتيح لك تعديل حجمه ونوع الخط واللون.
- من الممكن أيضاً النقر نقراً مزدوجاً فوق كائن النموذج لتحرير النص والمعرف الخاص به.

ربما لاحظت أن كل كائن في النموذج الرئيس لتطبيقك له اسم افتراضي (أو معرف)، على سبيل المثال TextView وTextView2 وEditText وEditText. على الرغم من فائدة ذلك، إلا أنه لا يولد كود برنامج قابل للقراءة، لذا من الجيد إعادة تسميتها بشكل معقول. قم بذلك عن طريق النقر المزدوج على كل كائن؛ سيظهر مربع حوار صغير يسمح لك بتغيير معرفاتهم، كما هو موضح في الشكل 7.20. تأكد من تطابق المعرفات الجديدة مع قائمة الكائنات، كما هو موضح في نافذة شجرة المكونات في الشكل 7.20.
هياكل البرمجة
توقف الآن وركز على لغة برمجة Java التي تستخدم في كتابة تطبيقات Android.
أوامر الإدخال والإخراج
- يتفاعل المستخدمون مع البرنامج من خلال الاستجابة للمطالبات الإدخال.
- سينتظر البرنامج إدخال المستخدم ويخزن المدخلات في المتغير المحدد.
- على سبيل المثال، يعرض أمر System.out.print الخاص بلغة Java على السطر 10 (كما هو موضح في الشكل 7.23) طلب تعليمات الشاشة و()keyboard.NextInt فوراً بعد انتظار الإدخال من لوحة المفاتيح المخزنة في الخيار.
موضوعات ذات صلة
لمزيد من التفاصيل حول لغة البرمجة، انظر الوحدة 4: البرمجة.
في Java، يتم تحقيق الإخراجات إلى الشاشة بنفس الطريقة، ولكن دون انتظار الضغط على المفاتيح الآتية. تستخدم اللغات الأخرى كلمات رئيسة مختلفة. في C++ يكون cin >> (للإدخال) أما cout << (للإخراج).
الكلمات المحجوزة والمتغيرات العالمية والثوابت والتعيين
تحتوي Java، مثل معظم لغات البرمجة، على عدد من الكلمات المحجوزة. الكلمات المحجوزة هي أجزاء أساسية من اللغة التي لا يمكنك استخدامها لتسمية الأشياء. توجد قائمة بكلمات Java المحجوزة الشائعة في الجدول 7.4.
الجدول 7.4 قائمة أبجدية بالكلمات المحجوزة في Java (بعضها خاص بإصدارات معينة)
| switch | new | for | continue | abstract |
| synchronized | package | goto | default | assert |
| this | private | if | do | boolean |
| throw | protected | implements | double | break |
| throws | public | import | else | byte |
| transient | return | instanceof | enum | case |
| try | short | int | extends | catch |
| void | static | interface | final | char |
| volatile | strictfp | long | finally | class |
| while | super | native | float | const |
- عندما تقوم بتسمية الأشياء، فإنك تقوم بإنشاء معرفات.
- هناك نوعان من المعرفات الأساسية - المتغيرات والثوابت.
- كما تشير الأسماء، تقوم المتغيرات بتخزين القيم التي يمكن لتطبيقك معالجتها.
- تقوم الثوابت بتخزين القيم التي لا يمكن تغييرها في أثناء تشغيل التطبيق.
مناقشة
غالباً ما تستخدم تطبيقات الأجهزة المحمولة العديد من المتغيرات والثوابت. تخيل إنشاء تطبيق سهل الاستخدام لحساب أجور وظيفة دوام جزئي. في مجموعة صغيرة، ناقش القيم التي سيتم تخزينها في المتغيرات والقيم التي ستكون ثوابت، مع التأكد من تبرير قراراتك.
من أجل الإعلان عن متغير، يلزم تحديد اسمه ونوع البيانات الخاص به. يجب على المطورين تحديد النوع الأنسب للبيانات التي يرغبون في تخزينها. يوضح الجدول 7.5 أنواع بيانات Java البدائية وأمثلة للبيانات المختلفة.
في كل إعلان نقول
القيمة = اسم متغير نوع البيانات
- يتم استخدام علامة = (أو عامل التعيين؛ انظر الجدول 7.5) لتخزين القيمة في المتغير المسمى.
- المرة الأولى التي تقوم فيها بذلك تسمى (التهيئة)؛ بعد ذلك تسمى ببساطة (المهمة).
- قد تغير المتغيرات قيمتها عدة مرات في أثناء تشغيل التطبيق الخاص بك.
المصطلح الرئيس
نوع البيانات - نوع البيانات التي نريد تخزينها في ذاكرة الوصول العشوائي للجهاز المحمول. يتطلب تخزين كل نوع من البيانات كميات مختلفة من ذاكرة الوصول العشوائي. على سبيل المثال، يختلف نوع البيانات المطلوب لتخزين حرف رقم عن النوع المستخدم لتخزين حرف وسيتطلب أحجاماً مختلفة من ذاكرة الوصول العشوائي. تختلف الأسماء الدقيقة لأنواع البيانات بين لغات البرمجة المختلفة، لذا احرص على اختيار اللغة الصحيحة.
الجدول 7.5 أنواع بيانات Java البدائية وميزاتها وأمثلة البيانات
| نوع البيانات | ما هي | الحد الأدنى - الحد الأقصى للنطاق (عند الحاجة) | القيمة الافتراضية | مثال عن إعلان |
|---|---|---|---|---|
| byte | عدد صحيح مكمل مكون من ثمانية بتات | 128- إلى 127 | 0 | byte age = 17; |
| short | عدد صحيح مكون من 16 بت ومميز بعلامة بنظام المكمل الثنائي | 32,768- إلى 32,767 | 0 | short qty = 10000; |
| int | عدد صحيح مكون من 32 بت ومميز بعلامة بنظام المكمل الثنائي | 2,147,483,648- إلى 2,147,483,647 | 0 | int largeqty = 100000; |
| long | عدد صحيح مكون من 64 بت ومميز بعلامة بنظام المكمل الثنائي | 9,223,372,036,854,775,808- إلى 9,223,372,036,854,775,807 | 0L | long vlargeqty = 100000L; |
| float | عدد عشري عائم بدقة أحادية مكون من 32 بت وفق معيار 754 IEEE | 0.0f | float wages = 2814.20f | |
| double | عدد عشري عائم بدقة مزدوجة مكون من 64 بت وفق معيار 754 IEEE | 0.0d | float salary = 28140.20d | |
| boolean | حالة منطقية ذات 1 بت؛ صحيح أو خطأ | صحيح أو خطأ | خطأ | boolean alive = true; |
| char | حرف Unicode مكون من 16 بت | \u0000 to \uffff | char initial = ‘A’; |
لمزيد من المعلومات حول ذاكرة الوصول العشوائي (RAM)، راجع قسم الذاكرة والتخزين، الصفحات 14-16 في الوحدة 8: تطوير ألعاب الحاسوب.
العامل - رمز خاص (أو رموز متعددة) يخبر البرنامج بإجراء عمليات حسابية أو ارتباطية أو منطقية محددة على بياناته. يجب استخدام العوامل بترتيب أولوية محدد (يصف ذلك ما يتم تنفيذه أولاً). قد تكون معتاداً على هذا المفهوم من استخدام BIDMAS (أو BODMAS) (الأقواس، الأسس/الترتيب القسمة، الضرب، الجمع والطرح) في الرياضيات.
- معظم لغات البرمجة لديها مفهوم المتغيرات المحلية والعالمية.
- أسهل طريقة للتفكير في ذلك هي تذكر أنه يمكن استخدام المتغيرات العالمية في أي مكان في كود التطبيق الخاص بك.
- تقتصر المتغيرات المحلية على استخدامها في مجموعة التعليمات البرمجية التي يتم الإعلان عنها فيها.
- ومع ذلك، تقوم Java بالأشياء بشكل مختلف قليلاً، كما سترى.
العوامل
العوامل هي رموز خاصة تستخدم لأداء مهام خاصة في معظم التطبيقات. إذا كنت بالفعل على دراية بالرموز مثل استخدام * للضرب، فأنت على دراية بالعامل الحسابي. تحتوي Java على عدد من هذه الأشياء ومن الجيد أن تتعرفها. يتم عرض العوامل الأكثر استخداماً في Java في الجدول 7.6. الجدول 7.6 العلميات الحسابية والمنطقية Java الشائعة، مع توضيح مجموعاتها والغرض منها
| العمليات الحسابية والمنطقية Java | الاسم | مجموعة المشغل | الغرض | ||
|---|---|---|---|---|---|
| + | جمع | كود حسابي | يضيف قيمتين مع إعطاء مجموعهما | ||
| - | طرح | كود حسابي | يطرح قيمة واحدة من أخرى مع إعطاء الفرق بينهما | ||
| * | ضرب | كود حسابي | يضرب قيمتين مع إعطاء حاصل الضرب | ||
| / | قسمة | كود حسابي | يقسم قيمة واحدة على أخرى مع إعطاء حاصل القسمة | ||
| ++ | إضافة | كود حسابي | يزيد القيمة بمقدار 1 | ||
| -- | نقصان | كود حسابي | يقلل القيمة بمقدار 1 | ||
| == | يساوي | نسبي | الاختبارات التي تتساوى فيها قيمتان | ||
| != | لا يساوي | نسبي | يختبر ما إذا كانت قيمتان غير متساويتين | ||
| < | أكبر من | نسبي | يختبر ما إذا كانت إحدى القيم أكبر من الأخرى | ||
| > | أقل من | نسبي | يختبر ما إذا كانت إحدى القيم أقل من الأخرى | ||
| >= | أكبر من أو يساوي | نسبي | يختبر ما إذا كانت إحدى القيم أكبر من أو تساوي قيمة أخرى | ||
| <= | أقل من أو يساوي... | نسبي | يختبر ما إذا كانت إحدى القيم أقل من أو تساوي قيمة أخرى | ||
| = | تعيين بسيط | تعيين | يقوم بتعيين قيمة لمتغير، لا يجب الخلط بينه وبين علامة المساواة المزدوجة التي تختبر المساواة | ||
| && | And | منطقي | يقوم بإجراء عملية AND المنطقية | ||
| Or | منطقي | يقوم بإجراء عملية Or منطقية | |||
| ! | Not | منطقي | يقوم بإجراء عملية Not منطقية |
بحث
لا يمكن إدراج جميع رموز تشغيل Java هنا. قم بزيارة قسم Java من www.tutorialspoint.com لمعرفة المزيد عن رموز التشغيل الأخرى الموجودة واجمع أمثلة على استخدامها.
تسلسلات التحكم
تذكر هياكل التحكم الثلاثة التي تم تقديمها سابقاً: التسلسل والاختيار والتكرار. عندما تقوم بإنشاء تطبيق هاتف محمول، يتم تمثيل التسلسلات بأي كتلة من الأكواد البرمجية لبرنامج Java.
يمكنك تجربة نماذج الأكواد البرمجية المعروضة بسرعة من خلال زيارة محول Java مجاني عبر الإنترنت. عند إدخال رمز البرنامج الذي تريد تجربته، ما عليك سوى النقر على خياري (التحويل البرمجي) و(التنفيذ). يمكنك حفظ الرمز الخاص بك للاستخدام في المستقبل. قم بزيارة www.tutorialspoint.com لتجربة ذلك واكتشاف تقنيات ترميز جديدة، على سبيل المثال عبارات if المتداخلة وعوامل التشغيل الشرطية.
التي تنفذ سطراً بعد سطر، مع عدم تفويت أي شيء أو تكراره. يتم إنشاء الاختيارات باستخدام إما if else وما عبارة switch. يعتمد النوع الذي تستخدمه على ما تحاول تحقيقه. تحتوي عبارة if else البسيطة على شرط يتم تقييمه إلى الصواب أو الخطأ. كما هو موضح في الشكل 7.21، يتم تنفيذ الإجراءات في الكتلة الأولى إذا كان الشرط صحيحاً، وإلا يتم استخدام الإجراءات في الكتلة الأخرى (الاختيارية). يظهر الناتج من عمليتي اختبار لكود Java هذا في الشكل 7.22.

``java 1 import java.util.Scanner; 2 3 public class NumberTest { 4 5 public static void main(String []args) { 6 7 int number1; 8 int number2; 9 10 Scanner keyboard = new Scanner(System.in); 11 System.out.print("Enter 1st number: "); 12 number1 = keyboard.nextInt(); 13 System.out.print("Enter 2nd number: "); 14 number2 = keyboard.nextInt(); 15 16 if (number1 == number2) { 17 System.out.println("Numbers are the same!"); 18 } 19 else { 20 System.out.println("Numbers are NOT the same!"); 21 } 22 } 23 } ``

الشكل 7.21 عبارة جافا if... else
- عبارة Java switch هي طريقة مفيدة للتحقق من القيم المتعددة في نفس الوقت، كما هو موضح في الشكل 7.23. من الممكن أيضاً إضافة فحص افتراضي في حالة عدم مطابقة الخيارات المدرجة.
- يتم عرض المخرجات من أربع عمليات اختبار لجملة switch في الشكل 7.24.

نصائح
العديد من لغات البرمجة الحديثة حساسة لحالة الأحرف وJava ليست استثناء. إذا كنت تواجه مشكلات في تجميع برامجك، فتحقق من أنك استخدمت الأحرف الكبيرة والصغيرة بشكل صحيح في التعليمات البرمجية. يعد فقدان الرموز المهمة مثل النقاط النصفية (التي تستخدم في Java لفصل العبارات) أيضاً خطأ شائعاً، حتى بالنسبة للمطورين ذوي الخبرة.
``java 1 import java.util.Scanner; 2 3 public class BankAccount { 4 5 public static void main(String []args) { 6 int option; 7 8 Scanner keyboard = new Scanner(System.in); 9 System.out.println("1 - Bank Balance, 2 - Account Query, 3 - Payments"); 10 System.out.print("Enter option 1, 2 or 3: "); 11 option = keyboard.nextInt(); 12 switch (option) { 13 case 1: System.out.println("You have chosen to see your balance"); 14 break; 15 case 2: System.out.println("You have chosen to make a query"); 16 break; 17 case 3: System.out.println("You have chosen to make a payment"); 18 break; 19 default:System.out.println("You have not chosen a correct option!"); 20 21 } 22 } 23 } ``

الشكل 7.23 جملة switch الخاصة بلغة Java
- يتم تمثيل التكرارات (تسمى أحياناً الحلقات) بواحدة من ثلاث بيانات شائعة (...for، while and do).
- الأشكال 7.25 إلى 7.27 تعرض حلقات for وwhile وdo...while في Java لمثال معين.
- الشكل 7.28 يوضح أن الإخراج من جميع الحلقات الثلاث متطابق.

``java 1 public class ForLoop { 2 3 public static void main(String []args) { 4 int counter = 0; 5 6 for (counter = 1; counter <= 5; counter++) { 7 System.out.println("BTEC International"); 8 } 9 } 10 } ``
الشكل 7.25 حلقة for في Java


يعد تطبيق تحويل درجة الحرارة بسيطاً نسبياً ويجب أن يستخدم بنية التحكم في التسلسل الأساسي. عندما تبدأ في تصميم تطبيقات أكثر تعقيداً، ستصبح التركيبات الأخرى (التسلسل والتكرار) مهمة، لذا تذكر عبارات if وswitch وfor وwhile الموضحة هنا.
على الرغم من أن الحلقات الثلاث تولد نفس المخرجات، إلا أنها عملت جميعاً بشكل مختلف. من الناحية المثالية، يمكنك استخدام الحلقات عندما تعلم أن الكود يحتاج إلى تكرار عدد ثابت من المرات. بينما قد يتم تشغيل الحلقات مرة واحدة (فهي مشروطة مسبقاً) وتقوم بذلك... بينما تتكرر الحلقات دائماً مرة واحدة على الأقل (يتم تكييفها لاحقاً). تتكرر الحلقات بناء على صحة حالة التحكم بها. في المثال الموضح في الأشكال 7.25 إلى 7.28، يكون شرط التحكم هو متغير العداد الذي له قيمة أقل من (أو تساوي) 5. عندما يصل العداد إلى 6، لا تكون الحالة صحيحة وتنتهي الحلقة.
الدوال والإجراءات
عنصر رئيس آخر لتطبيقات الجهاز المحمول هو مفهوم الدالة أو الإجراء. تعد الدوال والإجراءات السمات الشائعة في البرمجة الإجرائية أما في البرمجة كائنية التوجه، فيتم تمثيلها بشكل أساسي بالطرق التي تكون جزءاً من الفئة.
العناصر والفئات
تعد الفئات جانباً أساسياً لكل حل من حلول تطبيقات Android للأجهزة المحمولة تم إنشاؤوه باستخدام Java. يتم استخدام الفئات لتمثيل المكونات المادية التي تستخدمها لإنشاء تطبيق. على سبيل المثال، يمثل كل عنصر في لوحة Android Studio (مكونات الشاشة مثل النماذج والتخطيطات والأدوات وحقول النص) فئة مختلفة يمكنك استخدامها. بمجرد سحب الفئة إلى النموذج، يتم إنشاء شيء مثل ملموس لتلك الفئة، والذي نسميه كائناً. حاول التفكير في الفئة كنمط تصميم، أو شيء مثل قالب الجيلي أو الاستنسل أو قطاعة البسكويت؛ يمكن استخدام قالب جيلي واحد (الفئة) لصنع العديد من قطع الجيلي (الأشياء). يحتوي كل كائن على أساليب وخصائص مرتبطة ويمكنه التفاعل مع الكائنات الأخرى لتنفيذ مهمة. تستخدم التطبيقات التجارية مجموعة واسعة من الفئات، والتي قد يتم إنشاء العديد منها حديثاً بواسطة مطوريها.
الدالة أو الإجراء - هي مجموعة من التعليمات البرمجية، يفضل أن تكون بين 5 و 50 سطراً، لها غرض محدد واحد. على الرغم من كتابتها مرة واحدة فقط، يمكن تنفيذها عدة مرات خلال برنامج باستخدام "استدعاء الدالة"، مما يقلل من الحاجة إلى تكرار التعليمات البرمجية. في بعض لغات البرمجة، يتم استخدام مصطلحي "الدالة" و"الإجراء" بالتبادل، ولكن في البعض الآخر، هما مفهومان مختلفان للغاية: عادةً ما تعيد الدالة قيمة محسوبة، بينما يقوم الإجراء بمهمة واحدة قابلة للتعريف. كائنية التوجه - جافا، التي نستخدمها لإنشاء تطبيقات أندرويد، مصنفة ضمن لغات البرمجة الكائنية التوجه (OOP) القائمة على الفئات. في لغات البرمجة الموجهة للكائنات، يتم إنشاؤها من فئات يتم تصميمها عادةً على غرار (الأشياء) الواقعية. تعمل كل فئة كـ "تغليف" (أو احتواء) حالة الشيء (بياناته أو خصائصه) وسلوكياته (وظائفه أو طرقه) في كود البرنامج. موضوعات ذات صلة: تمت تغطية الكائنات والفئات بمزيد من العمق في الوحدة 4: البرمجة.
معالجة الأحداث
بمجرد إنشاء التصميم المرئي لواجهة تطبيقك وتسمية الكائنات بشكل معقول، فإن الخطوة الآتية هي وضع كود الخوارزميات التي تحسب المخرجات أو الإجراءات المطلوبة. في حالة تطبيق تحويل درجة الحرارة الخاص بنا، يعني هذا التحويل بين إدخال درجة الحرارة بالدرجات فهرنهايت إلى الإخراج بالدرجات المئوية والعكس صحيح. يتم تنفيذ هذه الحسابات عندما يضغط المستخدم على أحد الزرين اللذين أضفناهما إلى النموذج الرئيس للتطبيق. عندما يضغط المستخدم على زر (أو ينفذ أي إجراء يتعرف إليه نظام التشغيل) فإنه يقوم بتشغيل حدث معين - يسمى في هذه الحالة "حدث عند النقر". من أجل ربط مشغل الحدث بالحسابية، تحتاج إلى إنشاء معالج أحداث. هناك العديد من الطرق لتحقيق ذلك في Android Studio. تتضمن الطريقة الأكثر تقليدية تسجيل طريقة مستمع (a listener method) لكل زر يقوم بتشغيل طريقة معالج الأحداث المشفرة بشكل خاص. قم بإعادة زيارة قسم مستكشف المشروع، وقم بتوسيع (Java) ثم (MainActivity). يؤدي النقر فوق هذا إلى عرض كود برنامج Java، والذي سيتم إنشاؤه تلقائياً لك. ستحتاج إلى إدراج الكود المميز الموضح في الشكل 7.29 لإضافة معالجات الأحداث التي ستستجيب للمستخدم وتحسب المخرجات المرغوبة من أجل الحصول على مكونات الشاشة الصحيحة.
معالجة الأحداث - تصف عملية استخدام دالة مكتوبة خصيصاً أو طريقة من طرق الفئة لتنفيذ إجراءات محددة عند تفعيل حدث من قبل المستخدم أو النظام. على سبيل المثال، يمكن عرض نتيجة عملية حسابية عندما يتم الضغط على زر، أو عرض مؤشر "البطارية منخفضة" على الجهاز عندما ينخفض مستوى الشحن إلى حد معين.

تقوم الخطوط الجديدة (المميزة) الموضحة في الشكل 7.29 بتنفيذ إجراءين:
- تقوم باستيراد حزم كود Java المختلفة التي نحتاجها لتطبيقنا لتجميعها في برنامجنا.
- تطلب طريقتين للمستمع، واحدة لكل زر في نموذج التطبيق.
مهمتك الآتية هي إنشاء كود Java لطريقتي المستمع. سيتضمن كل منها معالج الأحداث الذي:
- يحصل على القيمة التي تم إدخالها في TextField في نموذج التطبيق
- يقوم بإجراء الحساب الصحيح
- يعيد النتائج إلى TextField الآخر في نموذج التطبيق.
يوضح الشكلان 7.30 و7.31 الكود الجديد لكل مستمع ومعالج. يجب ملاحظة أن كود Java لطريقة addButtonCtoFlistener مُعلّم لإظهار أفضل الممارسات.


فكّر ملياً
اقرأ الكود المشروح لطريقة addButtonCtoFlistener وقارنها بالكود المماثل، ولكن غير المعلق، في addButtonFtoClistener. هل يمكنك إضافة تعليقات مناسبة إلى طريقة addButtonFtoClistener لتحسين قابليتها للقراءة؟
التعليق التوضيحي للكود
كما رأيت، من المهم التأكد من توثيق الكود الخاص بك بشكل مناسب. يعني التعليق التوضيحي للكود بشكل أساسي إدراج تعليقات يمكن للمطورين قراءتها في جميع أنحاء التعليمات البرمجية. على الرغم من إزالة هذه التعليقات في أثناء عملية التجميع وبالتالي يتعذر الوصول إليها من قبل المستخدم، إلا أن إدراجها يعد ممارسة جيدة. الغرض من إضافة تعليقات توضيحية إلى كود البرنامج الخاص بك بتعليقات ذات مغزى هو تحسين قابلية قراءته والمساعدة في فهمه. يمكن أن يكون هذا مهماً بشكل خاص عندما يُطلب من المبرمجين إعادة تطوير التطبيقات التي كتبها آخرون في الأصل. يجب أن توضح تعليقاتك كيفية ارتباط التعليمات البرمجية بتطبيقاتها في العالم الحقيقي، وليس شرح صيغة الكلمات المحجوزة الفعلية المستخدمة. تختلف التقنيات المستخدمة للتعليق على كود البرنامج بين لغات البرنامج. تستخدم Java مزيجاً من التعليقات متعددة الأسطر والتعليقات أحادية السطر، ويظهر ذلك في الشكل 7.32. استخدام شائع آخر للتعليق التوضيحي هو (التعليق) على كود البرنامج الذي يريد المطور الاحتفاظ به ولكن ليس تجميعه، ربما في أثناء اختبار الأفكار الجديدة أو تحديد الكود الذي لا يعمل بشكل صحيح.
المهارات
- اختيار أدوات وأنظمة تكنولوجيا المعلومات المناسبة المستخدمة لتطوير حلول تطبيقات الأجهزة المحمولة.

استخدام المعرفات ذات الدلالة هو أيضاً جانب أساسي من توضيح الكود، حيث يُقال إن أسماء التمثيل التي اخترتها تقوم بتوثيق نفسها. يمكن لبعض حزم الأدوات والجهات الخارجية إنشاء وثائق صفحة الويب تلقائياً من كود البرنامج الخاص بك إذا تم تنسيقها بالطريقة الصحيحة. على سبيل المثال، تقوم أداة Javadoc من Oracle بتنفيذ هذه الوظيفة لـ Java.
الاستفادة من إمكانات الجهاز
- يدعم Android وApple مطوري تطبيقات الأجهزة المحمولة من خلال توفير واجهات برمجة التطبيقات (APIs) والأطر التي تسمح للتطبيقات بتلقي بيانات الحركة من الأجهزة المدمجة مثل الجيروسكوبات ومقاييس التسارع.
- يطلق Android على هذا إطار Sensors بينما تشير Apple إلى تنفيذها باسم إطار Core Motion.
واجهة برمجة التطبيقات (API) - تعمل كمكتبة والتي توفر للمطور المكتوبة مسبقاً والتي توفر للمطور إمكانية الوصول إلى أنظمة أخرى (مثل قواعد البيانات) أو نظام تشغيل الجهاز أو أجهزته الفعلية. الهدف من واجهة برمجة التطبيقات هو تسهيل عملية التطوير من خلال التخلص من (إخفاء) تعقيد أنظمة البرامج والأجهزة الموجودة تحتها. الإطار - مجموعة معينة من أدوات التطوير التي يمكن الوصول إليها عبر واجهة برمجة التطبيقات الخاصة بها.
التحقق من حالة الجهاز
جزء أساسي من برمجة تطبيقات الأجهزة المحمولة هو القدرة على الاستفسار عن حالة الجهاز. يقوم المطور بفحص أنواع مختلفة من الحالات، بما في ذلك الإحصائيات المهمة مثل الموقع الفعلي أو مستوى البطارية أو الاتجاه (أي ما إذا كان الوضع عمودياً أو أفقياً). على سبيل المثال، يستخدم Android فئة BatteryManager المفيدة، والتي توفر طريقة للاستعلام عن خصائص البطارية والشحن. على الرغم من أنك لست بحاجة إلى إجراء هذا النوع من الاستفسار في تطبيق تحويل درجة الحرارة التمهيدي، إلا أن القدرة على القيام بذلك تعد مهارة مهمة.
يمكن العثور على العديد من الأمثلة التي توفر رمز Java الضروري لتعرف حالة جهاز Android. قم بزيارة موقع www.tutorialforandroid.com الذي يوضح كيف يمكن التحقق من مستوى بطارية هذا الجهاز. تحقق من هذا الكود وقم بتكييفه ودمجه في مشاريعك الخاصة.
اتجاه الجهاز
يحتاج تطبيقك إلى الاكتشاف التلقائي لاتجاه الجهاز الفعلي الذي يعمل عليه (ومتى يتغير). يقوم بذلك عن طريق الاستعلام عن دوران الشاشة. يُستمد الدوران العادي للجهاز من شكل الشاشة: على سبيل المثال، إذا كانت الشاشة طويلة بشكل طبيعي (عمودي) وتم تدوير الجهاز جانبياً (أفقياً)، فستكون قيمة دورانه إما 90 أو 270 درجة اعتماداً على اتجاه عقارب الساعة (في اتجاه عقارب الساعة) وإما عكس اتجاه عقارب الساعة). بهذا توفر أندرويد فئة مناسبة تُدعى "Display" ضمن واجهة برمجة التطبيقات الخاصة بها لمساعدة المطورين في تحديد دوران الشاشة وحجمها ومعدل التحديث. يمكن للتطبيقات أيضاً فرض وضع التوجيه عن طريق تغيير دوران الجهاز تلقائياً ليناسب العرض الرأسي أو الأفقي، على الرغم من أن هذا لا يعتبر عموماً ممارسة جيدة.
إنشاء ملف تنفيذي لجهاز مستهدف
يمكنك نشر تطبيقك إما على جهاز تمت محاكاته وإما الجهاز الفعلي الذي استهدفنه.
جهاز تمت محاكاته
- يعد استخدام جهاز تمت محاكاته مفيداً لأنه يتيح لك اختبار توافق وأداء تطبيقك على أنواع الأجهزة التي قد لا تتمكن من الوصول الفعلي إليها، على سبيل المثال الهواتف الذكية والأجهزة اللوحية وأجهزة التلفزيون المختلفة والأجهزة التكنولوجية القابلة للارتداء.
- في Android Studio، يمكنك تحقيق ذلك من خلال إنشاء جهاز Android افتراضي (AVD).
- لإنشاء جهاز Android افتراضي (AVD)، من الضروري تحديد الأجهزة وإصدار نظام التشغيل المستخدم (Kitkat.4 X أو Lollipop.5 X أو 6.0 Marshmallow).
جهاز Android الافتراضي (AVD) - إصدار تمت محاكاته لبرنامج مادي معين، يعمل داخل نظام تشغيل مضيف مثل Microsoft Windows أو Apple OS X.
- يتيح لك Android Studio إنشاء ملفات جهاز Android افتراضي (AVD) متعددة ثم اختيار الجهاز الذي تريد استخدامه عند تطوير تطبيقك.
- يتيح لك ذلك اختبار تطبيقك بسهولة على العديد من الأجهزة المادية المختلفة.
- يمكن اختيار الجهاز من خلال تعريفات الأجهزة المتاحة، كما هو موضح في الشكل 7.33.

من الممكن بعد ذلك تحديد شكل الجهاز المستخدم لاستخدامها. وسيتم تثبيت بعض الصور في Android بالفعل ولكن يمكنك تنزيل صور أخرى بحسب الحاجة (كما هو موضح في الشكل 7.34). لتشغيل تطبيقك بنجاح باستخدام جهاز Android افتراضي (AVD)، يجب عليك استخدام صورة نظام متوافقة مع ميزات البرمجة أو الأجهزة التي استخدمتها. تتوفر كل صورة من صور النظام عادةً في خيارات المحاكاة الافتراضية المختلفة: x86 (32 بت) أو x64 (64 بت) أو ARM (آلة حوسبة التعليمات المخفضة المتقدمة). تعد آلة ARM بشكل عام الأبطأ ولكنها الأكثر استقلالاً عن خيارات المحاكاة الافتراضية المحددة في BIOS جهاز الحاسوب المضيف (نظام إخراج الإدخال الأساسي)؛ ويجب دائماً تعديل هذه الخيارات بحذر.

من الممكن بعد ذلك تخصيص خيارات متنوعة لتفضيلاتك الشخصية، كما هو موضح في الشكل 7.35.

يوضح الشكل 7.36 جهاز Android افتراضي (AVD) قيد التشغيل في نظام التشغيل Microsoft Windows 10.


جهاز مادي
تتمثل التقنية الأخرى لاختبار تطبيق Android الخاص بك في توصيل النظام الذي تقوم بتطويره عليه (على سبيل المثال Apple Mac أو Microsoft Windows PC) بهاتف ذكي أو جهاز لوحي أو تقنية يمكن ارتداؤها تعمل بنظام Android عبر كبل USB متوافق، كما هو موضح في الشكل 7.37. بالإضافة إلى تثبيت برنامج تشغيل Android Debug Bridge (ADB) الصحيح للنظام المضيف الخاص بك للتحدث إلى جهاز Android، غالباً ما يكون من الضروري تعديل بعض إعدادات الجهاز لتشغيل تطبيقك. يتضمن هذا عادةً تمكين خيارات USB أو تشغيل التطبيقات التي لم يتم تنزيلها من خلال Google Play، ويجب إجراؤها مرة واحدة فقط. يمكن أن تختلف إعدادات المطور هذه من جهاز لآخر، وقد يتم إخفاؤها عمداً لمنع التلف العرضي، لذلك يُنصح بالتحقق من الإجراء الصحيح مع الشركة المصنعة للجهاز قبل محاولة ذلك. الميزة الأساسية لتشغيل تطبيقك على الجهاز الفعلي المستهدف هي أنك ستحصل على الانطباع الحقيقي عن أدائه وسلوكه. تحتوي العديد من الأجهزة أيضاً على أدوات تصحيح أخطاء يمكن أن تساعد في الاختبار المباشر. بصفتك مطوراً، تحتاج فقط إلى تحديد جهاز Android المتصل (وليس الافتراضي) بمجرد النقر فوق زر (تشغيل) التطبيق الأخضر في Android Studio. إذا تم توصيل الجهاز بنجاح، فيجب إدراجه كجهاز قيد التشغيل، والذي يمكن اختياره بعد ذلك. بمجرد تحديده والنقر على زر موافق، سيبدأ Android Studio بعد ذلك في نقل كود Java الضروري إلى الجهاز عبر USB وبدء تشغيل التطبيق؛ العملية سريعة نسبياً. يوضح الشكل 7.38 أنه تم اختيار جهاز فعلي كمنصة مستهدفة ويوضح الشكل 7.39 تطبيق تحويل درجة الحرارة الذي تم نقله وتشغيله على جهاز فعلي.


تظهر لوحة المفاتيح الافتراضية للجهاز فعلياً في أثناء تشغيل التطبيق، مما يمنع المستخدم من إدخال الأرقام فقط. يحدث هذا بسبب قرار التصميم باختيار حقول النص (الرقم الموقع)). على الرغم من أن الاختبار السريع يبدو أنه يشير إلى أن التطبيق يعمل بشكل صحيح (100 درجة مئوية تعادل بالفعل 212 درجة فهرنهايت)، يجب أن تكون خطوتك التالية هي مراجعة جهودك من خلال خلال عملية تسمى مراقبة الجودة.
مراقبة الجودة
مراقبة الجودة هي عملية تستعرض معايير التصنيع المطبقة في أثناء الإنتاج. هدفها هو تقديم أفضل منتج أو خدمة للعميل. بالنسبة لتطبيق الجهاز المحمول، يعني هذا بشكل أساسي قياس مدى جودة تنفيذ التصميم في أثناء التطوير للجهاز (الأجهزة) المستهدفة. تعد مراقبة الجودة جزءاً لا يتجزأ من عملية تطوير تطبيقات الأجهزة المحمولة، مما يساعدك على تقييم المعيار الناتج الذي حققته عملية التطوير الخاصة بك، والأهم من ذلك، تحديد مجالات التحسين المحتملة. يجب إجراء مراقبة الجودة بدءاً من بدء الاختبار الرسمي. يتم عرض نظرة عامة على مراقبة الجودة في الجدول 7.7.
الجدول 7.7 مجالات الاهتمام بمراقبة الجودة والأسئلة والاعتبارات الرئيسة
| الاعتبار | السؤال | قم بمراعاة... |
|---|---|---|
| الكفاءة والأداء (وهذا ما يسمى تطبيق ملف التعريف)) | كيف يؤثر تطبيقك في موارد الجهاز المحمول؟ هل يمكننا تحديد أي مشاكل تؤثر على الأداء؟ | * استخدام تخصيص ذاكرة الوصول العشوائي |
| * استخدام وسائط تخزين الجهاز | ||
| * استخدام وحدة المعالجة المركزية (CPU)، لا سيما من حيث حصتها المئوية | ||
| * استخدام عمليات النظام والتطبيق التي قد تسلط الضوء على اختناقات الأداء | ||
| * استخدام وحدة المعالجة الرسومية (GPU)، خاصة عند عرض عناصر واجهة المستخدم (UI) | ||
| * استخدام البطارية، مقارنة استنزاف التطبيقات المماثلة | ||
| * قيود درجة الحرارة - يمكن إيقاف تشغيل الأجهزة المحمولة لحماية المكونات في أثناء فترات الاستخدام المكثف (خاصة عند إعادة الشحن) إذا أصبحت ساخنة جداً | ||
| قابلية الصيانة | ما مدى سهولة تعديل تطبيقك أو تحسينه؟ هل قمت ببرمجة التطبيق بشكل مناسب؟ | * معايير كتابة الكود الموصى بها |
| * مستويات وفائدة التعليق التوضيحي للكود | ||
| * هيكل وتنظيم الكود البرنامج الخاص بك | ||
| * قابلية التوسع في الحل الخاص بك | ||
| * استخدام بنيات البرمجة والدالات والإجراءات وأنواع البيانات والفئات وإطار كود الجهاز | ||
| قابلية النقل | ما الأجهزة المتوافقة مع تطبيقك؟ كيف يمكنك تحسين التوافق المحتمل؟ | * الأجهزة التي ستقوم بتشغيل تطبيقك بشكل صحيح |
| * الأجهزة التي لا تقوم بتشغيل تطبيقك (وتحدد السبب (الأسباب)) | ||
| * الأجهزة التي تشغل تطبيقك ولكن بها مشكلات بسيطة (وما الذي يمكن تعديله لتحسين قابلية النقل) | ||
| * أي مشكلات توافق غير متوقعة لم تكن تتوقعها | ||
| * ما إذا كانت قابلية النقل الفعلية لتطبيقك تلبي الأنظمة الأساسية المستهدفة في مرحلة التصميم (بما في ذلك إصدارات محددة من نظام التشغيل). | ||
| إمكانية الاستخدام | ما مدى سهولة تفاعل المستخدم مع تطبيقك؟ كيف يمكنك تحسين تجربة المستخدم؟ | * الالتزام بإرشادات الشركة المصنعة، مثل مبادئ ومعايير التصميم الموصى بها من Apple وAndroid |
| * التقاط تعليقات المستخدمين، سواء كانت جيدة أو سيئة | ||
| * تحديد إبداعات الإعجاب وعدم الإعجاب الشائعة | ||
| * طلب ملاحظات المستخدم للتحسين | ||
| * تحديد ما إذا كان التطبيق يلبي متطلبات المستخدم المستهدفة في مرحلة التصميم. |
لمزيد من المعلومات حول ذاكرة الوصول العشوائي العشوائي ووحدة المعالجة المركزية ووحدة معالجة الرسوم، راجع الوحدة 8: تطوير ألعاب الحاسوب. للتذكير بما هو المقصود بـ (واجهة المستخدم (UI))، راجع واجهة المستخدم، صفحة 9.
من الأفضل إجراء مراقبة الجودة من خلال المراجعة اليدوية (بدلاً من الآلية) ويمكن أن تكون عملية تقييم ذاتي. سيفحص الاختبار الرسمي التعليقات الواردة من مجموعة واسعة من المستخدمين.
يجب أن تساعدك عملية مراقبة الجودة على تقييم مستوى تطبيقك، سواء من حيث تصميمه أو تنفيذه. عند القيام بذلك، يجب أن يوفر رؤية حيوية لمستويات الأداء الخاصة بك، من خلال تسليط الضوء على المجالات المستهدفة التي تم تحقيقها وتلك التي تحتاج إلى بعض التحسين. تعد مراقبة الجودة عن طريق تقييم الذات مكوناً رئيساً في أي عملية تحسين الذات وهي ضرورية للترقي وفي النهاية، لتحسين الأداء في مكان العمل. فكر في تصميم وتنفيذ تطبيق تحويل درجة الحرارة. كيف يمكن تحسينه؟

- يُعترف بالاختبار في نطاق واسع باعتباره عملية أساسية تضمن أن أي تطبيق هاتف محمول تقوم بتطويره يلبي المتطلبات التي تم تحديدها في أثناء تصميمه، وأنه يعمل بطريقة دقيقة وموثوقة وقوية.
- يجب إجراء الاختبار في كل مرة يتم فيها تحديث التطبيق، لذلك يجب أن يُنظر إلى العملية على أنها دورية؛ يظهر هذا في الشكل 7.40.
يجب أن توضح خطط الاختبار خطوة بخطوة كيف تخطط لاختبار الهاتف المحمول الخاص بك. سيشمل ذلك تحديد العديد من (حالات الاستخدام). تحاول كل حالة استخدام سرد قصة تفاعل المستخدم مع تطبيقك (الناجح وغير الناجح) وعادةً ما تتضمن مزيجاً من:
- بيانات الاختبار التي يتم إدخالها
- العمليات التي يتم تنفيذها
- ترتيب العمليات التي يتم تنفيذها
- ردود المستخدم على مطالبات التطبيق الخاص بك.
يمكن العثور على بيانات الاختبار عادةً في واحدة من ثلاث حالات محتملة.
- عادي - البيانات ضمن النطاق المقبول الذي يدخله المستخدم عادةً.
- طرفي - بيانات غير محتملة عند حواف النطاق المقبول.
- خاطئ - البيانات التي لا يجب إدخالها (مثل النص بدلاً من الأرقام).
جدول التتبع - جدول يتم إنشاؤه بواسطة المطور من خلال اختبار الصندوق الأبيض، والذي يرسم التغييرات في متغيرات البرنامج عند تنفيذ حالة الاستخدام. سيساعد هذا مع النتائج المتوقعة (ما يحدث والنتائج الفعلية (ما يحدث بالفعل). يساعد مقارنة هذه النتائج المطور على تقييم ما إذا كان التطبيق يعمل بشكل صحيح.
هناك مفهوم آخر قد تواجهه كجزء من خطة الاختبار وهو فكرة اختبار الصندوق الأبيض. عادةً ما يتم إجراء اختبار الصندوق الأبيض بواسطة المطور من خلال جداول التتبع. يتم إجراء اختبار الصندوق الأسود من خلال رمز البرنامج الذي يرسم المتغيرات لرمز البرنامج ولا يحتاج إلى معرفة كيفية عمل التطبيق، بينما أنت، كمطور، مهتم فقط بالنتيجة التي يحصل عليها المستخدم. تشمل المجالات التي تحتاج إلى اختبار ما يلي:
- الوظيفة - يجب أن تعمل جميع الوظائف في التطبيق كما هو متوقع.
- القبول - يجب أن يكون التطبيق مناسباً للغرض: أي أنه يجب أن يلبي متطلبات المحددة.
- التثبيت - يغطي التثبيت الأولي للتطبيق (التنزيل من متجر التطبيقات) وتحديثه وإزالته في نهاية المطاف.
- الأداء - مدى جودة التطبيق وتأثيره على الجهاز (الأجهزة) المستهدف.
- سهولة الاستخدام - يجب أن يكون التطبيق سهل الاستخدام وأن يتقن مستخدموه واجهته بسرعة؛ غالباً ما يكون الحصول على استجابة إيجابية من المختبرين جزءاً أساسياً من نجاح التطبيق.
- التوافق - يجب أن يعمل التطبيق بشكل جيد باستمرار عبر النماذج والعلامات التجارية المختلفة للأجهزة.
اختبار المستخدمين وملاحظات المستخدم
يُنصح باختيار مستخدمي الاختبار الذين ليس لديهم علاقة بعملية التطوير. سيضمن ذلك التعبير عن ملاحظاتهم بصدق وبدون تحيز. يجب أن يتم اختيار المستخدمين من عينة سكانية عشوائية، مثالياً، ذات مستويات مختلفة من الخبرة التقنية. يجب جمع التعليقات من المستخدم. يمكن تحقيق ذلك باستخدام مجموعة متنوعة من تقنيات تقصي الحقائق بما في ذلك:
- الملاحظة المباشرة
- المقابلات الفردية
- مجموعات التركيز
- الاستبيانات أو الاستطلاعات
- تقارير الأخطاء الآلية التي تم إنشاؤها بواسطة التطبيق نفسه.
يمكن أن يكون جمع تعليقات المستخدمين مستهلكاً للوقت ومكلفاً، لذلك يجب استخدام التقنيات بحكمة. من الأساليب الشائعة (والفعالة من حيث التكلفة) تسجيل التعليقات من المستخدمين المؤكدين الذين يستخدمون متاجر التطبيقات عبر الإنترنت لأنها مجانية وغير مرغوب فيها عبر فيها (على سبيل المثال المثال من متجر تطبيقات Apple أو Google Play). تعد إطلاق إصدارات Alpha أو Beta المجانية (المبكر جداً) من تطبيق للمستخدمين المحددين أيضاً تكتيكاً مفيداً يجب مراعاته. من الناحية المثالية، ينبغي أن تكون الملاحظات عبارة عن مزيج من البيانات الكمية والنوعية التي يمكن تجميعها وتحليلها لإنتاج معلومات مفيدة وتحديد الأنماط والاتجاهات في تجربة المستخدم، والتي يمكن أن تسلط الضوء على العيوب ومجالات التحسين. البيانات الكمية - البيانات التي تحدد الكميات: أي أنه يمكن قياسها وكتابتها كأرقام أو نسب مئوية أو نسب. على سبيل المثال، (50 في المائة من المستخدمين لم يواجهوا أي مشاكل في أثناء استخدام التطبيق). البيانات النوعية - يتم تمثيلها بالأسباب والآراء والدوافع ويمكن استخدامها لاستكشاف (وفهم) البيانات الكمية. على سبيل المثال، (وجد المستخدمون صعوبة في التنقل في التطبيق وصعوبة قراءة النص على الأجهزة الصغيرة).
مناقشة
انظر إلى المثالين للنتائج الكمية والنوعية في الصفحة 40. هل يمكن العثور على رابط؟ هل يُفسر سبب تعرض 50 في المائة من المستخدمين لمشاكل عند استخدام التطبيق (نتيجة كمية) بالمشكلات التي تمت مواجهتها في التنقل وحجم النص (نتيجة نوعية)؟ ناقش في مجموعات صغيرة.
يوضح الجدول 7.8 الأسئلة الكمية والنوعية في الاستبيان.
الجدول 7.8 الأسئلة الكمية والنوعية
| السؤال الكمي 10 أ | كيف كانت واجهة مستخدم Myapp؟ | □ ضعيفة | □ مقبولة | □ جيدة | □ ممتازة |
|---|---|---|---|---|---|
| السؤال النوعي 10 ب | يرجى توضيح أسبابك... |
على سبيل المثال، إذا أشارت تعليقات المستخدمين إلى أنه في حين وجد البعض واجهة المستخدم (جذابة وذات نظام ألوان ساطع) ((بيانات نوعية))، ستجد أيضاً أن (60 في المائة من المستخدمين اعتبروا واجهة المستخدم ضعيفة ((بيانات كمية))، فمن الواضح أن هناك مشكلة في قابلية الاستخدام في تصميم التطبيق. إذا كانت البيانات الداعمة غير متوافرة، فقد يكون من الضروري العودة إلى هؤلاء المستخدمين والتحقيق في ردودهم غير الراضية للعثور على السبب الأساسي. يجب أن يسأل نهج تقصي الحقائق المتميز دائماً عن الأسباب وليس مجرد تسجيل نتيجة.
يتم توجيه عملية تحسين تطبيقك ومراجعته من خلال النتائج المجمعة للاختبار (أي من قبل المطور) وتعليقات المستخدم المستلمة. يجب أن تشمل القضايا التي يجب معالجتها ما يلي:
- التأكد من أن التطبيق يحتوي على جميع الوظائف المتفق عليها عليها في التصميم
- إصلاح أخطاء وقت التشغيل أو الأخطاء أو أعطال التطبيقات لتحسين الموثوقية
- إصلاح الحسابات والمخرجات غير الدقيقة
- تحسين الاستجابة
- تحسين واجهة المستخدم (على سبيل المثال، نظام الألوان، الخط، أحجام الخطوط، الصور)
- تحسين التنقل والحركة داخل التطبيق
- زيادة السرعة/الأداء
- تقليل استخدام التطبيق لموارد الجهاز من خلال زيادة تحسين الأصول أو ببساطة البرمجة بشكل أكثر كفاءة
- تحسين توافق التطبيق مع الموديلات/العلامات التجارية المختلفة للأجهزة المحمولة.
ستكون قد راجعت تطبيقك باستخدام تعليقات من زملائك المحترفين ومستخدمي الاختبار. غالباً ما تكون الآراء التي يعبر عنها الآخرون مفيدة جداً لأنها عادةً ما تكون غير متحيزة، مما يوفر حكماً محايداً حول تصميم تطبيقك وتنفيذه. تعلم كيفية الاستجابة للنتائج والاستفادة من التعليقات من مسيرتك. سيمكنك هذا من التفاعل بطريقة ناضجة تؤدي إلى تحسينات في كل من المنتج النهائي وقدراتك على حل المشكلات.
يجب تسجيل أي تغييرات يتم إجراؤها على التطبيق في سجل التغيير، وهو مستند مكتوب من قبل المطور يوضح بالتفصيل الإصلاحات والتحسينات التي تم إجراؤها لكل إصدار من التطبيق. يتم استخدام رقم الإصدار لتحديد كل إصدار متتالي بوضوح. يستخدم هذا نظام (major.minor)، على سبيل المثال:
- Myapp الإصدار 1.0 - أول إصدار رئيس.
- Myapp ver 1.1 - تحديث بسيط، قائمة الإصلاح (من تعليقات المستخدمين)، تحسين التوافق.
- Myapp ver 2.0 - تحديث رئيس، يتضمن وظائف إضافية.
- كما ترى، تزداد الإصدارات الثانوية عند إجراء تحديثات وإصلاحات صغيرة (على سبيل المثال، myapp ver 1.1).
- قد تخرج العديد من الإصدارات الثانوية بين التحديثات الرئيسة.
- في المقابل، تمثل التحديثات الرئيسة تغييرات كبيرة في وظائف التطبيق أو ميزاته أو رمزه (على سبيل المثال، myapp ver 2.0).
- قد تكون لديك أيضاً تجربة شخصية مع إصدارات التطبيقات اللاحقة التي تعرض أخطاء وأعطال جديدة تماماً. هذا أمر شائع جداً وخطر يواجهه كل مطور عند محاولة معالجة مشكلة محددة؛ في إصلاح الخلل، يقدمون أحياناً الآخرين.
من المهم أن تعكس وتقيم فعالية التطبيق الذي قمت بتطويره. تشجعك هذه المراجعة على طرح الأسئلة التالية على نفسك:
- ما مدى تلبية الحل لمتطلبات المستخدم المحددة في وثيقة التصميم؟
فكر في: كيف استوفى تطبيقك متطلبات المستخدم المستهدف، وما العناصر التي حققها والعناصر المفقودة أو غير المكتملة؟
- ما المشكلات التي نشأت في أثناء الاختبار ومراجعتك للتطبيق؟
فكر في: المشكلات التي كان يجب أن تتوقعها، وكيف كان بإمكانك منع حدوث هذه المشكلات، وتقنيات كتابة الكود أو ميزات الجهاز التي كان من الممكن استخدامها بشكل أفضل.
- كيف يمكن تحسين التطبيق لتلبية متطلبات المستخدم عن كثب؟
فكر في: الاختبار وملاحظات المستخدم والجوانب التي يمكن إضافتها أو مراجعتها.
- مع الإدراك المتأخر الذي اكتسبته من خلال الاختبار وتعليقات المستخدمين، إذا كنت ستكرر المهمة، فهل كانت هناك حلول بديلة كان ينبغي تنفيذها بدلاً من ذلك؟
فكر في: الاختبار وتعليقات المستخدمين والتصميمات البديلة في مستند التصميم الخاص بك.
مهما كانت النتيجة، هناك دائماً مجال للتحسين عند تطوير جهاز محمول. أحد الأجزاء الرئيسة لعملية التعلم (وتطوير تطبيقات أفضل) هو التعلم من أخطائك.
مراجعة المهارات والمعارف والسلوكيات
عند تنفيذ تطبيقات الأجهزة المحمولة، ستحتاج إلى إظهار مهارات ومعرفة وسلوكيات معينة، بما في ذلك:
- مهارات التخطيط والتسجيل
- تحديد الأهداف ذات الصلة مع الجداول الزمنية الزمنية
- التخطيط لكيفية ووقت جمع التعليقات من الآخرين
- مراجعة التعليقات من الآخرين والرد عليها
- المهنية، وآداب السلوك، ودعم الآخرين، والقيادة المناسبة في الوقت المناسب، والمساءلة
- تقييم الأهداف للحصول على رؤى حول أدائك.
فكّر ملياً
يحتاج مطورو تطبيقات الأجهزة المحمولة إلى تطوير وإظهار السلوكيات التي تناسب الطبيعة المهنية وتوقعات الصناعة. بعض السمات الرئيسة التي يجب عليك اعتمادها هي:
- احترام الآخرين، وخاصة عندما يقدمون لك ملاحظات أساسية
- التواصل بشكل مناسب مع الجمهور المستهدف، وتقديم وقبول الأفكار المفتوحة والصادقة
- امتلاك عقل متفتح للأفكار الجديدة والحلول البديلة وعدم الخوف من تجربة تقنيات جديدة لتحسين الحل أو تجربة المستخدم المستهدف
- الالتزام بالتحسين الشخصي، من خلال تطوير المعرفة الجديدة والمهارات العملية
- الرغبة في تحقيق التميز من خلال معايير حل المشكلات المطبقة وتطبيقات الأجهزة المحمولة التي تم إنشاؤها.
بمجرد اكتمال المشروع بالكامل، يجب عليك تقييم العملية بأكملها وتحديد أين يمكن إجراء تحسينات على التحقيق أو التصميم أو التنفيذ أو الاختبار.
وقفة للتفكير
هل يمكنك شرح نتاج التعلم؟ ما العناصر التي وجدتها أسهل؟ تلميح: وصف الخطوات العامة لتطوير تطبيق من تصميم. توسيع الأفق: ما الفرق بين مراقبة الجودة والاختبار الرسمي؟
- مهارات التحليل واتخاذ القرار
- التواصل الكتابي الرسمي
- اختيار أدوات وأنظمة تكنولوجيا المعلومات المناسبة لتطوير حلول تطبيقات الأجهزة المحمولة
- مهارات الإدارة الذاتية والتخطيط
- القدرة على العمل بطريقة قانونية وأخلاقية
تمرين تقييمي 7.2
B.P3, B.P4, B.M2, BC.D2, C.P5, C.P6, C.P7, C.M3, BC.D3
لقد طلب منك المدير المباشر قيادة مشروع تطوير تصميم وتنفيذ تطبيق هاتف محمول جديد يولد عروض أسعار لأسعار لستاني مساحات خضراء. يتضمن ذلك اختيار أسعار الخدمات المعنية (مثل البستنة والرصف والقص) وتكاليف السلع (مثل البذور والنباتات والشجيرات) التي سيتم تضمينها. يجب تحديد أسعار الخدمات المختلفة من الشركات المحلية على الرغم من أنه يجب أن يكون من السهل تكوينها في التطبيق نفسه. ومن المتوقع أيضاً وجود معدل قياسي لضريبة القيمة المضافة. بهدف عرض أفضل الممارسات لمطور مبتدئ تم تعيينه حديثاً، ابدأ بإنتاج تصميمات لتطبيق هاتف محمول يلبي المتطلبات التي حددتها. ضمن جزء من عملية التصميم الخاصة بك، يجب عليك مراجعة التصميم مع أقرانك لتحديد فرص التحسينات. قبل البدء في التطوير، يجب عليك تبرير وتقييم قرارات التصميم الخاصة بك لزميلك المبتدئ من خلال شرح كيفية تلبيتها للمتطلبات المحددة. بمجرد الموافقة على التصميم، يجب عليك إنتاج تطبيق الجهاز المحمول من تصميمك واختباره من حيث كفاءة الاستخدام وسهولة الاستخدام والاستقرار والأداء. يجب بعد ذلك مراجعة التطبيق العامل للتأكد من أنه يلبي المتطلبات المحددة ويتم تحسينه بحسب الضرورة. يجب إجراء تقييم نهائي لتطبيق الجهاز المحمول المحسن ومقارنته بمتطلبات العميل.
التخطيط
- ما المشكلة التي يُطلب مني حلها؟ هل أفهم احتياجات العميل؟
- ما مدى الثقة التي أشعر بها في قدراتي على إكمال هذه المهمة، من حيث التصميم والترميز؟
- هل هناك أي مجالات فنية أعتقد أنني قد أعاني منها؟ إذا كان الأمر كذلك، فهل أعرف كيفية البحث عنها؟
التنفيذ
- أعرف ما أفعله وما أريد تحقيقه.
- يمكنني التعرف من خلال التعليقات والمراجعة على أخطائي وتعديل تفكيري أو نهجي لإعادة نفسي إلى المسار الصحيح.
- أنا على استعداد لتحسين الحل بي بناءً على المتطلبات والتعقيبات المحددة.
راما
أعمل على تطبيقات الأجهزة المحمولة منذ حوالي عامين، وخلال هذا الوقت شاركت في تطوير العديد من التطبيقات المختلفة، بعضها لنظام Android والبعض الآخر لأجهزة Apple. على الرغم من اختلاف التقنيات واللغات تماماً، إلا أن مبادئ التصميم متشابهة جداً بشكل عام. على الرغم من أن تصميمي المفضل في بعض الأحيان يكون مثالياً، إلا أن هذا ليس هو الحال في كثير من الأحيان في كثير من الأحيان ويجب أن أراجع التصميم مع مدخلات كبيرة من زملائي. يجب أن أكون ناضجة بشأن هذا الأمر وأن أتلقى الاقتراحات بطريقة إيجابية على الرغم من أن ذلك غالباً ما يعني العودة إلى مرحلة التخطيط وتجربة أفكار أخرى. بالطبع، في بعض الأحيان لا أتفق مع زملائي ويجب أن أبرر القرارات التي اتخذتها في أثناء عملية التصميم. طالما يمكنني إثبات أن أفكاري تلبي المتطلبات المحددة، فلا بأس بذلك عادةً. في الأساس، أظهر إبداعي وأتحمل مسؤولية فردية عن جهودي، وهو أمر يشجعه زملائي علناً.
تركيز مهاراتك
من المهم أن تكون قادراً على مراجعة تصميمات تطبيقات الأجهزة المحمولة، سواء بشكل فردي أو مع الآخرين، للتأكد من أنها تلبي المتطلبات المحددة. إليك بعض الأسئلة لتطرحها على نفسك لمساعدتك في القيام بذلك:
- ما الآثار المترتبة على تنفيذ تصميم غير مدروس جيداً؟
- ما المتطلبات التي يجب تحديدها ومعالجتها من خلال التصميم الخاص بك؟
- كيف يمكنك تبرير القرارات التي اتخذتها في أثناء عملية التصميم؟
- كيف يمكنك تسجيل التعليقات التي تتلقاها من الآخرين وكيف يمكنك استخدامها لتحسين التصميم؟
- أخيراً، بالنسبة لكل متطلب قمت بتحديده، حدد كيف يمكنك التأكد من التعامل معه في التصميم والمراجعة.
تمت مراجعة تصميم تطبيق الجهاز المحمول الخاص بك من قبل الآخرين. ماذا سيحدث بعد ذلك؟
- إذا تم تلقي تصميم تطبيق الجهاز المحمول بشكل سيئ وتم تحديد أوجه قصور خطيرة في فهمك للمشكلة و/أو تصميمك، فستحتاج إلى إعادة النظر في المتطلبات الأصلية.
- إذا كان تصميم تطبيق الجهاز المحمول مقبولاً بشكل عام ولكن تم تحديد مشكلات تتعلق بعناصر تصميمك التي تعتمد على أجهزة أو منصات معينة أو وجود أجهزة مدمجة، فعليك العمل على تحسين أفكارك.
- إذا كان تصميم الجهاز المحمول مقبولاً جداً، فكر في أنه لا يزال هناك مجال للتحسين واطلب المشورة والتوجيه من الآخرين الذين قد يكون لديهم خبرة أكثر منك.