Neste artigo, o iniciante no desenvolvimento para Android encontrará algumas dicas básicas que devem ser implementadas em sua própria aplicação. Seguindo essas dicas, você proporcionará ao usuário de sua aplicação uma experiência de uso aprimorada no ambiente Android.
Dicas para iniciantes
Aprenda SQL e coloque seus dados em um banco de dados
O Android possui um excelente sistema de persistência de dados; use-o para tornar suas aplicações mais robustas em caso de falha ou desligamento, e torne a suspensão e restauração mais eficiente. O sistema de armazenamento do Android, baseado no SQLite, é bem integrado com as classes da interface de usuário do sistema.
O Android suporta o padrão observer nas classes Cursor, Adapter e View, permitindo que a interface com o usuário se conecte diretamente ao resultado da consulta ao banco de dados. Usando esses recursos você terá menos trabalho quando o Android precisar parar sua aplicação já que terá pouco ou nenhum dado a ser salvo explicitamente, e mais confiabilidade na execução da aplicação em aplicativos móveis que podem estar sem carga a qualquer momento.
Mas, para tirar o máximo das vantagens dos metódos de desenho de banco de dados do Android, você precisará saber um pouco de SQL.
Aprenda XML
Você não tem que saber muita coisa de XML para usar as ferramentas visuais que definem o layout e outros recursos. À principio, não é necessário editar o XML “à mão”. Mas essas ferramentas são imperfeitas. Quanto mais você souber sobre como o Android usa XML, e sobre o XML schema do Android. fica mais fácil corrigir problemas que ocorrem no XML de aplicações Android, e mais confortável você ficará usando o XML para maximizar o desenvolvimento das suas aplicações Android.
Aprenda sobre os recursos e fraquezas do Eclipse
Java é uma linguagem bem verborrágica, e sem o recurso de code completion, pop-ups de Javadoc, e refatoramento avançado, pode ser bem penoso comparado com linguagens dinâmicas. Em outras palavras, Java sem os recursos de produtividade do Eclipse não é nem um pouco divertida.
O Eclipse, todavia, pode ter uma curva de aprendizado bem longa para iniciantes. Até se habituar com esse IDE grande, poderoso e algumas vezes, complexo é uma grande parte de tornar-se mais produtivo no desenvolvimento de aplicações Android.
Nas páginas da documentação do Eclipse, você pode ter uma visão geral do ambiente pela leitura das páginas que cobrem os conceitos do Eclipse. Aprenda primeiro esses conceitos, de outra forma os menus e a documentação do Eclipse se apresentarão a você com muitos jargões técnicos. Depois passe para o tutorial básico da seção de desenvolvimento Java.
Use testes automatizados
Use oMonkey para testar suas aplicações. Ele gera uma fila de eventos, simulando entradas randômicas, e retorna quando a aplicação trava ou falhas no envio da resposta.
Use o framework Instrumentation e o JUnit para escrever unidades de teste que podem ser executadas pelo Eclipse usando adb e InstrumentationTestRunner.
Seja um bom cidadão na sociedade de desenvolvedores Android
Aprenda e use os ciclos de vida dos serviços e aplicações efectivamente. Permita que sua aplicação possa ser parada e reiniciada eficientemente pelo sistema Android. Ao contrário de muitos ambientes com ciclos de vida de aplicação triviais, o ambiente do Android frequentemente para ou encerra processo para manter o consumo de recursos do sistema baixo, ficando preparado para reinicia-lo se o usuário volta a usar a aplicação.
O Android espera que as aplicações usem e respondam a um conjunto de metódos relacionados ao ciclo de vida de aplicações e cooperem com a maneira com que o Android gerencia as aplicações quando elas tornam-se visíveis na tela ou são ocultadas por outras aplicações. Apronte esse código em sua aplicação o mais cedo possível em seu desenvolvimento, assim você não precisará ficar corrigindo esses metódos. Use o debugger para configurar pontos de parada nos metódos relacionados ao ciclo de vida da aplicação para que você entenda como ele funciona no Android.
Dicas avançadas
Use analisadores estáticos
Java fornece avisos de compilação bem significativos, e avisos e “conselhos” baseados em análise estática. Cada bug em potencial que você matar antes que sua aplicação deixe a fase de desenvolvimento faz que você se torne um usuário 4-estrelas ao invés de um 2-estrelas. Use os avisos de compilação, FindBugs, e tente outros analisadores estáticos, como PMD disponível como um plugin Eclipse, para encontrar as ferramentas que acham mais problemas e o menor numero de falso positivos.
Use e seja usado
Use os objetos Intent e StartActivity (e metódos relacionados) para “pegar emprestado” funcionalidade de outras aplicações, e escreva sua aplicação para responder as chamadas do filtro do Intent, fornecendo funcionalidades a outras aplicações. Aplicações podem também compartilhar dados através do sistema ContentProvider e das interfaces de metódos remotos.
Divida aplicações grandes
Se você estiver escrevendo uma aplicação muito grande, considere dividir ela em uma suite de aplicações e serviços. Aplicações menores carregam mais rápido e usam menos recursos. Ao criar uma suite de aplicações, provedores de conteúdo e serviços, isso torna o seu código mais aberto a incorporação em outras aplicações como descrito na dica acima.
Desenhe sua aplicação para consumir pouca energia
Coisa que são benignas em um computador pessoal, como contactar um servidor a cada 10 minutos, podem diminuir a vida útil da bateria de um smartphone pela metade ou pior. Codifique sua aplicação para fazer o mínimo possível até que o usuário traga ela para o primeiro plano ou alguma informação externa chegue que requeira alguma acção.
Use o NDK para acessar bibliotecas de funções
O NDK do Android é um complemento opcional para o SDK do Android que permite o uso de código nativo. Use o NDK para incorporar bibliotecas C e C++ existentes que fornecem funcionalidades úteis. Codifique metódos que usam intensivamente a CPU, se eles precisam ser feitos no smartphone, em C e C++. Use as ferramentas do NDK para chamar esse código a partir do Java usando o Java Native Interface (JNI).
Dicas para criar boas interfaces com o usuário
Em acréscimo às 10 dicas acima, aqui vão algumas dicas para criar uma melhor experiência para o usuário do Android.
Evite depender de dimensões especificas
Evite assumir qualquer coisa em relação ao tamanho e resolução da tela. Especifique layouts de tal forma que eles possam se adaptar as mudanças do tamanho da tela. Especifique dimensões em unidades independentes de resolução, não em pixels, que podem ser muitos grandes ou muito pequenos em telas com diferentes resoluções. Certifique que suas aplicações funcionem bem em qualquer orientação de tela (horizontal e vertical), e com ou sem um teclado sem mostrado.
Se sua aplicação incluir gráficos bitmap que não ficam bem ao ser redimensionados – por exemplo, objetos de jogos – inclua variações pequenas, médias e grandes para diferentes resoluções de tela, e se sua aplicação precisar de um tamanho de tela especifico, use atributos no manifesto para indicar esses requerimentos ao sistema Android.
Permita manipulação direta
Manipulação directa significa permitir que os usuário execute operações de uma forma intuitiva diretamente do que ele vê. Se o usuário pode ativar uma ação em objeto arrastando-o a um local da tela, ou se um menu aparece relacionado ao contexto de um objeto quando o usuário mantém o objeto pressionado por alguns segundo, isso é manipulação direta.
O oposto de manipulação direta seria ter uma sequência rígida de operações, ou um modelo em cascata onde o usuário se mova por uma hierarquia de caixas de dialogo e fique preso até que complete uma sequência de operações.
O que prefere usar? Seja legal com seus usuário e permita manipulação direta onde você puder. Isso pode ser desafiador em telas pequenas, mas a recompensa é grande. A manipulação direta é a forma mais poderosa para manter a interface com o usuário simples e amigável, e minimizar o número de telas diferentes que o usuário precisa visitar em sua aplicação.
Evite hierarquia
Não desenhe sua aplicação em torne de um local central, como uma tela “home”, ou qualquer local fixo. Usuários de dispositivos móveis querem acesso instantâneo as funcionalidades. Eles não toleram ficar se movendo por hierarquias de menus. Além disso, você quer fornecer atividades individuais que sejam fáceis de ser invocados por outras aplicações pela interface Intent. Permita que cada atividade seja usada independentemente, e inclua um menu que permita acesso a cada uma.
Internacionalize o quanto antes
Isso evitará que você fique com preguiça e coloque strings em seu código. O Android suporta 26 idiomas, e fornecerá mais no futuro – internacionalize suas strings agora e evite trabalho depois.
Publicada originalmento no site http://answers.oreilly.com