Boas Práticas Gerais

Tipos de aplicações
Aplicação Web

As aplicações web (Web Apps) são na realidade web sites otimizados para dispositivos móveis e que apresentam uma experiência semelhante às aplicações nativas, mas através do navegador de Internet (Chrome, Safari, Edge, etc.).

Considerámos duas técnicas principais para o desenvolvimento deste tipo de aplicação:

  • Aplicação Web Responsiva: um site que responde às dimensões do navegador em qualquer ponto. Esta resposta às dimensões do navegador é feita de forma fluída e flexível.
  • Aplicação Web Adaptativa:  um site que se adapta à largura do navegador em pontos específicos. Este tipo de site só foca em pontos específicos de largura e apenas se adapta nesses pontos à mudança de largura.

Tendo em conta estas duas técnicas, a nossa recomendação é a cd que a aplicação web seja desenvolvida como uma aplicação web responsiva. Este desenvolvimento deverá seguir ainda a estratégia de Progressive enhancement.

Progressive Enhancement

O progressive enhancement é uma estratégia para o design web que dá enfâse ao conteúdo principal da página. Esta estratégia passa por adicionar progressivamente mais nuances, camadas de apresentação e recursos sobre o conteúdo principal, de acordo com a velocidade e condições de acesso de dados disponível em cada momento. O benefício desta estratégia é permitir que todos os utilizadores possam ter acesso ao conteúdo e à funcionalidade base de uma página da web, usando qualquer navegador ou ligação à Internet, além de fornecer uma versão mais completa da página para aqueles utilizadores que possuam navegadores de Internet mais avançados ou que tenham disponível uma maior largura de banda.

Vantagens:

  • O utilizador não precisa de instalar a aplicação no dispositivo móvel;

  • Os custos de desenvolvimento são mais baixos do que no desenvolvimento de uma aplicação nativa, porque são utilizadas linguagens de programação comuns de desenvolvimento de aplicações web;

  • É mais fácil disponibilizar as atualizações porque estas poderão ser automaticamente disponibilizadas e não estão dependentes da loja de aplicações.

Desvantagens:

  • Não é possível utilizar todas as funcionalidades avançadas e nativas do dispositivo móvel.
Aplicação Nativa

Uma aplicação nativa (App Nativa) é definida como uma aplicação cujo código de programação é específico para o dispositivo móvel. São disso exemplo o uso de Objective C para sistema operativo iOS ou de Java para o sistema operativo Android.

Vantagens:

  • Desempenho rápido e um nível alto de fiabilidade;
  • Disponibiliza uma ligação fácil a muitas das funcionalidades nativas do dispositivo, como a câmara, contactos, calendário e outas características como o giroscópio, gps, touch Id, etc.
  • Algumas aplicações podem ser utilizadas sem ligação à Internet.

Desvantagens:

  • O desenvolvimento destas aplicações apresenta custos de desenvolvimento mais elevados, bem como será necessário mais tempo para o seu desenvolvimento, por causa da sua dependência da linguagem específica do sistema operativo do dispositivo.
  • O desenvolvimento destas aplicações obriga a duplicar a aplicação noutras linguagens de programação para conseguir apresentar noutros dispositivos baseados em sistemas operativos distintos.
Aplicação Híbrida

Uma aplicação híbrida (App Híbrida) é muito semelhante a uma App Nativa, no sentido em que pode ser encontrada e instalada através da loja de aplicações (App store) do fabricante do sistema operativo do dispositivo (por exemplo: PlayStore da Google). A diferença entre as aplicações nativas e as aplicações híbridas encontra-se no processo de desenvolvimento.

Vantagens:

  • As aplicações Híbridas são desenvolvidas utilizando linguagens de programação comuns ao desenvolvimento de aplicações web como HTML 5, CSS e Javascript.
  • São utilizáveis em todos os tipos de dispositivo e o código precisa de ser escrito apenas uma vez, em que apenas o contexto de execução é nativo ao sistema operativo do dispositivo.
  • Os custos e o tempo necessários ao desenvolvimento deste tipo de aplicações são menores do que no caso das aplicações nativas.

Desvantagens:

  • Apesar do desempenho deste tipo de aplicações ser semelhante ao das aplicações nativas, no caso das aplicações com necessidades de gráficos de alta qualidade, ocorre uma degradação do desempenho da aplicação.
  • Precisam de um plugin nativo (o contexto de execução) para conseguir aceder às funcionalidades nativas do dispositivo como por exemplo o touch ID e a câmara. Se não existir um plugin nativo, será necessário desenvolvê-lo, o que poderá ser uma tarefa mais complexa.
  • Todas as aplicações híbridas estão dependentes de frameworks e bibliotecas open source, como o Ionic ou o Cordova.
Progressive Web Applications

Algumas tecnologias emergentes permitem evoluir as aplicações web e torná-las em aplicações web progressivas (progressive web applications - PWA). Estas tecnologias disponibilizam funcionalidades que até agora estavam disponíveis apenas para aplicações nativas ou híbridas.

Exemplos de funcionalidades que poderemos tirar partido com o uso de pwa:

  • Adicionar ícones ao ecrã principal do telemóvel
  • Enviar notificações push ao utilizador
  • Disponibilizar um serviço quando o utilizador está sem ligação à Internet
  • Integrar um serviço com outras partes do telemóvel, como por exemplo a câmara fotográfica

A utilização de PWAs permite que os utilizadores deixem de estar dependentes da instalação de novas versões das aplicações para terem acesso a novas funcionalidades e correção de bugs.