A importância de realizar projetos pessoais
O Problema
Você já deve saber que eu sou um piloto de paramotor ativo, voando constantemente com um grupo de amigos. Voar com os outros é ótimo, mas, de tempos em tempos, é comum ter alguém "perdido" do grupo, razão pela qual eu sempre procurei por um aplicativo que pudesse compartilhar nossas posições enquanto voamos.
Embora alguns desenvolvedores (Apple e Google, por exemplo) tenham aplicativos como o Find Friends, geralmente esses aplicativos exigem permissões dos usuários e suas atualizações de geolocalização são a cada minuto ou mais, algo que não é viável quando você voa com um monte de pessoas que não necessariamente são seus amigos e/ou querem manter a sua privacidade após as nossas viagens pelo ar.
É hora de aprender uma nova linguagem de programação e desenvolver minha própria solução 🙂
O Processo
Ter um projeto pessoal é uma ótima maneira de se forçar a aprender coisas novas, ser "a persona" para a tarefa e ter a pressão de estar encarregado de planejar, projetar, desenvolver, testar e suportar tarefas.
Com alguns dias de férias, mais um monte de noites longas, decidi aprender NativeScript, um kit de desenvolvimento (relativamente) novo baseado em Javascript, uma linguagem de programação que usei no meu passado ao criar o Kwik.
Aprender uma nova ferramenta é uma boa maneira de ficar frustrado (a aprendizagem leva tempo, as coisas não funcionam como você esperava/imaginava, etc.), re-design o tempo todo (algumas coisas que você não sabe como codificar) e ficando louco tentando encontrar e corrigir erros. No entanto, é realmente bom celebrar quando você tem um "novo bebê" rodando em seu telefone (ainda melhor quando você vê isso em dispositivos de outras pessoas).
Ok, vamos falar sobre o processo! Devido à minha própria falta de habilidades como aluno, além das limitações do NativeScript (sempre leia muito sobre a ferramenta de sua escolha), planejei um conjunto mínimo de recursos:
- Eu não queria passar muito tempo controlando userids e senha;
- Eu precisava de uma solução para mostrar várias pessoas em tempo real em um mapa;
- Era obrigatório mostrar um mapa e ter a capacidade de capturar/desenhar as posições dos pilotos.
Para lidar com os itens 1 e 2 acima, eu decidi dar uma chance para o Google Firebase (gente, isso é incrível). Para a solução do mapa, optei pelo provedor Mapbox, pois ele é implementado como um mapa nativo dentro do aplicativo (o Mapa do Google é processado dentro de um navegador).
Meus primeiros desenhos e protótipos:
Como você pode ver, tentei diversas variações até chegar ao projeto final abaixo. As mudanças precisaram ser feitas, como eu disse acima, devido a testes de usabilidade, falta de habilidades para fazer algumas coisas, além de algumas limitações com o NativeScript.
A solução
Depois de algumas semanas, o aplicativo foi concluído (pelo menos a versão 1.0) e disponível na AppStore da Apple e na Play Store do Google, sob o nome PPG Finder. Abaixo, as capturas de tela finais:
Os usuários logam com suas contas do Facebook (portanto, não há necessidade de gerenciar senhas, etc.) e o aplicativo captura o nome, identificação única e foto.
Os usuários podem escolher a cor de seus parapentes, inserir seus apelidos e selecionar como o aplicativo medirá distância, velocidade e altitude.
O painel mostra como eles estão voando (velocidade, distância, altitude, etc.), quão longe eles estão no ponto de origem (desta maneira, ninguém se perde depois de voar para longe), mas a coisa mais importante (os ícones coloridos no mapa), eles podem ver seus amigos ao redor. Clique na barra inferior (mostrando 2 pilotos voando perto) para obter detalhes sobre eles.
Veja o quão longe, pilotos rápidos e altos ao seu redor estão voando.
O que eu aprendi?
Como eu mencionei acima, além de me familiarizar com uma nova linguagem de programação e ter um aplicativo desenvolvido, como designer, as principais aprendizagens foram:
- Adapte-se constantemente a uma situação não planejada (muito comum no "mundo real": desenhamos algo, o desenvolvedor entrega outra coisa, porque não foi possível codificar exatamente como foi projetado);
- Seja o usuário, ouça o usuário. Quando você usa o que você constrói, é muito mais fácil encontrar áreas de melhorias e consertar coisas;
- Encontre soluções! Relacionado aos dois comentários acima, um projeto pessoal é uma oportunidade para encontrar soluções para outros desafios que você pode ter, sem a pressão do tempo. Afinal a entrega está sob seu alcance;
- Definir um prazo é a melhor maneira de verificar se você alcançou seus objetivos no tempo certo.
Escolha um projeto pessoal e tente fazer algo relacionado ao design (pode ser um redesenho do site, uma nova feature, seja o que for). Além de ser um ótimo exercício, também é muito divertido!
Gostou do tema? Tem dúvida ou comentário? Compartilhe abaixo!
SOBRE O AUTOR
Alex Souza é um especialista em experiência do usuário por mais de 20 anos. Ele iniciou sua carreira no Banco do Brasil em 1986 e desde lá liderou e construiu projetos premiados em posições de designer, marketing e tecnologia em empresas como Lotus/IBM, Microsoft, Kwiksher, Rackspace e, atualmente, GreenMile.
“Alê”, como é chamado pelos amigos formou-se em Design Digital pela Universidade Anhembi-Morumbi e tem mestrado em Educação, Artes e História da Cultura, pela Universidade Mackenzie. Desde 2005 ele vive nos Estados Unidos tendo sido palestrante em eventos internacionais como SXSW, Microsoft MIX e Publishing App Conferences.
Gosta do tema UX? Dá um "follow/like" e compartilha com sua rede! Lá no Twitter eu sou @ux_ale
CEO/ Managing Partner/ Investor/ Executive Consultant
7 aParabéns Alex pela idéia e projeto realizado com sucesso! Gostei.