SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
O poder das
PROGRESSIVE WEB APPS
Pedro Barros
Vamos nos conhecer!?
Pedro Barros - 21 anos
Maceió/AL
● Desenvolvedor em Unimed Maceió;
● Formado Técnico em Informática;
● Graduado em Análise e
Desenvolvimento de Sistemas;
● Pós-graduando em Engenharia de
Software.
Redes sociais
pedroebarros
ped.barros
pedbarros
pedbarros
O design responsivo indica uma técnica
de design web para a criação de sites
capazes de se adaptar automaticamente ao
dispositivo com o qual eles são exibidos
(computadores com diferentes resoluções,
tablets, smartphones, telefones
celulares, web tv ), minimizando a
necessidade do usuário redimensionar e
percorrer o conteúdo.
https://it.wikipedia.org/wiki/Design_responsivo
Qual o cenário atual?
● Buscar o app na Loja Virtual ou clicar em um
link no rodapé de um website que você já está
navegando;
● Verificar se tem espaço no smartphone;
● Efetuar o download (2G, 3G, 4G, Wi-Fi, etc);
● Iniciar o processo de instalação;
● Cadastrar quando é necessário;
● Utilizar praticamente a mesma coisa que estava
utilizando...;
● Compartilhar conteúdo via print-screen em redes
sociais.
80%de TODO tempo gasto em um smartphone é utilizando até 5 apps
66% 57,5% 32,4% 20,4% 12,3%
Julho 2017
De acordo com o Comscore Mobile App Report, mais de 50% dos
usuários de smartphones da América, não baixam nenhum
aplicativo por mês.
Isso significa, que o tempo em que nosso telefone costumava
ser preenchido com aplicativos está desaparecendo lentamente!
https://www.comscore.com/Insights/Presentations-and-Whitepapers/2017/The-2017-US-Mobile-App-Report
Qual seria o cenário dos meus
sonhos?
● Acabar com a instalação dos aplicativos
nos devices;
● Aplicativos web com uma experiência
agradável;
● Segurança dos dados;
● Suporte Offline
● Sempre atualizado;
● Utilização de links para compartilhar
conteúdo.
Progressive Web App usa a modernidade da web
possibilitando uma experiência de um aplicativo
nativo.
Addy Osmani - Engineering Manager at Google
Jobs já tinha uma visão desde 2007...
Vocês já tem tudo o que precisam se querem
saber como desenvolver aplicativos para o
iPhone hoje: basta usar os padrões modernos da
web.
As PWAs são formadas por:
● API abertas da WEB;
● Service Workers;
● Web Manifest;
● Boas práticas (acessibilidade, UX, responsividade,
performance, etc).
Como funciona?
PWA
● Instaláveis
● Responsivo
● Visual Appficado
● Offline
● Seguro (https)
● Indexável
● Linkável
● Features:
○ Splash Screen
○ Push Notification
○ Geolocation
○ BackgroundSync
○ Vibration
Service Workers
● É um script que seu navegador
executa em segundo plano;
● Tem um ciclo de vida totalmente
separado da página da Web;
● É baseado em código JavaScript
puro;
● Interceptar requisições;
● Controle do cache;
● Trabalhar Offline.
Lifecycle Service Workers
https://jakearchibald.github.io/isserviceworkerready/
Necessidades básicas humana
INTERNET
A web “nativa”
https://pwa.rocks/
Flipkart
● Maior e-commerce da Índia;
● 400% a mais tempo utilizando o
site (PWA);
● 3x mais tempo gasto no site
● 40% maior taxa de reengajamento
● 3x menor uso de dados
https://developers.google.com/web/showcase/2016/flipkart
Konga
● Um site de comércio eletrônico líder
na Nigéria
● 92% a menos no gasto dos dados móveis
para carregar a tela inicial;
● 82% a menos no gasto dos dados móveis
para concluir a primeira transação;
https://developers.google.com/web/showcase/2016/konga
Application Shell
E COMO FAZ?
Navegadores que não
suportam Service Workers
simplesmente não saberá
de sua existência
Mais simples que dormir...
if ('serviceWorker' in navigator) {
}
navigator.serviceWorker
.register('/service-worker.js')
.then(function (retorno) {
console.log('Sucesso!');
})
.catch(function (error) {
console.log('Error:'+ error);
});
service-worker.js
var cacheVersion = 'pedro01';
self.addEventListener ('install', function (event) {
});
console .log('[SW] Install' );
event.waitUntil(
);
caches.open(cacheVersion )
.then(function (cache) {
console .log('[SW] Carregando application shell' );
return cache.addAll(filesToCache );
})
var filesToCache = [
"index.html" ,
"css/materialize.css" ,
"css/style.css" ,
"js/init.js" ,
"js/materialize.js"
];
self.addEventListener ('activate', function (event) {
});
console .log('[SW] Activate' );
event.waitUntil(
);
caches.keys().then(function (keyList) {
return Promise.all(keyList.map(function (key) {
}));
})
if (key !== cacheVersion ) {
console .log('[SW] Removendo cache antigo' , key);
return caches.delete(key);
}
self.addEventListener ('fetch', function (event) {
});
console.log('[SW] Fetch' , event.request.url);
event.respondWith (
caches.match(event.request).then(function (response) {
return response
})
);Application Shell
|| fetch(event.request);
Offline First
E PARA DAR “O ROSTO” DE UM
APP?
Web App Manifest
Simples, simples, simples...
Seu amigo “Lighthouse”
npm install -g lighthouse
lighthouse https://arahackerday-4ca60.firebaseapp.com
Agilize seu tempo com o Web App Manifest
Generator
https://app-manifest.firebaseapp.com/
Deixe os caras fazerem por você
https://www.pwabuilder.com/
No desktop
No mobile
No mobile
Projeto
● https://github.com/pedbarros/arahackerday-pwa
PWA é “só” WEB e mobile?
Elas estão desbravando tudo!
https://maps.google.com?force=pwa
O que você está esperando?
Referências
● https://developers.google.com/web/progressive-web-apps/
● https://medium.com/tableless/introdu%C3%A7%C3%A3o-aos-pr
ogressive-web-apps-ad47ba24cddb
● https://jakearchibald.github.io/isserviceworkerready/
● https://brasil.uxdesign.cc/o-que-s%C3%A3o-progressive-we
b-apps-86e1b5306051
● https://en.wikipedia.org/wiki/Progressive_web_app
Perguntas
O que as PWAs são compostas?
R: API abertas da WEB;
Service Workers;
Web Manifest;
Boas práticas (acessibilidade,
UX, responsividade, performance,
etc).
Qual o principal objetivo das
PWA?
R: Garantir uma ótima
usabilidade para os usuários,
podendo que o mesmo possa sentir
está dentro de uma aplicação
nativa, mas utilizando o melhor
da web.
Perguntas
O que acontece se o navegador não
suportar os Service Workers?
R: Não afetará em nada, eles
simplesmente não irão usufruir do
seu “poder”.
Cite 03 características de uma
PWA
R: Instaláveis
Linkável
Offline
Responsivo
Visual Appficado
Seguro (https)
Indexável
Perguntas
Para que serve o Web App Manifest?
R: Fornecer informações sobre o aplicativo, propiciando aos usuários
um acesso mais rápido e uma experiência enriquecida.

Mais conteúdo relacionado

Mais procurados

Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSRodrigo Branas
 
Criando Filtros com AngularJS
Criando Filtros com AngularJSCriando Filtros com AngularJS
Criando Filtros com AngularJSRodrigo Branas
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaHenrique Limas
 
Dando vida ao sketch com Firebase
Dando vida ao sketch com FirebaseDando vida ao sketch com Firebase
Dando vida ao sketch com FirebaseGDGFoz
 
A evolução do AngularJS
A evolução do AngularJSA evolução do AngularJS
A evolução do AngularJSRodrigo Branas
 
Material Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJSMaterial Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJSHenrique Limas
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJSRodrigo Branas
 
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapAplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapThiago Colares
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...minastestingconference
 
AngularJS - Just Digital
AngularJS - Just DigitalAngularJS - Just Digital
AngularJS - Just DigitalJust Digital
 
Como organizar projetos em django
Como organizar projetos em djangoComo organizar projetos em django
Como organizar projetos em djangoLuiz Sotero
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJSRodrigo Branas
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAWilson Mendes
 

Mais procurados (20)

Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Scope AngularJS
Scope AngularJSScope AngularJS
Scope AngularJS
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJS
 
Criando Filtros com AngularJS
Criando Filtros com AngularJSCriando Filtros com AngularJS
Criando Filtros com AngularJS
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o Karma
 
Dando vida ao sketch com Firebase
Dando vida ao sketch com FirebaseDando vida ao sketch com Firebase
Dando vida ao sketch com Firebase
 
A evolução do AngularJS
A evolução do AngularJSA evolução do AngularJS
A evolução do AngularJS
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
Material Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJSMaterial Design simples e rapido com AngularJS
Material Design simples e rapido com AngularJS
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJS
 
Introdução ao AngularJS!
Introdução ao AngularJS!Introdução ao AngularJS!
Introdução ao AngularJS!
 
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapAplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
 
Selenium WebDriver com Docker
Selenium WebDriver com DockerSelenium WebDriver com Docker
Selenium WebDriver com Docker
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
 
AngularJS - Just Digital
AngularJS - Just DigitalAngularJS - Just Digital
AngularJS - Just Digital
 
Como organizar projetos em django
Como organizar projetos em djangoComo organizar projetos em django
Como organizar projetos em django
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJS
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
 

Semelhante a O poder das PWAs: como as Progressive Web Apps podem revolucionar a web

Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?Pedro Edson Silva Barros
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 
Desmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWADesmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWAStefan Horochovec
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBBruno Rocha
 
Flask for CMS/App Framework development.
Flask for CMS/App Framework development.Flask for CMS/App Framework development.
Flask for CMS/App Framework development.Bruno Rocha
 
Mobile First e Offline First
Mobile First e Offline FirstMobile First e Offline First
Mobile First e Offline FirstDan Vitoriano
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaJoselito Nascimento
 
Descomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkDescomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkPablo Garrido
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilInael Rodrigues
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebLeonardo Balter
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)grupouro
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)grupouro
 
Evolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebEvolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebBreno Vitorino
 
Dominando o Ionic Framework
Dominando o Ionic FrameworkDominando o Ionic Framework
Dominando o Ionic FrameworkJunior Abranches
 
Tchelinux: Go Web!
Tchelinux:  Go Web!Tchelinux:  Go Web!
Tchelinux: Go Web!Lucas L.
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasGuilherme
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 

Semelhante a O poder das PWAs: como as Progressive Web Apps podem revolucionar a web (20)

Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
Aplicativos Móveis: PWA, Instants Apps. Vamos entender?
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
Desmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWADesmistificando Progressive Web Apps - PWA
Desmistificando Progressive Web Apps - PWA
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
 
Flask for CMS/App Framework development.
Flask for CMS/App Framework development.Flask for CMS/App Framework development.
Flask for CMS/App Framework development.
 
Mobile First e Offline First
Mobile First e Offline FirstMobile First e Offline First
Mobile First e Offline First
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
 
Descomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao FrameworkDescomplicando o JQuery - Introdução ao Framework
Descomplicando o JQuery - Introdução ao Framework
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento Ágil
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)
 
Evolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebEvolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações Web
 
Dominando o Ionic Framework
Dominando o Ionic FrameworkDominando o Ionic Framework
Dominando o Ionic Framework
 
Tchelinux: Go Web!
Tchelinux:  Go Web!Tchelinux:  Go Web!
Tchelinux: Go Web!
 
Palestra sobre o FirefoxOS
Palestra sobre o FirefoxOSPalestra sobre o FirefoxOS
Palestra sobre o FirefoxOS
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvas
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 

O poder das PWAs: como as Progressive Web Apps podem revolucionar a web

  • 1. O poder das PROGRESSIVE WEB APPS Pedro Barros
  • 3. Pedro Barros - 21 anos Maceió/AL ● Desenvolvedor em Unimed Maceió; ● Formado Técnico em Informática; ● Graduado em Análise e Desenvolvimento de Sistemas; ● Pós-graduando em Engenharia de Software. Redes sociais pedroebarros ped.barros pedbarros pedbarros
  • 4. O design responsivo indica uma técnica de design web para a criação de sites capazes de se adaptar automaticamente ao dispositivo com o qual eles são exibidos (computadores com diferentes resoluções, tablets, smartphones, telefones celulares, web tv ), minimizando a necessidade do usuário redimensionar e percorrer o conteúdo. https://it.wikipedia.org/wiki/Design_responsivo
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Qual o cenário atual? ● Buscar o app na Loja Virtual ou clicar em um link no rodapé de um website que você já está navegando; ● Verificar se tem espaço no smartphone; ● Efetuar o download (2G, 3G, 4G, Wi-Fi, etc); ● Iniciar o processo de instalação; ● Cadastrar quando é necessário; ● Utilizar praticamente a mesma coisa que estava utilizando...; ● Compartilhar conteúdo via print-screen em redes sociais.
  • 11. 80%de TODO tempo gasto em um smartphone é utilizando até 5 apps 66% 57,5% 32,4% 20,4% 12,3% Julho 2017
  • 12. De acordo com o Comscore Mobile App Report, mais de 50% dos usuários de smartphones da América, não baixam nenhum aplicativo por mês. Isso significa, que o tempo em que nosso telefone costumava ser preenchido com aplicativos está desaparecendo lentamente! https://www.comscore.com/Insights/Presentations-and-Whitepapers/2017/The-2017-US-Mobile-App-Report
  • 13. Qual seria o cenário dos meus sonhos? ● Acabar com a instalação dos aplicativos nos devices; ● Aplicativos web com uma experiência agradável; ● Segurança dos dados; ● Suporte Offline ● Sempre atualizado; ● Utilização de links para compartilhar conteúdo.
  • 14. Progressive Web App usa a modernidade da web possibilitando uma experiência de um aplicativo nativo. Addy Osmani - Engineering Manager at Google
  • 15. Jobs já tinha uma visão desde 2007... Vocês já tem tudo o que precisam se querem saber como desenvolver aplicativos para o iPhone hoje: basta usar os padrões modernos da web.
  • 16. As PWAs são formadas por: ● API abertas da WEB; ● Service Workers; ● Web Manifest; ● Boas práticas (acessibilidade, UX, responsividade, performance, etc).
  • 18. PWA ● Instaláveis ● Responsivo ● Visual Appficado ● Offline ● Seguro (https) ● Indexável ● Linkável ● Features: ○ Splash Screen ○ Push Notification ○ Geolocation ○ BackgroundSync ○ Vibration
  • 19. Service Workers ● É um script que seu navegador executa em segundo plano; ● Tem um ciclo de vida totalmente separado da página da Web; ● É baseado em código JavaScript puro; ● Interceptar requisições; ● Controle do cache; ● Trabalhar Offline.
  • 25. Flipkart ● Maior e-commerce da Índia; ● 400% a mais tempo utilizando o site (PWA); ● 3x mais tempo gasto no site ● 40% maior taxa de reengajamento ● 3x menor uso de dados https://developers.google.com/web/showcase/2016/flipkart
  • 26. Konga ● Um site de comércio eletrônico líder na Nigéria ● 92% a menos no gasto dos dados móveis para carregar a tela inicial; ● 82% a menos no gasto dos dados móveis para concluir a primeira transação; https://developers.google.com/web/showcase/2016/konga
  • 29.
  • 30. Navegadores que não suportam Service Workers simplesmente não saberá de sua existência
  • 31. Mais simples que dormir... if ('serviceWorker' in navigator) { } navigator.serviceWorker .register('/service-worker.js') .then(function (retorno) { console.log('Sucesso!'); }) .catch(function (error) { console.log('Error:'+ error); });
  • 32. service-worker.js var cacheVersion = 'pedro01'; self.addEventListener ('install', function (event) { }); console .log('[SW] Install' ); event.waitUntil( ); caches.open(cacheVersion ) .then(function (cache) { console .log('[SW] Carregando application shell' ); return cache.addAll(filesToCache ); }) var filesToCache = [ "index.html" , "css/materialize.css" , "css/style.css" , "js/init.js" , "js/materialize.js" ]; self.addEventListener ('activate', function (event) { }); console .log('[SW] Activate' ); event.waitUntil( ); caches.keys().then(function (keyList) { return Promise.all(keyList.map(function (key) { })); }) if (key !== cacheVersion ) { console .log('[SW] Removendo cache antigo' , key); return caches.delete(key); } self.addEventListener ('fetch', function (event) { }); console.log('[SW] Fetch' , event.request.url); event.respondWith ( caches.match(event.request).then(function (response) { return response }) );Application Shell || fetch(event.request); Offline First
  • 33.
  • 34. E PARA DAR “O ROSTO” DE UM APP?
  • 35. Web App Manifest Simples, simples, simples...
  • 36. Seu amigo “Lighthouse” npm install -g lighthouse lighthouse https://arahackerday-4ca60.firebaseapp.com
  • 37. Agilize seu tempo com o Web App Manifest Generator https://app-manifest.firebaseapp.com/
  • 38. Deixe os caras fazerem por você https://www.pwabuilder.com/
  • 40.
  • 41.
  • 45. PWA é “só” WEB e mobile?
  • 46. Elas estão desbravando tudo! https://maps.google.com?force=pwa
  • 47. O que você está esperando?
  • 48. Referências ● https://developers.google.com/web/progressive-web-apps/ ● https://medium.com/tableless/introdu%C3%A7%C3%A3o-aos-pr ogressive-web-apps-ad47ba24cddb ● https://jakearchibald.github.io/isserviceworkerready/ ● https://brasil.uxdesign.cc/o-que-s%C3%A3o-progressive-we b-apps-86e1b5306051 ● https://en.wikipedia.org/wiki/Progressive_web_app
  • 49.
  • 50. Perguntas O que as PWAs são compostas? R: API abertas da WEB; Service Workers; Web Manifest; Boas práticas (acessibilidade, UX, responsividade, performance, etc). Qual o principal objetivo das PWA? R: Garantir uma ótima usabilidade para os usuários, podendo que o mesmo possa sentir está dentro de uma aplicação nativa, mas utilizando o melhor da web.
  • 51. Perguntas O que acontece se o navegador não suportar os Service Workers? R: Não afetará em nada, eles simplesmente não irão usufruir do seu “poder”. Cite 03 características de uma PWA R: Instaláveis Linkável Offline Responsivo Visual Appficado Seguro (https) Indexável
  • 52. Perguntas Para que serve o Web App Manifest? R: Fornecer informações sobre o aplicativo, propiciando aos usuários um acesso mais rápido e uma experiência enriquecida.