O primeiro aplicativo

No começo do ano iniciei meus estudos no Android, parei um tempo e retomei recentemente. Até então eu havia feito vários projetos isolados testando funcionalidades/técnicas isoladas, nunca cheguei a fazer algo concreto.

Decidi que era hora de concluir algo no Android, mesmo que fosse o básico para colocar funcionalidades extras depois. Peguei um problema, pensei num aplicativo e o fiz num domingo (para ter uma idéia de como era simples).

O problema

O problema que decidi resolver é um que eu tenho onde trabalho atualmente: não existe uma ferramente específica para controlar follow-up das minhas atividades, como por exemplo, solicitei uma imagem de uma mensagem de erro que apareceu para o cliente e estou aguardando o retorno. Onde verifico rapidamente isto? E sem saber o número da atividade, somente pelo nome do cliente? Não existia e atualmente uso um txt que é simples e rápido, porém trabalhoso.

A solução

Idealizei um aplicativo simples porém eficaz (pelo menos era isto que eu pensava), onde eu digitaria o número da atividade, o cliente e o follow-up. E para finalizar, um meio de consultar os follow-up de uma atividade específica. O nome escolhido foi Organizr (pronuncia-se Organizer)

O MVP e a triste conclusão

Para não perder muito tempo, decidi fazer um MVP num domingo e rodá-lo na segundo-feira. Então incluí apenas o essencial, tanto que não havia nem recurso para alterar um follow-up, apenas incluir.

Após concluído (fiz até um icone bonito por capricho), estava ansioso para testar o aplicativo "em produção", já que iria resolver um dos meus problemas, e foi no primeiro dia que tive uma conclusão inesperada: não era produtivo ficar pegando o celular, desbloquear e acessar o aplicativo toda vez que era preciso consultar um follow-up. E foi incrível, não durou 3 horas.

Minha próxima tentativa em relação a isto é fazer um aplicativo desktop focado na simplicidade também, pois (em teoria) imagino que já que estarei olhando para a tela, com o mouse e teclado na mão, não perderei produtividade ao consultar um follow-up, vamos ver.

O que aprendi

Faça o mínimo e teste sua idéia

Não perca muito tempo com funcionalidades extras, faça apenas o coração de sua idéia. Logo em seguida, teste-a no mundo real, não adianta testar enquanto você desenvolve, você precisa desligar a chave de desenvolvedor e ligar a chave de usuário final.

Mesmo sendo um aplicativo de uso pessoal, eu o testei no meu dia-a-dia do trabalho, assim pude coletar muitas coisas que poderiam ser implementadas, corrigidas e melhoradas.

Testes de unidade é seu melhor amigo

Neste projeto não fiz qualquer teste de unidade, e logo senti a falta nas primeiras execuções do aplicativo no domingo mesmo: vários NullPointerException, códigos compiláveis mas com lógica errada e assim vai.

Desenhe cada detalhe primeiro

Quando comecei o desenvolvimento, tinha o aplicativo completamente desenhado, na minha cabeça. Mas na hora em que estava estruturando os layouts, percebi falhas em que eu iria perder informação útil. Então resolvi sentar e desenhar os layouts com papel e caneta, e acredite, redesenhei 3 vezes a tela principal.

Desenhando suas telas antes, você consegue definir não só um layout consistente e bom (até para o começo), mas também o fluxo do aplicativo, e isso ajuda muito quando estiver programando.

Próximos passos

Como estou com mais algumas idéias para resolver problemas pessoais e algumas para publicar na Google Play, com certeza irei aplicar o que foi aprendido com este último projeto. Se possível, irei disponibilizar o código fonte dos projetos futuramente e comentar sobre o desenvolvimento.

Até mais.