desmistificando progressive web apps - pwa

55

Upload: stefan-horochovec

Post on 23-Jan-2018

202 views

Category:

Internet


5 download

TRANSCRIPT

Page 1: Desmistificando Progressive Web Apps - PWA
Page 2: Desmistificando Progressive Web Apps - PWA

Stefan Horochovec• Co-Founder e Chief Technology Officer

Kepha – Digital Business Experts

• Co-Founder e Arquiteto de SoluçõesPreviseme – HelpDesk

• Especialista em Engenharia de Software e Gestão de Projetos;

• Instrutor/Professor/Palestrante/Autor;

• Twitter: @horochovec• Github: @horochovec• Blogs: http://www.horochovec.com.br/

Page 3: Desmistificando Progressive Web Apps - PWA
Page 4: Desmistificando Progressive Web Apps - PWA
Page 5: Desmistificando Progressive Web Apps - PWA
Page 6: Desmistificando Progressive Web Apps - PWA

2016

Page 7: Desmistificando Progressive Web Apps - PWA

2017

Page 8: Desmistificando Progressive Web Apps - PWA

Cenário Mobile

Page 9: Desmistificando Progressive Web Apps - PWA

Número de usuários (milhões)

0

500

1000

1500

2000

2500

2007 2008 2009 2010 2011 2012 2013 2014 2015

Mobile x Desktop

Mobile Desktop

Source: comScore Mobile Metrix, June 2015

Page 10: Desmistificando Progressive Web Apps - PWA

Source: comScore Mobile Metrix, U.S., Age 18+, June 2015

Page 11: Desmistificando Progressive Web Apps - PWA

Source: comScore Mobile Metrix, U.S., Age 18+, June 2015

Page 12: Desmistificando Progressive Web Apps - PWA

de TODO tempo gasto em um smarphone é utilizando até 5 aplicativos

Page 13: Desmistificando Progressive Web Apps - PWA

Progressive Web Apps

Page 14: Desmistificando Progressive Web Apps - PWA

Aplicações via browser• Cross-Platform x Cross-Browser;

• Deploy Facilitado;

• Atualização facilitada;

• Disponível para mecanismos de pesquisas (aka Google);

• Compartilhamento de Links de forma rápida;

• Possibilidade de Bookmarks – “Talvez”;

Page 15: Desmistificando Progressive Web Apps - PWA

Cenário Atual – Aplicativos• Descobrir que o aplicativo existe na Loja Virtual ou clicar em um link no rodapé

de um website que você já está navegando;

• Efetuar o download (2G, 3G, 4G, Wi-Fi, Lie-Fi, etc);

• Se cadastrar quando necessário;

• Visualizar praticamente a mesma coisa que você já estava visualizando....

• Compartilhar conteúdo via print-screen em redes sociais, ou integrações com novos privilégios;

Page 16: Desmistificando Progressive Web Apps - PWA

Cenário ”Esperado”• Não ter a necessidade de instalar MAIS um aplicativo em seu device;

• Aplicações Web com maior responsividade;

• Segurança nas informações;

• Independência de conexão - Suporte off-line;

• Always updated;

• SEO-friendly;

• Compartilhamento de conteúdo (Links);

Page 17: Desmistificando Progressive Web Apps - PWA

Grandes vantagens de Apps• Ícone na Home-screen – “Talvez ?”;

• Splash Screen – Agregando valor a marca;

• Suporte off-line – “Nem sempre....”;

• Push Notification;

• Acesso ao hardware do dispositivo;

Page 18: Desmistificando Progressive Web Apps - PWA

Como reverter as grandes vantagens de uma aplicação

instalada via Loja Virtual?

Page 19: Desmistificando Progressive Web Apps - PWA

Progressive Web Apps X Aplicações Nativas• Permite instalação no device através de seu navegador;

• Funciona perfeitamente bem sem conexões ou com conexões lentas;

• Push Notifications;

• Splash Screens;

• Renderização em 60fps;

• Segurança garantida pois só funciona via httpS;

Page 20: Desmistificando Progressive Web Apps - PWA

OK! Como eu faço isso?!?

Page 21: Desmistificando Progressive Web Apps - PWA

Receita para uma Progressive Web App• Application Shell;

• App Manifest;

• Service Workers;

• httpS;

Page 22: Desmistificando Progressive Web Apps - PWA
Page 23: Desmistificando Progressive Web Apps - PWA
Page 24: Desmistificando Progressive Web Apps - PWA
Page 25: Desmistificando Progressive Web Apps - PWA
Page 26: Desmistificando Progressive Web Apps - PWA
Page 27: Desmistificando Progressive Web Apps - PWA
Page 28: Desmistificando Progressive Web Apps - PWA
Page 29: Desmistificando Progressive Web Apps - PWA
Page 30: Desmistificando Progressive Web Apps - PWA
Page 31: Desmistificando Progressive Web Apps - PWA

App Manifest• Arquivo de configuração escrito em JSON;

• Responsável por configurar:• Nome do aplicativo na home;

• Iconografia;

• SplashScreen;

• Theme Color;

• Full Screen;

• Orientação da tela;

Page 32: Desmistificando Progressive Web Apps - PWA

App Manifest{

"name": "Nome do aplicativo", "short_name": "Nome reduzido", "icons": [{

”src": "images/icons/icon-128x128.png","sizes": "128x128","type": "image/png”

}],"start_url": "/index.html", "display": ”fullscreen", "background_color": "#3E4EB8", "theme_color": "#2F3BA2”

}

Page 33: Desmistificando Progressive Web Apps - PWA

Service Workers• Javascript que é executado em background no dispositivo móvel;

Page 34: Desmistificando Progressive Web Apps - PWA

Registro Service Worker<script>if ('serviceWorker' in navigator) {

navigator.serviceWorker.register(’service-worker.js’, {scope: ’/’

}).then(() => console.log('service worker instalado')).catch(err => console.log('Erro', err));

}</script>

Page 35: Desmistificando Progressive Web Apps - PWA

Event Listeners - installthis.addEventListener('install', function(event){

event.waitUntil(caches.open('tdc-first-cache').then(function(cache) {

return cache.addAll(['./build/main.js', './build/main.css’

]); }).then(function() {

console.log('Service worker ativo, e cache pré-definido');})

);});

Page 36: Desmistificando Progressive Web Apps - PWA

Event Listeners - activatethis.addEventListener('activate', function(event) {

console.log('[ServiceWorker] Activate');event.waitUntil(

caches.keys().then(function(keyList) {return Promise.all(keyList.map(function(key) {

if (key !== 'tdc-first-cache') { console.log('[ServiceWorker] Removido', key);return caches.delete(key);

}}));

}));

});

Page 37: Desmistificando Progressive Web Apps - PWA

Event Listeners – fetch (Requisições HTTP)this.addEventListener(’fetch', function(event){

event.respondWith(caches.match(event.request).then(function(response) {

return response || fetch(event.request); })

);});

Page 38: Desmistificando Progressive Web Apps - PWA

Notificationsif ('Notification' in window) {

Notification.requestPermission(function(result) { console.log('Notification status: ', result)

});

if (Notification.permission == 'granted’) {navigator.serviceWorker.getRegistration().then(function(registration) {

var message = { body : 'Mensagem do corpo',

} registration.showNotification('Teste', message);

}); }

}

Page 39: Desmistificando Progressive Web Apps - PWA

Notifications

Page 40: Desmistificando Progressive Web Apps - PWA

HTTPS

Confiável Integridade Privacidade

Page 41: Desmistificando Progressive Web Apps - PWA

Progressive Web Apps

Page 42: Desmistificando Progressive Web Apps - PWA

Experiência do usuário

Confiável Rápida Envolvente

Page 43: Desmistificando Progressive Web Apps - PWA

Experiência do usuário

Confiável

Page 44: Desmistificando Progressive Web Apps - PWA

Experiência do usuário

Rápida

53% dos usuários abandonam um site que demora mais que 3 segundos para carregar

Page 45: Desmistificando Progressive Web Apps - PWA

Experiência do usuário

Envolvente

• Ícone na home-screen;• Full-screen;• Themas;• Orientação;• Notificações;

Page 46: Desmistificando Progressive Web Apps - PWA
Page 47: Desmistificando Progressive Web Apps - PWA

Konga.com

Page 48: Desmistificando Progressive Web Apps - PWA
Page 49: Desmistificando Progressive Web Apps - PWA
Page 50: Desmistificando Progressive Web Apps - PWA
Page 51: Desmistificando Progressive Web Apps - PWA
Page 52: Desmistificando Progressive Web Apps - PWA
Page 53: Desmistificando Progressive Web Apps - PWA
Page 55: Desmistificando Progressive Web Apps - PWA