IU e conteúdo para bilhões
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Seu app precisa oferecer uma IU interativa que responda rapidamente à entrada do usuário e, se necessário, compense uma inicialização lenta.
Ele deve ser desenvolvido de modo a facilitar a localização,
acomodando as variações entre os idiomas: permita variações de espaçamento, densidade,
ordem, ênfase e escolha de palavras. Garanta também que dados como data, hora e
outras unidades sejam internacionalizados e exibidos de acordo com as configurações
do smartphone.
Interface do usuário rápida e responsiva
A percepção do usuário sobre o desempenho é formada, em grande parte, pela capacidade de
resposta do app. Por exemplo, duas características importantes de um app com alto desempenho são a
interação com o usuário e uma exibição nítida. Aqui, você encontra dicas sobre como otimizar esses e
outros aspectos da velocidade e da capacidade de resposta de um app.
Feedback de toque em todos os itens que podem ser tocados
- O feedback de toque adiciona uma sensação tátil à interface do usuário. Seu app
precisa fornecer feedback de toque em todos os elementos tocáveis para reduzir
ao máximo a percepção de latência.
- Uma
interação responsiva (link em inglês) incentiva a exploração mais aprofundada de um app,
gerando reações rápidas, lógicas e agradáveis na tela quando o usuário executa uma ação.
Esse tipo de interação faz com que um app deixe de ser apenas um serviço que entrega informações
e passe a oferecer uma experiência em que há comunicação por diversas respostas visuais
e táteis.
- Para saber mais, acesse o treinamento do Android sobre como Personalizar
feedback de toque.
A IU precisa ser sempre interativa
- Apps que não respondem quando estão executando tarefas em segundo plano aparentam ser lentos
e diminuem a satisfação do usuário. A interface do seu app precisa ser sempre responsiva,
independentemente das tarefas em segundo plano. Isso pode ser feito realizando as operações de
rede ou qualquer operação pesada em uma linha de execução em segundo plano, mantendo a
linha de execução de IU o mais inativa possível.
- Os apps com Material Design usam mudanças visuais mínimas durante o carregamento de
conteúdo representando cada operação com um único indicador de atividade.
Evite o bloqueio de caixas de diálogo com
indicadores de carregamento (link em inglês).
- Os estados
vazios (link em inglês) ocorrem quando uma visualização não tem conteúdo para mostrar. Pode ser
que uma lista não tenha itens ou que uma pesquisa não retorne resultados. Evite
estados vazios usando conteúdo inicial, educacional ou de melhor correspondência.
Quando essas opções não forem aplicáveis, exiba uma imagem não interativa e um slogan de texto
que informem ao usuário o que ele verá quando houver algo para exibir.
- Para saber mais, acesse o treinamento do Android Como manter seu app
responsivo.
Defina como objetivo 60 quadros por segundo em dispositivos de baixo custo
- O app precisa ser sempre executado de forma rápida e fluida,
mesmo em dispositivos de baixo custo.
- O overdraw pode reduzir significativamente a velocidade do app. Isso ocorre quando os pixels
estão sendo desenhados mais de uma vez por transmissão. Um exemplo disso é quando você tem
uma imagem com um botão sobre ela. Embora não seja possível evitar alguns overdraws,
eles precisam ser minimizados para garantir um frame rate eficiente. Faça isso usando a opção
Depurar
overdraw da GPU no seu app.
- Os dispositivos Android atualizam a tela a uma taxa de 60 quadros por segundo (qps), o que significa que
seu app precisa atualizá-la em até cerca de 16 milissegundos. Crie um perfil
para seu app usando as ferramentas no dispositivo para ver se o app não está
atingindo essa média de 16 ms e quando isso ocorre.
- Reduza ou remova animações em dispositivos de baixo custo para diminuir a sobrecarga da
CPU e da GPU do dispositivo. Para saber mais, consulte
Melhorar
o desempenho do layout.
- Uma hierarquia de visualização eficiente pode deixar o app mais rápido sem aumentar a
quantidade de memória exigida. Para saber mais, consulte
Hierarquias de
desempenho e visualização
Usar uma tela de inicialização lenta para iniciar apps
- A tela de inicialização é a primeira experiência de um usuário com seu aplicativo.
Exibir uma tela em branco na inicialização do app aumenta a percepção do
tempo de carregamento. Por isso, recomendamos usar uma IU de marcador ou uma tela de inicialização com a marca
para diminuir essa percepção.
- Uma
IU de marcador (link em inglês) é a transição de inicialização ideal, apropriada para
inicializações de app e transições de atividades no app.
- As
telas de inicialização com a marca (link em inglês) expõem a marca temporariamente, liberando a IU
para que o foco esteja no conteúdo.
- A melhor maneira de lidar com lentidão na inicialização é eliminá-la. Em Desempenho do tempo de inicialização, apresentamos
informações que podem ajudar você a acelerar o tempo de inicialização do app.
Práticas recomendadas para a interface do usuário
- O
Material Design (link em inglês) é uma linguagem visual que sintetiza os princípios
clássicos do bom desenvolvimento com a inovação e as possibilidades oferecidas pela tecnologia
e ciência. Ele apresenta um só sistema que
permite uma experiência unificada em todas as plataformas e em todos os tamanhos de dispositivo. Recomendamos
usar os principais componentes do Material Design para que os usuários aprendam a
usar seu app de forma intuitiva.
- Os componentes prontos para uso estão disponíveis na Biblioteca de Suporte do Material
Design. Esses componentes são compatíveis com o Android 2.1 (API de nível 7) e em
versões mais recentes.
Localização
- Seus usuários podem vir de qualquer parte do mundo e o idioma materno
deles pode não ser igual ao seu. Ao não oferecer o app em um idioma que os
usuários possam ler, você perderá uma oportunidade. Por isso, você precisa
fazer a localização dele para os principais idiomas regionais.
- Saiba mais no treinamento do Android sobre
Compatibilidade com
diferentes idiomas e consulte a
Lista de verificação de localização.
- A partir do Android 7.0 (API de nível 24), o framework do Android
disponibiliza um subconjunto de APIs ICU4J (link em inglês), que pode
ajudar você a localizar o app para diversos idiomas. Consulte
APIs ICU4J Android Framework
para ver mais informações.
Outros recursos
Para saber mais sobre esse assunto, consulte os recursos a seguir:
Outros temas
Postagens do blog
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[null,null,["Última atualização 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)"]]