UI et contenu pour des milliards d'utilisateurs
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Assurez-vous que votre application propose une UI interactive qui répond rapidement aux entrées utilisateur et, si nécessaire, compense un lancement lent.
Assurez-vous que votre application est conçue pour être facilement localisée en tenant compte des variations entre les langues : prévoyez des variations d'espacement, de densité, d'ordre, d'emphase et de formulation. Assurez-vous également que la date, l'heure et les autres unités sont internationalisées et affichées en fonction des paramètres du téléphone.
Interface utilisateur rapide et réactive
La perception des performances d'une application par l'utilisateur est en grande partie déterminée par la réactivité de l'application. Par exemple, l'interaction avec l'utilisateur et un affichage clair sont deux caractéristiques importantes d'une application performante. Vous trouverez ici des conseils sur la façon d'optimiser ces aspects et d'autres liés à la vitesse et à la réactivité d'une application.
Retour tactile sur tous les éléments tactiles
- Le retour haptique ajoute une sensation tactile à l'interface utilisateur. Vous devez vous assurer que votre application fournit un retour tactile sur tous les éléments tactiles afin de réduire au maximum la latence perçue de l'application.
- L'
interaction réactive encourage l'exploration approfondie d'une application en créant des réactions d'écran opportunes, logiques et agréables aux entrées utilisateur.
Une interaction réactive transforme une application, qui n'est plus un simple service de diffusion d'informations, en une expérience qui communique à l'aide de plusieurs réponses visuelles et tactiles.
- Pour en savoir plus, consultez la formation Android sur la personnalisation du retour haptique.
L'UI doit toujours être interactive
- Les applications qui ne répondent pas lors de l'exécution d'une activité en arrière-plan semblent lentes et réduisent la satisfaction des utilisateurs. Assurez-vous que l'UI de votre application est toujours réactive, quelle que soit l'activité en arrière-plan. Pour ce faire, effectuez les opérations réseau ou toute opération lourde dans un thread d'arrière-plan. Essayez de maintenir le thread d'UI aussi inactif que possible.
- Les applications Material Design utilisent des modifications visuelles minimales lors du chargement du contenu en représentant chaque opération avec un seul indicateur d'activité.
Évitez de bloquer les boîtes de dialogue avec des
indicateurs de chargement.
- Les états vides se produisent lorsqu'une vue n'a aucun contenu à afficher. Il peut s'agir d'une liste vide ou d'une recherche qui ne renvoie aucun résultat. Évitez les états vides en utilisant du contenu de démarrage, pédagogique ou correspondant le mieux.
Lorsque ces options ne sont pas applicables, affichez une image non interactive et un slogan qui indiquent à l'utilisateur ce qu'il verra lorsqu'il y aura quelque chose à afficher.
- Pour en savoir plus, consultez la formation Android sur Garder une application responsive.
Ciblez 60 images par seconde sur les appareils à bas prix
- Assurez-vous que votre application s'exécute toujours rapidement et de manière fluide, même sur des appareils à bas prix.
- La superposition peut ralentir considérablement votre application. Elle se produit lorsque les pixels sont dessinés plusieurs fois par passe. Par exemple, lorsque vous avez une image avec un bouton placé au-dessus. Bien qu'un certain niveau de surtirage soit inévitable, il doit être réduit au minimum pour garantir une fréquence d'images fluide. Effectuez un débogage des conflits GPU sur votre application pour vous assurer qu'ils sont minimisés.
- Les appareils Android actualisent l'écran à 60 images par seconde (fps), ce qui signifie que votre application doit actualiser l'écran en environ 16 millisecondes. Profilez votre application à l'aide d'outils intégrés pour déterminer si et quand votre application ne respecte pas cette moyenne de 16 ms.
- Réduisez ou supprimez les animations sur les appareils à bas prix pour alléger la charge du processeur et du GPU de l'appareil. Pour en savoir plus, consultez Améliorer les performances de la mise en page.
- Une hiérarchie de vues efficace peut accélérer votre application sans augmenter son empreinte mémoire. Pour en savoir plus, consultez Performances et hiérarchies des vues.
Utiliser un écran de lancement pour les applications qui mettent du temps à démarrer
- L'écran de lancement est la première chose que l'utilisateur voit de votre application.
Afficher un canevas vide lors du lancement de votre application augmente la perception de son temps de chargement. Pensez donc à utiliser une UI d'espace réservé ou un écran de lancement personnalisé pour réduire le temps de chargement perçu.
- Une
interface utilisateur d'espace réservé est la transition de lancement la plus fluide, adaptée aux lancements d'applications et aux transitions d'activités dans l'application.
- Les
écrans de lancement personnalisés permettent d'exposer brièvement la marque, ce qui permet à l'UI de se concentrer sur le contenu.
- Le meilleur moyen de gérer les vitesses de démarrage lentes est de les éviter. La section Performances au lancement fournit des informations qui peuvent vous aider à accélérer le temps de démarrage de votre application.
Bonnes pratiques concernant l'interface utilisateur
-
Material Design est un langage visuel qui associe les principes de base d'une bonne conception aux dernières innovations technologiques et scientifiques. Material Design fournit un système sous-jacent unique qui offre une expérience unifiée quelles que soient les plates-formes et la taille des appareils. Envisagez d'utiliser des composants Material Design clés pour que les utilisateurs sachent intuitivement comment utiliser votre application.
- Des composants Material Design prêts à l'emploi sont disponibles dans la bibliothèque Material Design Support. Ces composants sont compatibles avec Android 2.1 (niveau d'API 7) et versions ultérieures.
Localisation
- Vos utilisateurs peuvent venir de n'importe quelle partie du monde et leur langue maternelle n'est peut-être pas la vôtre. Si vous ne présentez pas votre application dans une langue que vos utilisateurs peuvent lire, vous passez à côté d'une opportunité. Vous devez donc localiser votre application dans les principales langues régionales.
- Pour en savoir plus, consultez la formation Android sur la compatibilité avec différentes langues et la checklist de localisation.
- À partir d'Android 7.0 (niveau d'API 24), le framework Android met à disposition un sous-ensemble des API ICU4J, qui peuvent vous aider à localiser votre application dans plusieurs langues. Pour en savoir plus, consultez
API du framework Android ICU4J.
Ressources supplémentaires
Pour en savoir plus à ce sujet, consultez les ressources supplémentaires suivantes :
Autres sujets
Articles de blog
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],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)"]]