Palestra apresentada no QCon São Paulo 2018 - Um dos grandes desafios na relação entre a oferta de um produto online e o cliente em potencial é garantir uma experiência imersiva que resulte em um engajamento que o induza a escolher seu produto ao invés da concorrência e consequentemente aumente a taxa de conversão online.
Nesta palestra, será apresentada a abordagem técnica que transformou um produto mínimo viável que tinha por objetivo experimentar uma alternativa de busca de pacotes turísticos por mapa em um aplicativo web progressivo que permitiu o vislumbre de grande potencial para o aumento das conversões online, bem como a aceitação e o investimento dos stakeholders.
Serão apresentadas abordagens para o service worker e manifesto de aplicativos web que permitem uma experiência imersiva na tela inicial do usuário como um aplicativo nativo, fornecendo a gestão de cache com indexedDB API, notificações Push e interações ágeis.
Além disto, serão discutidos os desafios encontrados durante a implementação, bem como os ajustes arquiteturais necessários para a evolução e garantia no processo de maturidade do projeto.
13. “Experiência de usuário abrange todos os aspectos da
interação entre o usuário final e a empresa, seus
serviços e seus produtos.”
Nielsen Norman Group
23. Permitir o uso do app mesmo em conexões lentas ou inexistentes
24. O que esses princípios podem proporcionar?
Aumento da taxa de conversão
25. Vantagens
● Nenhuma instalação física do aplicativo é necessária.
● Não há necessidade de visitar a loja de aplicativos.
● Pode ser atualizado automaticamente.
● É adequado para o sites de comércio eletrônico.
27. Desvantagens
● Embora possua muitos recursos, ainda não há suporte a todos
os recursos, como um app nativo
● Em casos que requerem mais complexidade, como jogos, o
PWA não substitui totalmente um app nativo.
28.
29. Como construir um Progressive Web App
● Mobile First
○ Leveza e rapidez
○ Layout responsivo
○ Experiência de app nativo
30. Progressivo
● Funcionar em qualquer navegador
● Em qualquer sistema operacional
● Para qualquer nível de usuário
31. Progressive Web App Checklist
https://developers.google.com/web/progressive-web-apps/checklist
Básico ou completo conforme as necessidades de negócio
32. Site servido com HTTPS
Quanto custa? Nada, é gratis: https://letsencrypt.org/
33. Páginas responsivas
Não basta apenas ajustar o conteúdo na tela do dispositivo!
App-like: O usuário deve se sentir em um app nativo
Como saber? https://search.google.com/test/mobile-friendly
47. Carregamento rápido em conexão 3G
● PageSpeed:
https://developers.google.com/speed/pagespeed/insights/
● Otimização de imagens
○ Kraken: https://kraken.io/
○ Imaginary: https://github.com/h2non/imaginary
○ Thumbor: https://github.com/thumbor/thumbor
● Políticas de cache
● Tratando os scripts que bloqueiam a renderização
● Reduzindo o tempo de resposta do servidor
48. Transição entre páginas não deve demonstrar bloqueio de rede
● Efeitos de transição são facilmente implementáveis apenas
com CSS
● Tela de esqueleto: http://hannahatkin.com/skeleton-screens/
49. As páginas devem ter URLs exclusivas e amigáveis
● Permite melhorar a indexação
● Permite o compartilhamento amigável das páginas
50. Experiência imersiva e engajamento do usuário
● Parece um app nativo
● Se comporta como app nativo
● Tem recursos de app nativo
● Mas não é um app nativo!
51.
52. Experiência imersiva e engajamento do usuário
Parece um app nativo, se comporta como app nativo, tem recursos
de app nativo, mas não é um app nativo!
● Layout de app
● Push Notifications
57. Desafios de implementação e arquiteturais na CVC
● Feature nova, tecnologias e arquitetura diferentes do legado
○ React + Redux
○ Apollo
○ Saga
○ GraphQL
○ NodeJS
58. Desafios de implementação e arquiteturais na CVC
E agora? O que fazer com o site/e-commerce legado?
● Dividir para conquistar
● Problemas com Service Worker e Service Worker Precache
● Limitações por regras de negócio
○ Partes do e-commerce não podem ser offline
● Mudança na arquitetura do software
● Melhorias na infraestrutura
● Implementação de processador de imagens para melhorar web
performance