41
PROGRESSIVE WEB APPS Adquirindo super-poderes PROGRESSIVAMENTE

Progressive Web Apps

Embed Size (px)

Citation preview

Page 1: Progressive Web Apps

PROGRESSIVE WEB APPS

Adquirindo super-poderes PROGRESSIVAMENTE

Page 2: Progressive Web Apps

SORRY!

Page 3: Progressive Web Apps

eu sou uma Progressive Web AppPRAZER,

Page 4: Progressive Web Apps

O QUE É uma PWA?NÃO é uma especificação

PROGRESSIVE por adquirir poderes progressivamente de acordo com a capacidade dos browsers

EVOLUÇÃO de ideias que foram surgindo e amadurecendo ao longo dos anos que podem ser melhor aplicadas hoje, no cenário atual

É uma BUZZWORD que de novo mesmo tem pouca coisa

Page 5: Progressive Web Apps

VANTAGENS de apps nativas?

Ótima PERFORMANCE

Facilmente ACESSÍVEL a partir da home screen

ANIMAÇÕES e INTERAÇÕES suaves

Page 6: Progressive Web Apps

DESVANTAGENS de apps nativas?

TEMPO de instalação

Não é COMPARTILHÁVEL

ATUALIZAÇÃO não costuma ser um procedimento padrão

Lidar com devices com baixa MEMÓRIA

Page 7: Progressive Web Apps

Show me your POWERS!

Page 8: Progressive Web Apps

VANTAGENS de uma PWAINSTALÁVEL (mas ainda compartilhável usando URLs)

É possível utilizar PUSH NOTIFICATIONS

Pode funcionar OFFLINE e conexões lentas

CARREGAMENTO INSTANTÂNEO e com splash screen (apps nativas)

Excelente RENDERIZAÇÃO e ANIMAÇÕES SUAVES com 60fps

Ainda funciona como uma web app normal, acessível pelo BROWSER

SEGURANÇA, pois service workers requerem tráfego usando HTTPS

Page 9: Progressive Web Apps

DESVANTAGENS de uma PWA

Ainda é algo muito RECENTE

Não é possível usar todas as FUNCIONALIDADES NATIVAS do device (https://whatwebcando.today)

COMPATIBILIDADE dos navegadores

Requer um nível mais alto de EXPERIÊNCIA dos desenvolvedores para gerar algo de ALTA QUALIDADE

Page 10: Progressive Web Apps

QUEM veio para a festa?

Page 11: Progressive Web Apps

APPLE não quer dançar a música que está tocando

Page 12: Progressive Web Apps

INGREDIENTES de uma PWA

1. APPLICATION SHELL

3. SERVICE WORKERS

2. WEB APP MANIFEST

Page 13: Progressive Web Apps

1. Application Shell

Page 14: Progressive Web Apps

Application Shell

No MODELO PADRÃO, toda a página, inclusive o conteúdo é gerada no servidor antes de ser entregue para o browser.

PWAs separam as partes que são ALTERADAS COM FREQUÊNCIA, que são essencialmente o conteúdo, das partes que não sofrem tantas mudanças

Page 15: Progressive Web Apps

APPLICATION SHELL representa o MÍNIMO de HTML, CSS e JS requerido para fornecer a INTERFACE para a PWA garantindo uma boa performance.

Primeiro carregamento é EXTREMAMENTE RÁPIDO e vai imediatamente para o CACHE

Nas requisições sequentes a PWA não precisa carregar tudo novamente, apenas os dados necessários

Application Shell

Page 16: Progressive Web Apps

O QUE deve estar no meu Application Shell?

O que precisa estar na PRIMEIRA TELA imediatamente?

Quais componentes da INTERFACE são essenciais para o aplicativo?

Quais os assets necessários (javascripts, styles, imagens etc)

Page 17: Progressive Web Apps

2. Web App Manifest

Page 18: Progressive Web Apps

Web App Manifest

Arquivo de configuração JSON

DEFINE nome, ícones, splash screen, theme color, modo full screen, orientação da tela

App ISOLADA no gerenciador de tarefas como qualquer outro aplicativo

Page 19: Progressive Web Apps

EXEMPLO Web App Manifest

Page 20: Progressive Web Apps

Web App Manifest VALIDATOR

Page 21: Progressive Web Apps

Web App INSTALL BANNER

Funcionalidade somente do CHROME

BANNER sugerindo ao usuário instalar seu aplicativo na home screen

REQUISITOS: service workers, web app manifest, engajamento do usuário

EVENTOS: antes de exibir o banner, após instalar o app etc. Existem opções no dev tools para testar esses eventos

Page 22: Progressive Web Apps

3. Service Workers

Page 23: Progressive Web Apps

Service Workers

É um arquivo JAVASCRIPT que roda em BACKGROUND, separado da sua página, que não precisa estar aberta

Como um PROXY que fica entre o browser e o servidor interceptando as requisições e decidindo como agir

Fornece PODERES para PWAs existirem ALÉM do browser

Page 24: Progressive Web Apps

Service Workers

Pode definir quais EVENTOS que irão despertar o service worker (push notifications, sincronização quando conexão for restaurada etc)

Por interceptar as requisições necessita HTTPS (exceto desenvolvimento), oferecendo SEGURANÇA

Ao interceptar requisições, pode fazer CACHE dos recursos e usá-los como resposta em requisições subsequentes, respondendo instantaneamente e offline

Page 25: Progressive Web Apps

REGISTRANDO Service Worker

Page 26: Progressive Web Apps

REGISTRANDO Service Worker

Page 27: Progressive Web Apps

ESCOPO Service Worker

Page 28: Progressive Web Apps

INSTALANDO Service Worker

Page 29: Progressive Web Apps

INTERCEPTANDO REQUISIÇÕES Service Worker

Page 30: Progressive Web Apps

DICAS Service Workers

Utilize o MODO ANÔNIMO para se certificar que os service workers e qualquer coisa que esteja em cache irão expirar

chrome://serviceworker-internals - service workers instalados e seus estados. Você pode atualizá-los ou removê-los

Page 31: Progressive Web Apps

DICAS Service WorkersATENÇÃO: Várias abas abertas compartilham o mesmo service worker. Ao atualizar o service worker a versão mais recente fica inativa até que todas as abas sejam fechadas ao se fechar a janela

Page 32: Progressive Web Apps

DICAS Service WorkersUse a guia Resources do Chrome Dev Tools para checar o que está acontecendo com service workers, cache, armazenamento etc

Page 33: Progressive Web Apps

COMPATIBILIDADE Service Workers

Page 34: Progressive Web Apps

FÁCIL de usar e baseado em chave-valor

ARMAZENAMENTO Local Storage

Pode armazenar APENAS STRINGS

SÍNCRONO

DISPONÍVEL em quase todos os navegadores

NÃO é transacional

Deve ser EVITADO!

Page 35: Progressive Web Apps

ARMAZENAMENTO Caches Object

FÁCIL de usar

ASSÍNCRONO

Muito RÁPIDO

NÃO é transacional

RECENTE e possui compatibilidade muito baixa

Page 36: Progressive Web Apps

ARMAZENAMENTO IndexedDB

RÁPIDO

Permite armazenas DADOS COMPLEXOS

ASSÍNCRONO

TRANSACIONAL

Alta COMPATIBILIDADE

Page 37: Progressive Web Apps

ARMAZENAMENTO IndexedDB

DIFICULDADE de uso da API, que exige várias configurações e manuseio de callbacks

Biblioteca FACILITAM O USO:1 - localForage - publicado pela Mozilla, fornece uma API parecida com Local Storage2 - LoveField - fornece uma API parecida com SQL

Opção mais INDICADA

Page 38: Progressive Web Apps

EXEMPLOS de PWAs

FLIPBOARD - Aplicativo agregador no formato de revistas traduzidos em mais de 20 idiomas

Usuários ativos por mês cresceram 75%. Na web usuários podem chegar até um site através de um simples click

FLIPKART - Mais popuplar ecommerce Indiano63% dos usuários com internet 2G. Adicionaram service workers e simplificaram o site, facilitando a busca dos produtos e usando 3x menos dados do usuário. Navegação e visualização dos produtos offline resultaram em aumento de engajamento e vendas

Page 39: Progressive Web Apps

#sóquenão

Page 40: Progressive Web Apps

Referências

https://classroom.udacity.com/courses/ud811

https://www.youtube.com/watch?v=sH7dlRnuh-k&feature=youtu.be&a=

http://hipsters.tech/progressive-web-apps-hipsters-03

https://www.smashingmagazine.com/2016/08/a-beginners-guide-to-progressive-web-apps/

Page 41: Progressive Web Apps

OBRIGADO!