Estratégias de desenvolvimento de aplicativos móveis em várias plataformas

Este é o título do meu Trabalho de Conclusão de Curso aprovado no dia 27 de novembro de 2012 na UNES em Cachoeiro de Itapemirim – ES.
Foi uma pesquisa bem interessante porque aumentou ainda mais o meu interesse sobre desenvolvimento para dispositivos móveis. Não foi um trabalho muito extenso, até por conta do tempo que eu levei para começá-lo. Encontrar material adequado para servir de referência também não foi tarefa fácil, o que também atrasou o início. Há bons livros em português mas a abordagem que eu queria dar ao tema exigia algo um pouco mais aprofundado, conceitualmente falando. Me parece que pouco se tem escrito sobre isto academicamente. Até encontrei alguns artigos científicos mas tinham outras linhas de pensamento. Por isso, todas as referências utilizadas são livros em inglês. Gostaria de ter desenvolvido um aplicativo para multi-plataforma para complementar o trabalho mas, devido ao curto espaço de tempo, isto não foi possível. Então a abordagem se concentrou mais na análise conceitual dos problemas encontrados no desenvolvimento de aplicativos para dispositivos móveis e das estratégias comuns para resolvê-los.

A escolha do tema

Antes de decicir escrever sobre dispositivos móveis, outros temas nos quais tenho muito interesse também estavam na lista: bancos de dados não-relacionais (NoSQL) e arquitetura de sistemas orientada a serviço, sobretudo APIs baseadas em REST. Acredito que as três coisas estão intimamente relacionadas: a expansão do mercado de dispositivos móveis leva a uma demanda por aplicativos para estas plataformas. Além do mais, a “dependência” da web para quase tudo e o papel das APIs online neste cenário, juntamente com novas soluções de armazenamento de dados, que todo sistema deve tratar como um dos componentes principais. Todos estes temas poderiam ser considerados difíceis em termos de bibliografia, mas numa pesquisa rápida pude perceber que há livros muito bons sobre dispositivos móveis e esta acabou sendo a escolha, também pela atualidade do assunto. O objetivo do TCC era identificar as dificuldades encontradas no desenvolvimento de aplicativos para múltiplas plataformas móveis e analisar estratégias que possam minimizar estas dificuldades. Especificamente, apontar os problemas que podem comprometer o processo de desenvolvimento, bem como as vantagens e desvantagens de diferentes estratégias para contornar estes problemas. Quis ainda analisar algumas ferramentas que podem auxiliar no desenvolvimento.

Principais pontos

Aqui vai um pequeno resumo das 40 páginas do trabalho:

  1. Boa parte das principais dificuldades estão relacionadas às próprias plataformas móveis: como não há uniformidade no mundo mobile, um aplicativo está sujeito a ser executado em dispositivos e sistemas operacionais bem diferentes uns dos outros. Outras dificuldades podem surgir, por exemplo, quando se decide desenvolver para várias plataformas simultaneamente. Nem toda equipe é fluente em várias linguagens e tecnologias;
  2. É necessário criar uma experiência para o usuário que torne agradável o uso do aplicativo. Fornecer uma boa experiência para o usuário significa utilizar os recursos de uma plataforma ou dispositivo para entregar ao usuário a informação da maneira mais eficiente e intuitiva possível. Isto porque cada plataforma tem seus recursos específicos, principalmente em relação às interfaces gráficas, e interfaces aparentemente idênticas em duas plataformas podem ter comportamentos diferentes por terem formas diferentes de interagir com o usuário;
  3. Basicamente, pode-se escolher entre focar numa experiência imersiva numa única plataforma ou abranger o maior número possível de usuários em várias plataformas. Ao longo do tempo, as duas abordagens tendem a evoluir para o desenvolvimento multi-plataforma mantendo o objetivo de criar uma experiência excelente em cada uma delas;
  4. Entre as soluções possíveis, temos: aplicativos nativos, aplicativos web móveis e aplicativos híbridos (nativos mas desenvolvidos com tecnologias típicas da web como HTML, CSS e JavaScript);
  5. Como sempre, não há uma solução ideal para todos os casos.

Conclusão

Apesar de o mercado mobile ser bastante fragmentado, isto não inviabiliza o desenvolvimento de aplicativos. Pelo contrário, abre grandes oportunidades e mostra que, assim como no desenvolvimento de qualquer tipo de software em quaisquer outras plataformas, todas as opções devem ser analisadas com muito cuidado, pois há muitos fatores envolvidos no desenvolvimento de um software.
As soluções que foram apresentadas já foram postas em prática no mercado e tem auxiliado muitas empresas e desenvolvedores a criar suas estratégias para o desenvolvimento móvel.
Das tecnologias discutidas, uma das mais promissoras é sem dúvidas o HTML5, pelos recursos que apresenta para a construção de sites bem como aplicativos web e híbridos, e pelo seu potencial que, por estar ainda em evolução, não foi totalmente explorado, seja nas plataformas móveis ou desktop. Para as plataformas móveis, alguns dos recursos do HTML5 que podem despertar mais interesse são o armazenamento off-line, o suporte a áudio e vídeo, a geolocalização e seus recursos gráficos, que já tem sido bastante utilizados para a produção de jogos.

Enfim, independente da tecnologia utilizada, quando se fala em dispositivos móveis o foco deve estar sempre na
experiência que o aplicativo possibilita ao usuário. Sem isto, outros requisitos importantes podem não ser suficientes para garantir o sucesso de um aplicativo.