Nos dias 23 e 24 de setembro, rolou a RubyConf, que focou em trazer novas linguagens/tecnologias além do bom e velho Ruby. Uma palestra bem legal foi dada por Sérgio Lopes, da Caelum/Alura, trazendo um pouco sobre a evolução dos Progressive Web Apps e como tomar a decisão certa ao iniciar o desenvolvimento de um novo serviço.

Webapp x Aplicativo

“Grande parte dos Shopping Centers atualmente possuem aplicativos próprios para que o consumidor possa ter acesso a serviços como lista de lojas, pagamento do estacionamento, alerta de promoções, etc. Mas quem disse que o usuário precisa de um aplicativo para um Shopping que ele vai uma vez na vida e talvez nem volte? Ele tem que baixar 35MB para poder validar um ticket de estacionamento?” Foi com base nesse contexto, que Sergio desenvolveu sua apresentação.

Muitas das empresas, antes do início do desenvolvimento de seus aplicativos, acabam prejudicando a experiência do usuário através de decisões erradas, como a plataforma a ser desenvolvida. Seria muito mais fácil se um serviço como pagamento de um ticket fosse feito através do navegador, pois consumiria muito menos recursos do usuário, facilitando seu acesso.

A desconfiança por parte da empresa é que a experiência mobile possa ser “menos cool” em um navegador ao invés de um aplicativo nativo. ERRADO!

Pra quem não conhece, já existem UI Frameworks que garantem uma experiência muito simular a de um aplicativo, como o Material Design da Google. Grande parte dessas bibliotecas fornecem uma série de componentes graficamente customizados para parecem um aplicativo, como botões, menus, listas, etc. Se seu webapp se parecer com um aplicativo, você já deu um grande passo, mas ainda não é tudo.

Afinal, o que é um Progressive Web App?

O conceito de Progressive Web Apps consiste em implementar funcionalidades progressivamente, ou seja, à medida que o usuário interage com ele. Para isso, existem alguns conceitos básicos envolvidos:

1 — Sempre disponível

Temos uma série de diferentes celulares hoje no mercado. Desta forma, existem diferentes browsers, tecnologias suportadas e tamanhos de tela. Entretanto, toda funcionalidade deve estar disponível. Tomando como exemplo o webapp do Shopping Center, o usuário necessita pagar o seu ticket de estacionamento. Para isso, deve haver uma caixa de texto para inserção do código daquele vale. Todo e qualquer usuário terá esse recurso acessível. Porém, grande parte do mercado já possui recursos como o de câmera para reconhecimento de um código, QR Code, etc. Dessa maneira, a funcionalidade de inserção de código é implementada progressivamente, pois o usuário não precisa mais digitar o seu cupom.

2 — Engajar o usuário

Esse tipo de aplicativo deve possuir funcionalidades para trazer o usuário de volta ao serviço, como push notifications. No aplicativo do Shopping, seria possível enviar notificações de promoções de produtos à medida que o usuário estivesse a 5 km do local, por exemplo.

3 — Instalável

Hoje, existem recursos para que o usuário possa instalar aplicativos web como esse em seu celular, salvando os que considerar mais úteis. Dessa maneira, caso fosse de seu, seria possível a instalação após o primeiro uso da ferramenta.

O que achei?

A palestra conseguiu abordar de forma simples e não muito profunda, como decidir a melhor maneira de iniciar sua aplicação. Também provou que 95% dos casos podem ser resolvidos com soluções WEB, mostrando que as fronteiras entre browser e app estão cada vez menores, trazendo alegrias para os usuários, designers e desenvolvedores 🙂

Abaixo, ficam os links da apresentação e aplicativo mostrados no evento:

Apresentação
Aplicativo Shopping