IU y contenido para miles de millones de usuarios
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Asegúrate de que tu app ofrezca una interfaz de usuario interactiva que responda rápidamente a las entradas de los usuarios y, si es necesario, que compense un lanzamiento lento.
Asegúrate de que el diseño de tu app permita localizarla fácilmente teniendo en cuenta las variedades de idiomas: permite variar el espaciado, la densidad, el orden, el énfasis y la redacción. También controla que la fecha, la hora y otras unidades estén internacionalizadas y se muestren según la configuración del teléfono.
Interfaz de usuario rápida y responsiva
La percepción del usuario con respecto al rendimiento de la app está formada, en gran parte, por la capacidad de respuesta de la app. Por ejemplo, la interacción con el usuario y una visualización nítida son dos características importantes de una app con buen rendimiento. Aquí encontrarás sugerencias para optimizar estos y otros aspectos de la velocidad y la capacidad de respuesta de una app.
Respuesta táctil en todos los elementos compatibles
- La respuesta táctil incorpora sensación relacionada a la interfaz de usuario. Debes asegurarte de que tu app proporcione respuestas táctiles en todos los elementos compatibles a fin de disminuir al máximo la latencia percibida en ella.
- Una interacción responsiva incentiva una mayor exploración de la app, ya que crea reacciones oportunas, lógicas y placenteras en la pantalla tras una entrada del usuario.
La interacción responsiva eleva el valor de una app desde un servicio de suministro de información hasta una experiencia que comunica contenido por medio de varias respuestas visuales y táctiles.
- Si deseas obtener más información, consulta la capacitación de Android sobre la personalización de la respuesta táctil.
La IU siempre debe ser interactiva
- Las apps que no son responsivas cuando llevan a cabo actividades en segundo plano parecen lentas y disminuyen la satisfacción de los usuarios. Asegúrate de que tu app siempre tenga una IU responsiva, independientemente de la actividad en segundo plano. Para lograr esto, realiza las operaciones de red o de alta exigencia en un subproceso en segundo plano (mantén el subproceso de IU tan inactivo como sea posible).
- Las apps de Material Design representan cada operación en un solo indicador de actividad. De esta manera, usan una cantidad mínima de cambios visuales cuando la app carga contenido.
Evita bloquear diálogos con indicadores de carga.
- Se producen estados vacíos cuando una vista no tiene contenido para mostrar. Puede ser una lista sin elementos o una búsqueda que no muestre resultados. Evita los estados vacíos con contenido inicial, educativo o más coincidente.
Cuando estas opciones no resulten aplicables, muestra una imagen no interactiva y un eslogan de texto que le diga al usuario lo que verá cuando haya algo que mostrar.
- Si deseas obtener más información, consulta la capacitación de Android para mantener la capacidad de respuesta de tu app.
Apunta a 60 marcos por segundo en dispositivos de gama baja
- Asegúrate de que tu app siempre funcione rápido y sin problemas, incluso en dispositivos económicos.
- La superposición puede ralentizar considerablemente el funcionamiento de la app. Esto se produce cuando los píxeles se dibujan más de una vez por pase. Una imagen con un botón encima es un ejemplo de superposición. Si bien algunas veces no es posible evitar la superposición, debes minimizarla a fin de garantizar que la velocidad de fotogramas sea fluida. Para ello, ejecuta Depurar superposición de GPU en tu app.
- En los dispositivos Android, la pantalla se actualiza a 60 fotogramas por segundo (fps). Esto significa que tu app debe actualizar la pantalla en unos 16 milisegundos. Genera perfiles para tu app usando herramientas del dispositivo a fin de saber si la app no cumple con el promedio de 16 ms y cuándo sucede esto.
- En los dispositivos económicos, disminuye o quita las animaciones a efectos de aliviar la carga en la CPU y la GPU. Para obtener más información, consulta Cómo mejorar el rendimiento del diseño.
- Una jerarquía de vistas eficaz puede acelerar tu app sin aumentar su huella de memoria. Si deseas obtener más información, consulta Rendimiento y jerarquías de vistas.
Usa una pantalla de inicio en apps que tardan en cargarse
- La pantalla de carga es la primera experiencia que tiene el usuario con tu aplicación.
Si tu app muestra un lienzo negro al inicio, aumentará la percepción del tiempo de carga de los usuarios. Considera usar una IU con marcador de posición o una pantalla de inicio de la marca a fin de disminuir esta percepción.
- Una IU con marcador de posición es la transición de inicio más fluida y adecuada tanto para los inicios de la app como para las transiciones de actividades dentro de ella.
- Las pantallas de inicio de la marca proporcionan una exposición momentánea de ella, con lo cual se libera la IU para enfocarse en el contenido.
- La mejor forma de lidiar con inicios lentos es evitarlos. En la sección sobre el rendimiento del tiempo de inicio, encontrarás información que quizá te ayude a acelerar el tiempo de inicio de tu app.
Interfaz de usuario y prácticas recomendadas
- Material Design es un idioma visual que sintetiza los principios clásicos del buen diseño con la innovación y las posibilidades que ofrecen la tecnología y la ciencia. El objetivo de Material Design es desarrollar un solo sistema subyacente que permita una experiencia unificada en todas las plataformas y los tamaños de dispositivos. Considera usar componentes clave de Material Design de modo que los usuarios sepan cómo usar tu app de forma intuitiva.
- Los componentes listos para usar de Material Design están disponibles en la biblioteca de compatibilidad de Material Design. Se admiten estos componentes en Android 2.1 (nivel de API 7) y versiones posteriores.
Localización
- Los usuarios de tu app pueden vivir en cualquier parte del mundo y su lengua materna podría ser distinta de la tuya. Si no presentas tu app en un idioma que los usuarios puedan comprender, habrás perdido una oportunidad. Por lo tanto, debes localizar tu app para idiomas regionales clave.
- Si deseas obtener más información, visita la capacitación de Android sobre la compatibilidad con varios idiomas y consulta la lista de tareas de localización.
- A partir de Android 7.0 (nivel de API 24), el framework de Android pone a disposición un subconjunto de las API de ICU4J, que pueden ayudarte a localizar tu app en varios idiomas. Si deseas obtener más información, consulta API de ICU4J del framework de Android.
Recursos adicionales
Para obtener más información sobre este tema, consulta los siguientes recursos adicionales:
Más temas
Entradas de blog
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)"]]