O documento fornece diretrizes para desenvolvimento de aplicativos móveis para Android, cobrindo tópicos como análise de requisitos, design de interface, arquitetura, acesso a dados, publicação e otimização para dispositivos móveis de hardware limitado.
2. Análise de Requisitos
Construindo sua Aplicação
Guidelines
Seu primeiro deploy
3. Lembre-se: hardware limitado
› Memória
› Processador
› Disco
› Alto custo associado com transferências
› Conexões de dados não-confiáveis
› Bateria
4. Lembre-se: usabilidade limitada
› Baixas resoluções
› Teclados não tão práticos
› Touchscreen capacitivo
› Análise das Apps Nativas
› Simplicidade vs riqueza de detalhes
5. Thin ou fat client?
Lembre-se dos mashups
Aplicações intercambiáveis
Dependência de Internet
Minimize os custos ao usuário
6. Esboço de Design:
› Rabisque as telas
› Aponte as transições
› Defina o fluxo de trabalho
› Pense nas possibilidades de orientação
› Mantenha simples
7. Arquitetura de Aplicação:
› API Level
› APIs adicionais
› Bibliotecas externas
› Público-alvo
› Acesso à dados locais
› Acesso à dados externos
8. Filosofia de Design:
› Pequenos incrementos
› Sempre funcionando
› Código refatorado
› Mantenha simples
9. Troca de Orientação
› Você pensou nisso?
› Permitir ou não?
<activity android:name=".Teste"
android:screenOrientation="portrait"
android:label="@string/app_name">
› ScrollView – permite scrolling vertical de tela, o
que é muito útil em landscape
11. Menu (via código ou XML)
› Public boolean onCreateOptionsMenu(Menu
menu){
› Super.onCreateOptionsMenu(menu);
› menu.add(1,1,1,”Item 1”);
› menu.add(1,2,2”,”Item 2”);
› }
(idGrupo, idItem, Ordem, Texto)
12. Menu
› Public boolean
onOptionsItemSelected(MenuItem item){
› Int id = item.getItemId();
› If(id == 1){ // do something
› return true
› }else {return
super.onOptionsItemSelected(item);}
› }
13. Seja Responsivo:
› App deve responder a qualquer ação do usuário
dentro de 5 segundos
› Notificações do sistema devem encerrar em 10
segundos
› Serviços e threads podem garantir isso
› Caso contrário, diálogo de aplicação não-
responsiva
14. Evite aninhamento desnecessário;
Evite componentes desnecessários (não use
mais de 80)
Mantenha menos de 10 layouts de
profundidade
Use os controles padrões pela familiaridade
dos usuários
15. Respeite a estrutura de pastas
Use Orientação à Objetos
Separe lógica de aplicação de regra de
negócio
Crie uma Activity para cada “tela” do sistema
16. Múltiplas Activities:
› Intent intent = new Intent(MyActivity.this,
NewActivity.class);
› startActivity(intent);
› Colocar no Manifesto para a aplicação enxergar
a nova atividade
› pilha de Activities
› Constantes Intent.something para Intent Filters
› finish();
17. Jamais armazenar recursos no banco,
somente as URLs dos mesmos
Todas tabelas devem ter uma chave auto-
incremental como PK (principalmente por
causa dos Content Providers)