Desafios no desenvolvimento de aplicações web mobile

web-mobileO desenvolvimento de aplicações web para dispositivos móveis é uma tendência comum no mercado de desenvolvimento atual, em virtude da possibilidade de afunilamento de diferentes plataformas móveis sob um mesmo conjunto de tecnologias, ditas web, como HTML, CSS e Javascript. Entretanto, deve-se sempre levar em conta as diferenças inerentes ao desenvolvimento de aplicações para dispositivos móveis frente aos contextos mais tradicionais como computadores de mesa e computadores portáteis, os quais são brevemente observados abaixo.

Primeiramente, deve-se observar que o tamanho da tela dos dispositivos móveis é consideravelmente menor.

Ainda que os displays atuais sejam de alta resolução, mesmo em dispositivos como pequenos smartphones, a densidade de pixels por centímetro quadrado pode tornar quase impossível a tarefa de tocar em um botão com o dedo, nos casos de dispositivos com tela sensível à toque, ou mesmo impossibilitar a leitura de um texto que tenha sido escalonado para um monitor tradicional de 13 ou mais polegadas. Aplicações voltadas para estes dispositivos devem levar em conta muitos elementos relacionados a usabilidade, mas principalmente as limitações de área visível da aplicação.

Também relacionado à ergonomia, os dispositivos móveis possuem diversos elementos para entrada de dados tais como: a tela sensível a toque ou à canetas stylus, teclados QWERTY, trackballs, mini-touchpads, voz e até mesmo movimentos com as mãos enquanto segura o aparelho. Diferentes dos computadores tradicionais, onde teclado e mouse ainda são a forma mais comum de entrada de dados, deve-se levar em consideração que nos smartphones a entrada de dados via digitação por vezes é a maneira menos prática de utilizá-lo, devido aos botões diminutos ou até mesmo a ausência deles e uso de teclados virtuais, nem sempre muito precisos. Deve-se explorar, sempre que possível, entradas de dados que forneçam melhor usabilidade ao portador do dispositivo.

No que tange velocidade e custo de uso, o principal elemento de aplicações (especialmente web) desenvolvidas para dispositivos móveis é a conexão de dados. Latência, instabilidade, baixa largura de banda e cobertura precária das operadoras são alguns dos problemas que afetam drasticamente o desempenho de uma aplicação web para dispositivos móveis e até mesmo encarecê-lo, no caso de planos tarifários por quantidade de bytes consumidos. Problemas estes praticamente “resolvidos” para os computadores domésticos com a banda-larga atual, onde permite-se streaming de áudio e vídeo em tempo real, downloads a grandes velocidades e tudo isso usando uma franquia única mensalmente.

Curso React Native

O tempo de bateria dos dispositivos móveis é outro fator que diferencia-os dos computadores de mesa, embora os computadores portáteis compartilhem de baterias ainda piores. Algoritmos que usem intensamente os recursos de hardware do aparelho (ou seja, que exijam grandes quantidades de memória, processamento e/ou acesso à disco) irão diminuir rapidamente o nível de bateria e devem ser evitados ou usados com parcimônia, uma vez que os smartphones não costumam ficar conectados à tomada igual os computadores.

E por último, uma vez que tem evoluído rapidamente, deve-se levar em consideração as restrições de desempenho do dispositivo quanto a memória, processamento e armazenamento de dados. Enquanto que nos computadores atuais fala-se em Gigabytes de memória RAM, múltiplos cores de vários Gigahertz cada e centenas de Gigabytes, ou até mesmo Terabytes de armazenamento, a maioria dos smartphones atuais (na data em que escrevo este post) ainda possui cerca de 1GB de memória e cerca de 1GHz de processamento em um único processador com dois núcleos. Da mesma forma os velozes discos de 5400 e 7200 rotações por minutos não existem nos smartphones, que dependem de memória flash interna e de lentos cartões SD.

Concluindo, estas e outras diferenças entre dispositivos móveis e computadores mais tradicionais devem ser levadas em conta quando se desenvolve aplicações de qualquer tipo, em especial para as aplicações web os desafios de acesso à Internet e display reduzido.

Autor

Luiz Fernando Duarte Junior é graduado em Ciência da Computação com pós-graduação na área de Computação Móvel. Professor do ensino superior, autor e empreendedor, é autor de livros sobre desenvolvimento de apps, todos disponíveis na seção Meus Livros.

Publicado por

Luiz Duarte

Pós-graduado em computação, professor, empreendedor, autor, Agile Coach e programador nas horas vagas.