كيف تصمم تجربة استخدام رائعة (UX) ؟

تجربة الإستخدام (User eXperience) هى مدى رضا المستخدم على طريقة استخدام البرنامج، ومدى سهولة وسلاسة استخدام البرنامج (أو الموقع). تجربة الإستخدام هامة جداً ويمكن أن تصبح سبب رئيسى لزيادة الطلب على منتجاتك أو نقص الطلب على منتجاتك وكراهيتها من المُستخدمين. على سبيل المثال: تجربة الإستخدام هى أول سبب ﻹستخدام أجهزة شركة آبل.

تعريف تجربة الإستخدام باللغة الإنجليزية مع الترجمة للغة العربية

عرفنا أن تجربة المستخدم (أو تجربة الإستخدام) هى مدى سهولة استخدام المُنتج الإلكترونى او البرمجى أياً كان موقع أو تطبيق أو برنامج متكامل، ولكن ما الذى يجعل تجربة المُستخدم جميلة وسهلة وممتعة؟!

1. أسلوب تصميم الواجهة وأسلوب التسمية
(Consistent UI & Nomenclature)

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

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

2. تقليل جهد المُستخدم
(Reduce Cognitive Loads)

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

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

3. تدرج مستوى الإستخدام
(Simple but Advanced)

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

هذه الطريقة فى تدرج مستوى الإستخدام تساعد المستخدم الجديد فى البدء فى استخدام البرنامج من اليوم الأول لتعلم استخدام البرنامج. حتى لو لم يكن يعرف معنى الإعدادات المتقدمة التفصيليه فيمكنه أن يستخدم الإعدادات المبسطة المختصرة التى تظهر فى البداية. ويُمكنك أن أن تضع اختيارات فى قائمة البرنامج ﻹختيار "simple but advanced" بمعنى استخدام مبسط ولكن يُمكنك الوصول إلى الإعدادات المتقدمة والمتطورة الإحترافية بسهولة، وتضغط اختيار آخر وليكن "advanced user" وبذلك تظهر لك دائماً وبشكل افتراضى الإعدادات والخيارات المتقدمة الإحترافية لأنك مُستخدم محترف للبرنامج.

كلمات أخيره..

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

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

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

سيارات ذاتية القيادة فى 2019 😮

نعم، سيارات ذاتية القيادة فى 2019 ويمكنك أن تراها بنفسك فى أمريكا وروسيا. ولكن دعونا نعرف كيف تعمل السيارات ذاتية القيادة؟ وما الذى يُمكن أن تُستخدم فيه؟! ومَنْ جربها بالفيديو!.. فلنبدأ بطريقة عمل السيارة ذاتية القيادة ببساطة وبإختصار..

الذكاء الإصطناعى وتعلم الآلة

من أشهر التقنيات الحديثة التى ظهرت بقوة فى عام 2017 وازدهرت أكثر فى عام 2018 وتزداد ازدهاراً وانتشاراً فى عام 2019 وفى المستقبل هى تقنيات الذكاء الإصطناعى (Artificial Intelligence) وتعلم الآلة (Machine Learning) مما نتج عنه الكثير من التقنيات الذكية التى جعلت الآلة تستطيع القيام بمهام إنسانية جداً ولم يقدر أى كائن آخر القيام بها مثل الحوار والتحدث، واستنتاج قواعد الألعاب، والكثير من المهام الأخرى.

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

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

كيف تعمل السيارات ذاتية القيادة بالفيديو؟

شاهد هذا التقرير عن سيارة ذاتية القيادة فى روسيا على قناة اليوتيوبر الشهير ماركيز براونلى (Marques Brownlee) هنا 👇



بعد هذا الفيديو الرائع يُمكننا التأكد من أن إمكانية وجود سيارة ذاتية القيادة أصبحت أكيدة ﻷن هذه السيارات ذاتية القيادة تسير الآن فى شوارع روسيا!

مشاكل السيارات ذاتية القيادة

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


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

مواعيد المبرمجين..

فى حديث مع المدير التنفيذى لشركة كانونيكال (Canonical CEO) قال جملته الشهيرة "عندما تكون بصدد تغيير كبير، فإن الأمور تبدو كأنها تأخذ وقت أطول مما تعتقد.. ولكن بعدها تصير أسرع مما تعتقد!" هذه الجملة التى أذهلتنى أنا شخصياً ﻷنها تُلخّص كل المشاريع البرمجية بشكل عام.

When you have really a big change. It always seems to take longer to happen than you thought it would, and then go faster than you thought it could.
Mark Shuttleworth, Canonical CEO

بعد أن شاهدت هذا اللقاء الرائع مع مارك شتيل وورث (Mark Shuttleworth) المدير التنفيذى لشركة كانونيكال على قناة تليكوم تى فى (TelecomTV) على اليوتيوب قررت أن أكتب هذا المقال على الموقع لكى يزداد وعى كل متابعى موقع أبانوب حنا للبرمجيات إلى طبيعة العمل فى المشاريع البرمجية؛ حيث يبدأ التطوير ببطء شديد ويأخذ وقت طويل أكثر من اللازم.. ثم بعد ذلك يسرع التطوير والإنجاز بشكل لا تتوقع أن يحدث إطلاقاً.. وهذه طبائع الأمور فى مجال المشاريع البرمجية.

هذه ملاحظة واقعية هامة من مدير تنفيذى ﻹحدى أكبر الشركات فى مجال البرمجة ومجتمع الأكواد المصدرية (Open Source Community). شركة كانونيكال هى الشركة المطورة لنظام التشغيل الرائع أوبنتو المبنى على نواة لينكس الشهير.

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

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

استبدال ملف محدد بملف آخر فى كل المرات المذكور بها - سطر أوامر لينكس

يُمكنك أن تقوم ببساطة بتغيير كل المرات المذكور فيها ملف معين بالملف الآخر إن كان عدد مرات الإستبدال هو 5 أو 10 أو حتى 20 مرةً.. ولكن إن كان عدد المرات المطلوب استبدال الملف بملف آخر هو 50 مرة أو أكثر فستكون مهمة مملة ورخمة جداً. ولكن.. إن كنت من مستخدمى لينكس أو ماك، فإليك الحل الأفضل والأسرع!

يُمكنك استخدام سطر الأوامر (الطرفية) ﻹجراء هذا الإستبدال بشكل أوتوماتيكى كما يلى:
find . -print -type f -name apple.PNG -execdir cp orange.PNG {} \;
 هذا الأمر يقوم بهذه المهمة الكبيرة والمملة فى لحظات قصيرة! ولكن.. ماذا يفعل هذا الأمر بالتحديد؟!

find 👈 تقوم بالبحث عن شئ معين
. 👈 تقول لـ find أن يقوم بالبحث فى المجلد الحالى
-print 👈 تعنى أن يتم عرض ما يحدث
-type f 👈 تخبر برنامج find أن يقوم بالبحث عن ملفات فقط
-name 👈 تحدد اسم الملف المراد البحث عنه
-execdir 👈 لتنفيذ أمر معين داخل المجلد الداخلى
cp 👈 لعمل نسخ (copy) لملف فى مكان آخر
{} 👈 هذه الأقواس هى مجرد رمز لنتائج برنامج البحث find

يُمكنك أيضاً إعادة تسمية الملف بدلاً من استبداله عن طريق الأمر التالى:
find . -print -type f -name apple.PNG -execdir mv {} orange.PNG \;
حيث يقوم mv بإعادة تسمية كل الملفات (apple.PNG)  إلى (orange.PNG) كما ترى فى الأمر.

تعلم لغة HTML بالكامل فى يوم واحد - برامج كتابة اللغة

لغة HTML هى لغة خاصة بكتابة صفحات الويب. وتحديداً هى لغة تُكتب لتحديد عناصر الصفحة وتقسيماتها من عناوين إلى فقرات نصية، وصور، وفيديو، وعناوين فرعيه، وروابط،.. وغيرها الكثير. كلمة HTML هى اختصار لـ Hyper Text Markup Language أى لغة تخطيط النصوص.

امتداد ملف أو وثيقة HTML غالباً يكون .html أو .htm كما ترى فى بعض مواقع الانترنت، مثل الصورة التالية.

امتداد صفحة الويب بلغة html لتنسيق وتخطيط الصفحات

يمكنك أن تجرب كل الأكواد (السكربتات) التى سنكتبها اليوم على محرر لغات الويب من هنا، أو يمكنك إنشاء ملف نصّى بإمتداد .htm أو .html وتعرض الملف على المتصفح بسهولة!

إنشاء ملف html

إن لم يُعجبك محرر لغات الويب الذى يعمل أون لاين، فيمكنك أن تستخدم أحد برامج تحرير النصوص العادية (Plain Text Editor) أو بيئات البرمجة المتكاملة (IDE).

أمثلة على بيئات البرمجة المتكاملة (IDEs):

1. Sublime Text : يعمل على ويندوز، ماك، وأنظمة لينكس.
2. VSCode : يعمل على ويندوز، ماك، وأنظمة لينكس وهو من أفضل بيئات تطوير البرامج.
3. Atom : يعمل على ويندوز، ماك، وأنظمة لينكس، وأندرويد.
4. Brackets : يعمل على ويندوز، ماك، وأنظمة لينكس.
5. Code::Blocks : يعمل على ويندوز، ماك، وأنظمة لينكس.
6. NetBeans : يعمل على ويندوز، ماك، وأنظمة لينكس.
7. XCode : يعمل على نظام ماك فقط.

لاحظ! لا يوجد حتى الآن بيئات برمجة متكاملة (برامج) تعمل على الهواتف إطلاقاً.

أمثلة على برامج تحرير النصوص العادية (Plain Text Editors) والأكواد (Code Editors):

1. Notepad plus plus : يعمل على نظام ويندوز.
2. GEdit : يعمل على أنظمة لينكس، وماك.
3. Turbo Editor : يعمل على نظام أندرويد.

لاحظ! هناك الكثير من محررات النصوص العادية، ومحررات الشفرات البرمجية، وللحصول على برامج لكتابة الأكواد لأى نظام تشغيل تستخدمه لهاتف، أو تابلت، أو كمبيوتر (لابتوب، أو دسكتوب) فيمكنك البحث عن "code editor" أو "plain text editor" على جوجل أو متجر التطبيقات الخاص بنظام تشغيل جهازك وستجد العديد من البرامج المجانية والمدفوعة.

لماذا نستخدم برامج خاصة لكتابة الأكواد والبرامج؟! 🤔

البرامج الخاصة بتحرير النصوص مثل برنامج مايكروسوفت وورد (Microsoft Word) تعتبر rich text editor ومعناها برمجيات تحرير النصوص الغنية بالتنسيقات. لكننا عندما نكتب كود فإننا نريد أن نكتب الأسطر البرمجية فى شكل نص عادى دون أى تنسيقات فى اللون والخلفية وثقل الخط والصور وكل هذه الخصائص التى توفرها برامج تحرير النصوص التقليدية.

لكن فى محررات الشفرات البرمجية نحتاج إلى كتابة نصوص عادية دون أى تنسيق (Plain Text Editors) ومن الأفضل وجود خاصية الـ language syntax highlighter وهى خاصية تحول لون الكلمات فى الكود البرمجى إلى ألوان تدل على تصنيف معين ولكى تفهم لاحظ المثال التالى.

الفرق بين النص العادى plain text والنص ذو التظليل البرمجى html syntax highlighter
الفرق بين النص العادى plain text والنص ذو التظليل البرمجى html syntax highlighter

فى هذه الصورة تجد نفس الأسطر البرمجية مكتوبه فى النافذتين، ولكن أحدهما ملونه النص (HTML Syntax Highlighter) والأخرى مجرد نص عادى (Plain Text). المميز فى النص الملون ليس ألوانه الجميلة ولكن التسهيل على المبرمجين فى كتابة الكود حيث تجد الوسوم (tags) بلون معين، والنص العادى بلون آخر، والـ attributes بلون آخر، وقيم الـ attributes بلون آخر محدد،.. وهكذا فإن كل شئ له لون يدل عليه وذلك يسهل على المبرمج معرفة الخطأ فى الكلمات التى يكتبها (ﻷنها لن تكون ملونه بشكل صحيح إن كانت خطأ)، ومعرفة الكلمات المحجوزة للغة لكى لا يستخدمها فى تسميات المتغيرات مثلاً،.. وهكذا الكثير من التسهيلات فى هذه الإمكانيه البسيطة.

أما عن بيئات البرمجة المتكاملة (IDE) فهى بيئات برمجة متكامله 😂 أى أن بها كل ما تريد لكى تكتب كود وتختبره وتنشره. تحتوى البيئات المتكاملة لكتابة البرامج على إمكانية كتابة النص مع وجود بعض التسهيلات مثل التكملة التلقائية (Autocomplete) والتظليل النصى (Syntax Highlighter) والإستدعاء التلقائى (Library Importing) وتشغيل البرنامج أو الكود للتأكد أنه يعمل جيداً. كل هذه الإمكانيات وغيرها الكثير فى برنامج واحد يدخل تحت تصنيف بيئات البرمجة المتكاملة وذكرنا العديد من الأمثلة سابقاً عن بيئات البرمجة المتكاملة مثل VSCode.

والآن لنبدأ فى معرفة مما تتكون لغة HTML لتخطيط صفحات الويب!

وظيفة HTML هى تحديد بنية صفحة الويب، أى تحديد مخطط الصفحة وعناصرها. تذكر هذا جيداً فهذه هى وظيفة اللغة وهدفها وليس شيئاً آخر!

أكمل قراءة الشرح التفصيلى لمكونات HTML:
  • تكوين صفحة HTML
  • كتابة العناوين Headings
  • كتابة الفقرات النصية Paragraphs
  • انشاء الوصلات والروابط بين الصفحات Links
  • اضافة الصور لصفحات HTML
  • اضافة الأزرار إلى صفحات الويب
  • انشاء القوائم فى صفحات الويب HTML Lists
  • خصائص الوسوم HTML Tags Attributes
  • اضافة التنسيقات Styling
  • تنسيقات النصوص الأساسية Text Formatting
  • كتابة الإقتباسات Quotations
  • طريقة كتابة الملاحظات داخل الكود HTML Comment Tags
  • كتابة الجداول فى صفحات الويب HTML Table
  • أجزاء صفحات الويب HTML Blocks
  • HTML Classes & Id
  • تصميم صفحة ويب داخل صفحة ويب HTML Iframe
  • اضافة سكربتات جافاسكربت داخل صفحات الويب JavaScript in HTML
  • شرح مسار الملفات File Path
  • تصميم صفحات الويب HTML Layout
  • تصميم صفحة ويب تعمل على كل أحجام الشاشات Responsive Design
  • الرموز والكيانات Symbols & Entities
  • عناوين الويب Web Address URL
  • اضافة استمارة لصفحة الويب HTML Form
  • استخدام HTML Canvas
  • استخدام صور SVG
  • ما هى الـ XHTML وبلوجر Blogger CMS
  • اضافة واستخدام الميديا فى صفحات الويب (صوت، فيديو، ويوتيوب)
  • تحديد المكان الجغرافى HTML Geo-location
  • Drag & Drop
  • تخزين الويب HTML Web Storage
  • HTML Web Workers
  • رسائل وأحداث السيرفر SSE
لاحظ: سأقوم بكتابة كل موضوع من الموضوعات السابقة فى موضوع منفصل، انتظر المزيد من الموضوعات غداً إن شاء الله.

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

حل مشكلة عدم فتح الفيس بوك على الموبايل

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

الطريقة الأولى: حذف بيانات التطبيق من داخل الإعدادات

ادخلى إلى الإعدادات ثم إعدادات التطبيقات ثم اختر تطبيق الفيسبوك لايت أو فيسبوك الأزرق العادى، واضغط على مسح بيانات التطبيق أو مسح البيانات أو Clear Data أو Clear App Data.

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

الطريقة الثانية: تحديث تطبيق فيسبوك إن توفر له تحديث

أحياناً يكون حل بعض المشكلات فى التحديثات الجديدة فى التطبيقات. لذلك قم بتحديث تطبيق فيس بوك عن طريق متجر جوجل بلاى (Google Play Store). بعد تحديث التطبيق حاول استخدام تطبيق فيسبوك فإن كان مازال لا يعمل بشكل جيد فنفذ الخطوة التالية.

الطريقة الثالثة: الإبلاغ عن مشكلة فى تطبيق الفيسبوك (Report a Problem)

إن كنت تستخدم فيسبوك الأزرق العادى، فيمكنك الضغط على زر الرجوع أسفل الموبايل مع الإستمرار واختر "Report a Problem" ثم تختار نوع المشكلة لكى يقوم فريق التطوير فى الفيسبوك بحل المشكلة فى التطبيق لديك. حل المشكلة غالباً يأخذ أقل من يوم.

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

ويُمكنك أيضاً أن تفتح القائمة الرئيسية فى تطبيق فيسبوك وتختار Help and Support ثم الإبلاغ عن مشكلة Report a Problem وتختار نوع المشكلة كما ترى فى الصورة التالية.

اضغط على الثلاث شرط العرضية فى تطبيق فيس بوك لفتح قائمة الخيارات داخل التطبيق
اضغط على الثلاث شرط العرضية فى تطبيق فيس بوك لفتح قائمة الخيارات داخل التطبيق
اضغط على المساعدة والدعم أو Help & Support ثم اختر إبلاغ عن مشكلة أو report a problem
اضغط على المساعدة والدعم أو Help & Support ثم اختر إبلاغ عن مشكلة أو report a problem
اختر تصنيف المشكلة التى تواجهة فى تطبيق فيسبوك لكى يتم اصلاحها فوراً
اختر تصنيف المشكلة التى تواجهة فى تطبيق فيسبوك لكى يتم اصلاحها فوراً

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

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

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

معنى حروف E و T و K و V فى شروحات البرمجة الكائنية

عندما نرجع للـ documentation للغات البرمجة المختلفة والمنصات مثل لغة دارت (Dart Documentation) ومنصة أندرويد (Android Documentation) بلغة جافا ولغة كوتلن نجد بعض الرموز التى نحتاج أن نفهمها، وفى هذه التدوينة سنتكلم عن هذه الرموز الغير مفهومة.

معنى حروف E و T و K و V فى شروحات البرمجة الكائنية

مثل حرف الـ E الموجود فى الصورة السابقة فى توثيق لغة دارت (Dartlang Docs). هذه الرموز تُسمى tokens وسنفهمها مع بعض الآن.

هذه الـ tokens تُعتبر متغيرات لتحديد نوع المتغير الذى يمكن استخدامه فى هذه الأماكن. وهذه الطريقة منتشرة فى اللغات كائنية التوجة (object-oriented) والمكتوبة بطريقة استاتيكية (statically-typed) ويظهر ذلك فى موضوع الـ Generics.

الـ Generics تعطى إمكانية للـ Compiler أن يعرف نوع المتغير المُستخدم، ويعرف كيف يتعرف على نوع المتغير المُستخدَم.

الـ <E> يتعرف عليها الكومبيلر كـ List<String> وهى قائمة من المتغيرات النصية أى List of String. حيث أن الـ E تعتبر عن عنصر Element فى القائمة.

معنى كل الحروف المُستخدمه:
  • حرف الـ T يعنى نوع المتغير Type
  • حرف الـ E يعنى عنصر Element مثل List<E> قائمة عناصر
  • حرف الـ K يعنى Key مثل Map<K, V> وهى قائمة مزدوجة من المتغيرات وقيمها
  • حرف الـ V يعنى Value وهى قيمة الـ Key أو القيمة المُرجعة Return V

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