Busca avançada

Entregando mais Apps com PWA

terça-feira, 6 de novembro de 2018 por Eduardo Spaki
Entregando mais Apps com PWA

Esse é o progresso, ou melhor, o Progressive Web Apps (PWA). O que um dia foi uma aposta do Google para mais uma revolução no mundo tecnológico, hoje se mostra uma estratégia extremamente inteligente para lançar aplicativos mobile.

Um pouco de história

Não faz muito tempo, em muitas conversas casuais era possível ouvir a frase “você precisa estudar um pouco de história”. Pois bem, vamos entender um pouco dos ciclos pelo qual o desenvolvimento de software tem passado.

Na década de 1980, era comum empresas adotarem em seus centros de processamento de dados (CPDs), grandes computadores conhecidos como mainframes. Em sua grande maioria eram máquinas que ocupavam uma sala inteira e executavam aplicativos de propósito empresarial, muitos escritos em COBOL. Para acessar essa “belezinha” era preciso de um equipamento conhecido como “terminal burro”, pois ele era um equipamento que fornecia monitor (de fósforo verde, no melhor estilo Matrix) e um teclado “cor-de-creme”. Esse terminal não dispunha de poder de processamento algum, tudo acontecia dentro do mainframe, de maneira remota, por isso era considerado “burro”.

Na década de 1990 despontou a computação pessoal. Ponto para o Windows, com os IBM PCs. Ou seja, um aparelho relativamente compacto, que caberia na escrivaninha do seu escritório, ou até mesmo em sua sala, e todo o processamento ocorreria ali mesmo, localmente.

Haviam diversos aplicativos: De ferramentas de escritório até mesmo games em 3D. Escrito em diversas linguagens, como por exemplo C++, Visual Basic, Delphi etc.

Tudo ia bem na conta do senhor Bill Gates, detentor do Windows, até que nos anos 2000 uma tal de Internet se popularizou e uma empresa chamada Netscape fez um barulho ao lançar um tal de browser:

Um programa de computador onde era possível acessar páginas web.

Não demorou para perceberem a possibilidade de eu executar novamente aplicações remotas. Como? Com linguagens web, por exemplo o PHP, era possível executar o processamento em um servidor e renderizar páginas web dinâmicas. Muitos desenvolvedores e empresas viram isso como uma chance de centralizar processamento e armazenamento de dados, tornando a informação disponível para qualquer computador com Internet.

E mais uma vez, pouco tempo depois (mais precisamente em 2007) o poder de processamento voltou a se concentrar na mão do usuário, literalmente. Steve Jobs lançava o iPhone e com ele a mania dos apps.


O que é?

O Google percebeu que os apps tinham muitas vantagens, mas também muito empecilhos, por exemplo: Para lançar um app, você tem, muito provavelmente, que aprender uma série de tecnologias novas, como o caso da linguagem de programação Swift ou até mesmo Objective-C, ambas para iOS.

Além disso, você deve publicá-lo em uma “loja de aplicativos”, o que requer uma assinatura anual de desenvolvedor mobile (paga em dólar), e você estará no meio de uma selva com milhares de concorrentes.

Algumas estatísticas apontam que de cada dois usuários que baixam sua aplicação, instalam e usam, oito abandonam o processo pela metade (80% de desistência).

E muitos apps são de propósito superficial, como uma campanha de marketing, ou de uso esporádico, como pagamento de estacionamento de shopping. Esse último caso é curioso: imagine cada vez que você viajar, ter que baixar o app do shopping da cidade em que está visitando, na sua conexão 3G/4G… 50mb de puro lucro para a operadora!

Tendo isso em mente, veio a proposta dos PWAs, que são páginas web que conseguem funcionar off-line (sem aquele “dinossaurinho” do Chrome), quando não há conexão. Se bem trabalhadas, elas têm experiência e fluidez que literalmente confundem os usuários que estão na web ou dentro de um app.

Por serem páginas web, não há necessidade de aprender novas linguagens de programação (no caso de um desenvolvedor que já é familiarizado com a web). Também não é necessário assinar nenhuma loja de aplicativos, pois é uma página da web, disponível para qualquer usuário.

Progressivo de várias maneiras

Não há uma coisa nova, mas sim um conjunto de práticas adotadas de maneira progressiva, que tornarão sua página web um PWA.

Para tal, é necessário ter um design responsivo e fluído, que se adapte antes de mais nada ao ambiente mobile. E isso é perfeitamente praticável hoje em dia somente com CSS + HTML + Javascript.

Pense/Desenvolva sua aplicação web como um SPA (Single Page Application), onde sua aplicação irá carregar todos os layouts necessários no início, e os dados sob demandas, para depois serem “conectados” (binding) com os layouts. Isso é natural para desenvolvedores que utilizam React, Angular, Knockout etc.

E o cérebro da coisa toda: ServiceWorker:

Um componente presente nos navegadores atuais (assim como o XMLHTTPRequest, do AJAX), que se expande até o sistema operacional. Com ele é possível rodar processos em background (mesmo com o navegador fechado), fazer cache de chamadas HTTP (funcionando como um proxy) e até mesmo receber push notification!

Lembrando que, para trazer alguma experiência para o usuário, é bom fazer cache do que é essencial para a aplicação executar offline. Então, sim, o primeiro acesso precisa de Internet, mas com tudo configurado, sua aplicação continuará executando, mesmo se a conexão do usuário/dispositivo cair.

O Chrome já identifica as páginas web que funcionam nesse formato e sugere ao usuário que a instale como um aplicativo, na home do dispositivo. Ou seja, até para os usuários é progressivo: entram em uma página web e terminam com um app novo.

Esse é o futuro?

Essa é a realidade, até a Trivago (sim, aquela que ocupa 90% dos comerciais da TV a cabo) adotou a ideia como mainstream.

O que é possível fazer com PWA? Quem nunca gastou um tempinho em algum jogo casual da Internet, feito em HTML 5? Dá até para fazer algo usando giroscópio. Então sim, até jogos seriam possíveis de se tornarem um PWA.

Eis que surge aquela velha questão: Mas e o nativo? Bem, essa fica para outro post.

No mais é só vantagens.

Fontes:

https://medium.com/@sahnikraj/game-of-throne-mobile-web-vs-mobile-apps-what-future-holds-6e6b6151ca1b

https://www.pwastats.com/

https://www.motocms.com/blog/en/google-progressive-web-apps/

Compartilhar