/Desenvolvimento

voltar
/Desenvolvimento

Falandos sobre aplicativos Web progressivos

PorKemel Zaidan em

A web tomou de assalto o mundo da computação ao ponto de termos hoje um equivalente web para praticamente qualquer software imaginável. Isso mudou os nossos hábitos e fez com que consumíssemos software como serviço, bastando que o acesso a Internet através de um navegador estivesse garantido.

Ao mesmo tempo, vimos a web avançar lentamente sobre outros campos, invadindo os desktops e chegando até mesmo aos dispositivos embarcados como SmartTVs e outros IoTs, territórios tradicionalmente ocupados por linguagens mais próximas do hardware, como C e C++.

Desde o crescimento de uso dos dispositivos móveis, uma série de novas APIs foram gradualmente incorporadas à web, possibilitando o acesso aos diferentes sensores e hardwares presentes nos celulares atuais, tais como GPS, acelerômetro, microfone, câmera etc. Aplicações cada vez mais complexas podem ser desenvolvidas apenas com HTML, JavaScript e CSS.

Progressive web apps vieram justamente para tomar parte do espaço que hoje é dominado pelas aplicações nativas. No fundo, apps web progressivos nada mais são do que web apps responsivos. Contudo, o time do Google Chrome cita 10 conceitos fundamentais que diferenciam apps progressivos de web apps comuns:

  1. Seguros: é necessário usar HTTPS para evitar que o conteúdo acessado possa ser visualizado por terceiros;
  2. Progressivos: o usuário começa acessando um website e pode optar por instalar a aplicação como um app, inclusive para acesso offline;
  3. Responsivos: ajustável para qualquer formato: desktop, mobile, tablet ou o que quer que venha pela frente;
  4. Independentes de conectividade: com uso de service workers para execução offline ou em redes de baixa velocidade;
  5. Aspecto de App: sensação, interações e navegação no estilo de apps nativos;
  6. Atualizados: sempre atualizados graças ao processo via service worker;
  7. Encontráveis: identificáveis como “aplicações” graças aos padrão W3C para manifests e registro de service worker, o que permite que sejam indexados por mecanismos de busca;
  8. Reengajadores: torne o engajamento fácil através de recursos como notificações push;
  9. Instaláveis: permita que usuários instalem os apps que considerarem mais úteis na tela de home sem que seja preciso passar por uma app store;
  10. Lincáveis: compartilhamento fácil através de URL e sem instalações complexas.

Não confunda apps progressivos com aplicações feitas em Apache Cordova, React Native, NativeScript, Electron ou NW.js. Essas tecnologias embarcam uma aplicação web em um contêiner executável, tal qual um .apk, .exe ou outros formatos existentes.

Por mais que você goste de desenvolver aplicações nativas, não há como negar que elas pecam no quesito produtividade: escrever uma base de código diferente para cada plataforma móvel (Android, iOS, Windows etc.) e outra para a web é algo escalável apenas para grandes empresas.

O conceito de apps progressivos é diferente. A ideia é oferecer uma experiência uniforme e otimizada para dispositivos móveis tanto no acesso web quanto na utilização offline “appficada”.

Quem quiser saber mais sobre o assunto, pode começar pela palestra que Sergio Lopes fez no FrontinSampa e acessar a página do Google sobre progressive apps. Não deixe de acessar o site pwa.rocks com exemplos de bons aplicativos que utilizam a técnica.

***

Texto publicado originalmente na coluna “Post do Kemel” na revista Locaweb #64

Deixe um comentário! 3

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentando como Anônimo

    1. Essa é uma questão sempre levantada quando se fala desse assunto, Jaedson. Porém, imagine que o seu site mobile já é bastante rápido, pois o desenvolvimento levou isso em conta na hora de criá-lo.

      Agora imagine que esse mesmo site já está todo cacheado no device do usuário. Certamente o desempenho será ainda melhor. Acontece que a questão não é essa, pois a maior parte do apps (nativos ou não) não são feitos para trabalharem offline. A ideia é sempre que ele utilize dados que estão na rede seja qual for a tecnologia utilizada para isso.

      Na verdade, a alternativa que os aplicativos web progressivos oferecem é oferecer uma boa experiência, otimizada para dispositivos móveis, tanto para o usuário que faz um uso eventual de um serviço/site, quanto para alguém que é um “heavy user” do mesmo, com todas as vantagens que a web oferece, como atualização sem ter que passar por app stores, etc.

leia mais