Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

0

Share

Download to read offline

Introducción a PWA

Download to read offline

Charla WordCamp San Jose 2019

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Introducción a PWA

  1. 1. Introducción a PWA 💣 💣 WordCamp SJO - 2019
  2. 2. José Leiva leivajd.com / @leivajd
  3. 3. Objetivos.
  4. 4. 1.Visión general.
  5. 5. 1.Visión general. 2.Beneficios e implementación.
  6. 6. 1.Visión general. 2.Beneficios e implementación. 3.Lecciones aprendidas.
  7. 7. ¿Qué es?
  8. 8. Progressive Web Apps
  9. 9. Término “sombrilla” que involucra una nueva filosofía y tecnologías.
  10. 10. Progressive Web Apps: Escaping Tabs Without Losing Our Soul Alex Russell - 2015 Frances Berriman - 2017 Naming Progressive Web Apps
  11. 11. ¿Qué involucra? Progressive. Filosofía de mejora progresiva.
  12. 12. ¿Qué involucra? Web. No nativo, no dependencias, no terceros.
  13. 13. ¿Qué involucra? App. ¿Qué es un app? Necesitamos un término simple.
  14. 14. Basado en features soportados por el browser, de manera progresiva se vuelven apps-like.
  15. 15. ¿app-like?
  16. 16. ¿app-like? ● Responsive.
  17. 17. ¿app-like? ● Responsive. ● Offline first.
  18. 18. ¿app-like? ● Responsive. ● Offline first. ● Interacciones (touch, shell).
  19. 19. ¿app-like? ● Responsive. ● Offline first. ● Interacciones (touch, shell). ● Linkable.
  20. 20. ¿app-like? ● Responsive. ● Offline first. ● Interacciones (touch, shell). ● Linkable. ● Seguro (HTTPS).
  21. 21. ¿app-like? ● Responsive. ● Offline first. ● Interacciones (touch, shell). ● Linkable. ● Seguro (HTTPS). ● Instalable.
  22. 22. ¿Porqué?
  23. 23. Beneficios ● Mobile first.
  24. 24. Beneficios ● Mobile first. ● Performance.
  25. 25. Beneficios ● Mobile first. ● Performance. ● Engagement.
  26. 26. Beneficios ● Mobile first (pero de verdad!) ● Performance. ● Engagement. ● “Build once, deploy anywhere.”
  27. 27. https://www.pwastats.com/2018/01/tinder/
  28. 28. https://www.pwastats.com/2018/01/uber/
  29. 29. https://www.pwastats.com/2017/12/pinterest/
  30. 30. https://www.pwastats.com/2017/05/twitter/
  31. 31. https://www.pwastats.com/2017/08/flipkart/
  32. 32. Los beneficios son atractivos para cualquier sitio web.
  33. 33. ¿Cómo?
  34. 34. La implementación puede cubrirse en varias charlas adicionales.
  35. 35. Técnicamente ● HTTPS. ● Web App Manifest. ● Service Worker.
  36. 36. Técnicamente ● HTTPS. ...service workers create the opportunity for a bad actor to turn a bad day into a bad eternity.[ 👉 Especificación]
  37. 37. Técnicamente ● Web App Manifest. { "short_name": "name", "name": "App name", "icons": [ { "src": "/images/icons-512.png", "type": "image/png", "sizes": "512x512" } ], "start_url": "", "background_color": "#3367D6", "display": "standalone", "scope": "/", "theme_color": "#3367D6" }
  38. 38. Técnicamente ● Web App Manifest. <link rel="manifest" href="/manifest.json">
  39. 39. Técnicamente ● Service Worker. 🤯 😨 😎
  40. 40. 🏃💨
  41. 41. La “P” en PWA es clave.
  42. 42. Service Worker 🤯 ☁ GET /something Respuesta
  43. 43. Service Worker 🤯 ☁ GET /something Respuesta ❌
  44. 44. Service Worker 🤯 ☁ GET /something Respuesta ❌ 😭
  45. 45. Service Worker ● JS script en background.
  46. 46. Service Worker ● JS script en background. ● Push notifications.
  47. 47. Service Worker ● JS script en background. ● Push notifications. ● Background sync.
  48. 48. Service Worker ● JS script en background. ● Push notifications. ● Background sync. ● Network proxy.
  49. 49. Service Worker - network proxy 🤯 ☁ GET /something Response 🤖
  50. 50. Service Worker - network proxy 🤯 ☁ GET /something Response 🤖 📦
  51. 51. Service Worker - network proxy ● Control sobre request.
  52. 52. Service Worker - network proxy ● Control sobre request. ● Control sobre cache.
  53. 53. Service Worker - registro if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker .register('/service- worker.js'); }); }
  54. 54. Service Worker - registro if ('serviceWorker' in navigator) { window.addEventListener('load', () => { if (has('killserviceworker')) { navigator.serviceWorker.getRegistrations().then(registrations => { registrations.forEach(registration => { registration.unregister(); }); }); } else { navigator.serviceWorker.register('/service-worker.js', { scope: '/', }).then(() => { console.log('Service worker registration success'); }, (err) => { console.log('Service worker registration failed: ', err); }); } }); }
  55. 55. Service Worker - existe? if ('serviceWorker' in navigator) { // el browser lo soporta }
  56. 56. Service Worker - load window.addEventListener('load', () => { // minimizar carga en CPU y memoria });
  57. 57. Service Worker - feature flag if (has('killserviceworker')) { // desregistro } else { // registro }
  58. 58. Service Worker - desregistro navigator.serviceWorker .getRegistrations() .then(registrations => { registrations.forEach(registration => { registration.unregister(); }); );
  59. 59. Service Worker - registro navigator.serviceWorker .register('/service-worker.js', { scope: '/', });
  60. 60. Service Worker - estrategias ● Cache only. ● Network only. ● Network first. ● Cache first. ● Stale-While-Revalidate
  61. 61. Service Worker - estrategias ● Ejemplo Cache first.
  62. 62. Caso.
  63. 63. V1 - reemplazar iOS app
  64. 64. V1 - explorar Android app
  65. 65. V1 - caching & repeat visitors
  66. 66. V1 - caching & repeat visitors ● Webpagetest.org ● Home, PLP & PDP.
  67. 67. V1 - caching & repeat visitors ● ~0.4ms - SW vs No SW
  68. 68. V1 - caching & repeat visitors ● ~0.4ms - SW vs No SW ● Resultado esperado 🙆.
  69. 69. V1 - caching & repeat visitors ● ~0.4ms - SW vs No SW ● Resultado esperado. ● Base para offline.
  70. 70. V1 - soporte offline
  71. 71. V1 - métricas (PWA) ● Instalaciones 11,161 (Android)
  72. 72. V1 - métricas (PWA) ● Instalaciones 11,161 (Android) ● Open from Home 91,025
  73. 73. V1 - métricas (PWA) ● Instalaciones 11,161 (Android) ● Open from Home 91,025 ○ Android ~76% ○ iOS ~13%
  74. 74. V1 - métricas (repeat rate) ● Mobile Web - 1.54 ● Old app - 2.10 ● New app - 2.42
  75. 75. V1 - métricas (conversion rate) ● Mobile Web - 1.57% ● Old app - 2.03% ● New app - 2.93%
  76. 76. Service Worker nos dan la oportunidad de crear mejores experiencias.
  77. 77. El nombre no es para nosotros, y preocuparnos es una distraccion.
  78. 78. El nombre no es para nosotros, y preocuparnos es una distracción. El nombre es para su jefe, su cliente ó marketing.
  79. 79. PWA, solo necesitamos HTTPS, Service Worker y un Manifiesto.
  80. 80. PWA, solo necesitamos HTTPS, Service Worker y un Manifiesto. El reto es saber cómo y cuándo aplicar estas tecnologías.
  81. 81. ¿Qué van a construir?
  82. 82. Recursos.
  83. 83. ● leivajd.com/nota/introduccion-pwa José Leiva leivajd.com / @leivajd

Charla WordCamp San Jose 2019

Views

Total views

667

On Slideshare

0

From embeds

0

Number of embeds

505

Actions

Downloads

2

Shares

0

Comments

0

Likes

0

×