واجهة مستخدم ومحتوى لمليارات الأشخاص
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تأكد من أن تطبيقك يقدم واجهة مستخدم تفاعلية تستجيب بسرعة للبيانات التي يدخلها المستخدم، ويعوض التطبيق عن بطء التشغيل إذا لزم الأمر.
احرص على تصميم تطبيقك بحيث تتم ترجمته بسهولة من خلال استيعاب الاختلافات بين اللغات، بما في ذلك مراعاة المسافات والكثافة والترتيب والتركيز والصياغة. احرص أيضًا على إضفاء الطابع الدولي على التاريخ والوقت والوحدات الأخرى وعرضها وفقًا لإعدادات الهاتف.
واجهة مستخدم سريعة الاستجابة
يتكوّن الانطباع الذي يكوّنه المستخدم عن أداء التطبيق بصورة كبيرة من
استجابة التطبيق. على سبيل المثال، التفاعل مع المستخدم والشاشة الواضحة هما سمتان
مهمّتان في أي تطبيق ذي أداء جيد. يمكنك الاطّلاع هنا على نصائح حول كيفية تحسين هذه الجوانب وغيرها من الجوانب المتعلّقة بسرعة التطبيق واستجابته.
لمس الملاحظات من جميع العناصر القابلة للمس
- تضيف الملاحظات باللمس شعورًا ملموسًا على واجهة المستخدم. عليك
أن تتأكّد من أنّ تطبيقك يقدّم ملاحظات باللمس على جميع العناصر التي يمكن لمسها لتقليل
وقت استجابة التطبيق الذي يتم رصده قدر الإمكان.
- يشجِّع
التفاعل السريع الاستجابة على الاستكشاف بشكلٍ أعمق في التطبيق من خلال
إنشاء ردود فعل مبهجة ومنطقية في الوقت المناسب على الشاشة لإدخالات المستخدمين.
يعمل التفاعل السريع الاستجابة على الارتقاء بالتطبيق من خدمة توصيل المعلومات إلى تجربة التواصل باستخدام العديد من الردود المرئية واللمسية.
- للحصول على مزيد من المعلومات، يمكنك الاطّلاع على تدريب Android حول تخصيص الملاحظات والآراء باللمس.
يجب أن تكون واجهة المستخدم تفاعلية دائمًا
- تبدو التطبيقات التي لا تستجيب أثناء إجراء أي نشاط في الخلفية بطيئة
وتقلّل من رضا المستخدمين. تأكَّد من أنّ تطبيقك يتضمّن دائمًا واجهة مستخدم سريعة الاستجابة بغض النظر عن أي نشاط في الخلفية. يمكنك تحقيق ذلك من خلال إجراء عمليات على الشبكة أو أي عمليات صعبة الاستخدام في سلسلة محادثات في الخلفية، وإبقاء سلسلة محادثات واجهة المستخدم في وضع عدم النشاط قدر الإمكان.
- وتستخدم تطبيقات "التصميم المتعدد الأبعاد" أقل قدر ممكن من التغييرات المرئية عند تحميل المحتوى، وذلك من خلال تمثيل كل عملية باستخدام مؤشر نشاط واحد.
تجنَّب حظر مربّعات الحوار باستخدام
مؤشرات التحميل.
- تحدث الحالات
الفارغة عندما لا تحتوي طريقة العرض على محتوى لعرضه. قد تكون
قائمة لا تتضمّن أي عناصر أو عملية بحث لا تعرض أي نتائج. تجنَّب
الحالات الفارغة من خلال استخدام محتوى أوّلي أو تعليمي أو محتوى يطابق أفضل مطابقة.
في حال لم تكن هذه الخيارات قابلة للتطبيق، يمكنك عرض صورة غير تفاعلية وجملة ترويجية نصًّا
لإعلام المستخدم بما سيراه عند الإعلان عن محتوى معيّن.
- للحصول على مزيد من المعلومات، يمكنك الاطّلاع على تدريب Android حول الحفاظ على
استجابة التطبيق.
استهداف 60 لقطة في الثانية على الأجهزة منخفضة التكلفة
- احرص على تشغيل تطبيقك بسرعة وسلاسة دائمًا، حتى على الأجهزة
منخفضة التكلفة.
- يمكن أن يؤدي تجاوز الحد إلى إبطاء تطبيقك بشكل ملحوظ، ويحدث ذلك عندما يتم رسم وحدات البكسل أكثر من مرة لكل بطاقة. ومن الأمثلة على ذلك عندما يكون لديك
صورة مع وضع زر فوقها. لا مفرّ من بعض حالات تجاوز الحد الأقصى
ولكن يجب تقليلها لضمان ضبط عدد اللقطات في الثانية بشكل سلس. نفِّذ
تصحيح أخطاء
تجاوز وحدة معالجة الرسومات في تطبيقك لضمان تصغيره.
- تعيد أجهزة Android تحديث الشاشة بمعدّل 60 لقطة في الثانية، ما يعني أنّه على تطبيقك تحديث الشاشة خلال 16 مللي ثانية تقريبًا. يمكنك الملف الشخصي
لتطبيقك باستخدام الأدوات المتاحة على الجهاز لمعرفة ما إذا كان تطبيقك
لا يستوفي هذا المتوسّط الذي يبلغ 16 ملي ثانية.
- قلِّل أو أزِل الصور المتحركة على الأجهزة المنخفضة التكلفة لتخفيف أعباء
وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات في الجهاز. لمزيد من المعلومات، راجِع تحسين أداء التنسيق.
- يمكن للتسلسل الهرمي الفعّال لطريقة العرض تسريع تطبيقك بدون زيادة
مساحة ذاكرة التطبيق. لمزيد من المعلومات، يُرجى الاطّلاع على
الأداء
والعرض الهرمي.
استخدام شاشة تشغيل في وضع بطيء لبدء تشغيل التطبيقات
- شاشة التشغيل هي أول تجربة للمستخدم لتطبيقها.
يؤدي عرض لوحة فارغة أثناء تشغيل تطبيقك إلى زيادة إدراك
مدّة التحميل له، لذا ننصحك باستخدام واجهة مستخدم عنصر نائب أو شاشة تشغيل تحمل العلامة التجارية
لتقليل مدّة التحميل الملحوظة.
-
واجهة المستخدم النائبة هي أسهل عملية انتقال خاصة بالإطلاق، وهي مناسبة لكل من عمليات تشغيل التطبيقات وعمليات انتقال الأنشطة داخل التطبيق.
-
شاشات الإطلاق التي تحمل علامات تجارية توفر عرضًا لحظيًا للعلامة التجارية، ما يوفّر واجهة المستخدم للتركيز على المحتوى.
- إنّ أفضل طريقة للتعامل مع سرعات البدء البطيئة هي عدم تضمينها. الأداء في وقت الإطلاق: يوفر معلومات قد تساعدك في تسريع وقت إطلاق تطبيقك.
أفضل ممارسات واجهة المستخدم
-
التصميم المتعدد الأبعاد هو لغة مرئية تجمع المبادئ
الكلاسيكية للتصميم الجيد مع ابتكار التكنولوجيا والعلوم وإمكاناتها. يوفّر Material Design نظامًا أساسيًا واحدًا يسمح بتجربة موحّدة على مستوى الأنظمة الأساسية وأحجام الأجهزة. ننصحك باستخدام مكونات التصميم المتعدد الأبعاد الرئيسية حتى يعرف المستخدمون بشكل حدسي كيفية استخدام تطبيقك.
- تتوفّر مكوّنات "التصميم المتعدد الأبعاد" الجاهزة للاستخدام في مكتبة
دعم "التصميم المتعدد الأبعاد". هذه المكوّنات متوافقة في Android 2.1 (المستوى 7 من واجهة برمجة التطبيقات) والإصدارات الأحدث.
ترجمة
- قد يكون المستخدمون من أي مكان في العالم، وقد لا تكون لغتهم الأم هي. إذا لم تقدِّم تطبيقك بلغة يمكن
للمستخدمين قراءتها، فهذه فرصة ضائعة. وبالتالي، عليك أقلمة تطبيقك للّغات الإقليمية الرئيسية.
- للحصول على مزيد من المعلومات، يمكنك الانتقال إلى تدريب Android حول
دعم
لغات مختلفة والاطّلاع على
قائمة التحقق من الترجمة.
- بدءًا من الإصدار Android 7.0 (المستوى 24 من واجهة برمجة التطبيقات)، يوفّر إطار عمل Android
مجموعة فرعية من واجهات برمجة التطبيقات ICU4J التي يمكن أن تساعدك في ترجمة تطبيقك إلى لغات متعدّدة. لمزيد من المعلومات، يُرجى الاطّلاع على
واجهات برمجة تطبيقات إطار عمل ICU4J Android.
مراجع إضافية
لمعرفة المزيد من المعلومات عن هذا الموضوع، اطّلِع على المراجع الإضافية التالية:
مواضيع إضافية
مشاركات المدونة
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# UI and content for billions\n\nMake sure that your app offers an interactive UI that responds quickly to user input and, if necessary, compensates for a slow launch.\nEnsure that your app is designed to be easily localized by\naccommodating the variations between languages: allow for spacing, density,\norder, emphasis, and wording variations. Also make sure that date, time, and\nother units are internationalized and displayed according to the phone's\nsettings.\n\nFast and responsive user interface\n----------------------------------\n\n\u003cbr /\u003e\n\n\nThe user's perception of app performance is formed in large part by the app's\nresponsiveness. For example, interaction with the user and a crisp display are two important\ncharacteristics of a performant app. Here you can find tips on how to optimize these and\nother aspects of an app's speed and responsiveness.\n\n### Touch feedback on all touchable items\n\n- Touch feedback adds a tactile feeling to the user interface. You should ensure your app provides touch feedback on all touchable elements to reduce the perceived app latency as much as possible.\n- [Responsive interaction](https://material.io/guidelines/motion/material-motion.html) encourages deeper exploration of an app by creating timely, logical, and delightful screen reactions to user input. Responsive interaction elevates an app from an information-delivery service to an experience that communicates using multiple visual and tactile responses.\n- For more information, see the Android training on [Customizing Touch\n Feedback](/training/material/animations#Touch).\n\n### UI should always be interactive\n\n- Apps that are unresponsive when performing background activity feel slow and reduce user satisfaction. Ensure your app always has a responsive UI regardless of any background activity. Achieve this by performing network operations or any heavy-duty operations in a background thread---keep the UI thread as idle as you can.\n- Material Design apps use minimal visual changes when loading content by representing each operation with a single activity indicator. Avoid blocking dialogs with [loading indicators](https://material.io/guidelines/components/progress-activity.html).\n- [Empty\n states](https://material.io/guidelines/patterns/empty-states.html) occur when a view has no content to show. It might be a list that has no items or a search that returns no results. Avoid empty states using starter, educational, or best match content. When these options aren't applicable display a non-interactive image and a text tagline that tell the user what they'll see when there is something to display.\n- For more information, see the Android training on [Keeping Your App\n Responsive](/training/articles/perf-anr).\n\n### Target 60 frames per second on low-cost devices\n\n- Ensure that your app always runs fast and smoothly, even on low-cost devices.\n- Overdraw can significantly slow down your app---it occurs when the pixels are being drawn more than once per pass. An example of this is when you have an image with a button placed on top of it. While some overdraw is unavoidable, it should be minimized to ensure a smooth frame rate. Perform [Debug\n GPU overdraw](/tools/performance/debug-gpu-overdraw) on your app to ensure it's minimized.\n- Android devices refresh the screen at 60 frames per second (fps), meaning your app has to update the screen within roughly 16 milliseconds. [Profile\n your app](/studio/profile/dev-options-rendering) using on-device tools to see if and when your app is not meeting this 16 ms average.\n- Reduce or remove animations on low-cost devices to lessen the burden on the device's CPU and GPU. For more information, see [Improve\n layout performance](/develop/ui/views/layout/improving-layouts).\n- An efficient view hierarchy can speed up your app without increasing the app's memory footprint. For more information, see [Performance\n and View Hierarchies.](/topic/performance/optimizing-view-hierarchies)\n\n### Use a launch screen on slow to start apps\n\n- The launch screen is a user's first experience of your application. Displaying a blank canvas while launching your app increases the perception of its loading time, so consider using a placeholder UI or a branded launch screen to reduce the perceived loading time.\n- A[placeholder UI](https://material.io/design/communication/launch-screen.html#placeholder-ui) is the most seamless launch transition, appropriate for both app launches and in-app activity transitions.\n- [Branded launch screens](/guide/topics/ui/splash-screen) provide momentary brand exposure, freeing the UI to focus on content.\n- The best way to deal with slow start speeds is not to have them. [Launch-Time Performance](/topic/performance/launch-time) provides information that may help you speed up your app's launch time.\n\nUser interface best practices\n-----------------------------\n\n- [Material Design](https://material.io/guidelines/material-design/introduction.html) is a visual language that synthesizes the classic principles of good design with the innovation and possibility of technology and science. Material Design provides a single underlying system that allows for a unified experience across platforms and device sizes. Consider using key Material Design components so that users intuitively know how to use your app.\n- Ready-to-use Material Design components are available in the [Material Design Support\n library](/topic/libraries/support-library/features#material-design). These components are supported in Android 2.1 (API level 7) and above.\n\nLocalization\n------------\n\n- Your users could be from any part of the world and their first language may not be yours. If you don't present your app in a language that your users can read, it is a missed opportunity. You should therefore localize your app for key regional languages.\n- To learn more, visit the Android training on [Supporting\n Different Languages](/training/basics/supporting-devices/languages) and see the [localization checklist](/distribute/tools/localization-checklist).\n- Starting from Android 7.0 (API level 24), the Android framework makes available a subset of the [ICU4J APIs](http://userguide.icu-project.org/), which can help you localize your app into multiple languages. For more information, see [ICU4J Android Framework APIs.](/guide/topics/resources/icu4j-framework)\n\n\u003cbr /\u003e\n\nAdditional resources\n--------------------\n\nTo learn more about this topic, view the following additional resources:\n\n### Further topics\n\n- [Keeping your app responsive](/training/articles/perf-anr)\n- [Improving layout performance](/training/improving-layouts)\n- [Introduction to animations](/training/animation/overview)\n\n### Blog posts\n\n- [Writing for global audiences](https://medium.com/google-design/writing-for-global-audiences-d339d23e9612)"]]