Introdução
Estas orientações de estilo funcionam como o guia oficial para seguir nos seus projetos. Revisores da Udacity utilizarão este guia para graduar seus projetos (de acordo com as respectivas rubricas). Todos os aplicativos Android que você desenvolver nos seus projetos deverão atender os critérios listados abaixo. Para obter um conjunto mais detalhado de regras para avaliar a qualidade básica dos seus aplicativos, veja este link.
Otimize Layouts para Telas Maiores
Para oferecer aos usuários a melhor experiência possível em várias configurações de tela, certifique-se de otimizar o layout e a interface do usuário para telas específicas. Nos tablets, a otimização do layout envolve a utilização do espaço de tela adicional para oferecer novos recursos, apresentar novos conteúdos, ou aprimorar a experiência em outras formas de aprofundar o engajamento do usuário.
Não Recommendado:
Livre-se da UI "esticada": Nos tablets, os layouts de uma única porção levam a esquisitos espaços em brancp e comprimentos de linha excessivos.
Use padding para reduzir a largura de elementos da UI e considere o uso de layouts de várias porções.
Recomendado:
- Linhas de texto não devem ser excessivamente longas — otimize para um máximo de 100 caracteres por line, com melhores resultados entre 50 e 75.
ListViews
e Menus
não devem usar o comprimento total da tela.
- Padding de elementos de UI devem normalmente ser mais largos em tablets que em celulares. Adequadamente preencher o conteúdo de texto para que ele não esteja alinhado diretamente ao longo das bordas da tela. Use um padding mínimo de
16dp
ao redor do conteúdo próximo das bordas da tela.
- No mínimo, personalize dimensões como tamanhos de fonte, margens, espaçamento para telas maiores, para melhorar o uso de espaço e legibilidade de conteúdo.
- Forneça layouts customizados como necessário para telas
large
e xlarge
.
Tire Vantagem da Área Extra da Tela
Recomendado:
Use Recursos Projetados para Telas de Tablet
Recomendado:
Crie seus ícones e outros recursos de bitmap para seu aplicativo, a action bar, notificações, e launcher de acordo com Guias de Iconografia e forneça-os em múltiplas densidades, assim eles podem aparecer no tamanho apropriado em todas as telas sem borrar or outras distorções de escala.
No mínimo, forneça uma versão de cada ícone e recurso bitmap que esteja otimizado para pelo menos uma das seguintes densidades comuns de tela para tablet: hdpi
, xhdpi
e xxhdpi
.
Tablets frequentemente solicitam um ícone de launcher que é um tamanho de densidade maior do que a densidade atual do dispositivo, então você deve fornecer seu ícone de launcher na maior densidade possível. Por exemplo, se um tablet tiver uma tela xhdpi
, este requisitará a versão xxhdpi
do ícone de launcher.
Use qualificadores de recurso com densidade-específica para assegurar que os ícones apropriados são carregados para cada densidade de tela.
Use shapes vetorizados quando projetar ícones, para escalarem sem perda de qualquer detalhe ou quebras de borda.
Ajuste Tamanho de Fontes e Locais de Toque
Recomendado:
- O texto não deve ser excessivamente grande ou pequeno em tamanhos e densidades de tela de tablet. Certifique-se de que os rótulos são dimensionados adequadamente para os elementos de UI ao qual correspondem, e certifique-se de que não há quebras de linha impróprias em rótulos, títulos e outros elementos.
- O tamanho de toque recomendado para os elementos na tela é de 48dp (mínimo 32dp) - alguns ajustes podem ser necessários em sua UI do tablet.
- Quando possível, para ícones menores, expanda a área tocável para mais de 48dp usando o TouchDelegate ou apenas centralizando o ícone dentro do botão transparente.
Conjunto Completo de Recursos para Usuários de Tablets
Recommended:
- Projete seu aplicativo para oferecer pelo menos o mesmo conjunto de recursos em tablets como acontece em telefones.
- Em casos excepcionais, o aplicativo pode omitir ou substituir determinados recursos nos tablets se eles não forem suportados pelo hardware ou pelo caso de uso da maioria dos tablets. Por exemplo:
- Se o telefone usa recursos de telefonia mas a telefonia não está disponível no tablet atual, você pode omitir ou substituir a funcionalidade relacionada.
- Se você omitir um recurso da UI do tablet, verifique se ele não está acessível aos usuários ou se ele oferece "degradação graciosa" a um recurso de substituição.
Segmentar Versões do Android Propriamente
Para assegurar a maior distribuição possível para tablets, certifique-se que seu aplicativo propriamente suporta as versões Android que suportam tablets.
No mínimo, cheque o elemento <uses-sdk>
para certificar que:
targetSdkVersion
seja declarada com valor 11 ou superior (14 ou maior é recomendado), OU
minSdkVersion
seja declarada com valor 11 ou superior.
- Se um atributo
maxSdkVersion
for declarado, deve ter valor de 11 ou superior. Note que, em geral, o uso de maxSdkVersion
não é recomendado.
Declare Dependências de Recursos de Hardware Propriamente
Celulares e tablets tipicamente oferecem hardwares levemente diferentes para sensores, camera, telefonia, e outros recursos. Por estas razões certifique-se que seu aplicativo não requira recursos de hardware que não são comumente disponíveis em tablets. Declare os recursos de hardware como não requeridos no arquivo manifest, como descrito abaixo:
After adding the not required attribute, make sure to check that your app functions without any errors in a variety of devices. This makes sure the app offers "graceful degradation" and alternative functionality wherever appropriate.
Declare Suporte para Telas de Tablet
Para garantir que você pode distribuir seu aplicativo para uma ampla variedade de tablets, seu aplicativo deve declarar suporte aos tamanhos de tela do tablet em seu arquivo de manifest, da seguinte maneira:
- Um elemento
<supports-screens>
, se declarado, não deve especificar android:largeScreens="false"
ou android:xlargeScreens="false"
.
- Para versões de aplicativos com
minSdkVersion
de valor menor que 13, um elemento <supports-screens>
deve ser declarado com ambos android:largeScreens="true"
e android:xlargeScreens="true"
.