Skip to content

Instantly share code, notes, and snippets.

@durancristhian
Created November 23, 2017 17:51
Show Gist options
  • Save durancristhian/ea7be03444c8e57731188dfada205186 to your computer and use it in GitHub Desktop.
Save durancristhian/ea7be03444c8e57731188dfada205186 to your computer and use it in GitHub Desktop.
Me agarré a piñas con una PWA... y me ganó

Me agarré a piñas con una PWA


Y me ganó


Motivos por los que perdí

  • Nunca pude descubrir como funcionan los íconos en el splash screen (Densidad, Tamaño)
  • El usuario no controla CUANDO el contenido está offline (Instalación / Desinstalación)
  • Lo que pasa offline, ¿queda offline? (Errores, Analytics)
  • Es muy fácil dejar un sitio inservible (Cache-Control:max-age=0)
  • Los favicons no se cachean 👎🏾
  • Plugins vs. Customización (sw-precache + sw-toolbox vs. hand-written service worker)
  • El ciclo de vida de un Service Worker es una 🎱 🎱 🏃 y testearlo mucho más
  • Cada caso es un mundo (Cantidad de assets, Disponibilidad de la data, ejemplos muy estándar)
  • Te llenás de hacks para iOS :agite: (Links en Safari, por ejemplo)

Me agarré a piñas con una PWA... y me ganó... pero solo el primer round 😉

🔗 pwa.meetupjs.com.ar

Tan solo tomó 111 commits

Motivos por los que pude dar vuelta la pelea 💪🏼

  • Performance es un tema muy bien cubierto hoy en día
  • Lighthouse 😍

Consejos

  • Dale a tu usuario la posibilidad de decidir COMO consumir tu contenido
  • Poné la suscripción del Service Worker en el window.onload
  • Acordate que descargás TODO. Hay muchos assets que probablemente no te interesen
  • Estrategias Data -> network first Assets -> cache first
  • No todas las buenas prácticas de la web aplican para una PWA (FOIT)

¿Qué se viene?

¡TU AYUDA!

🔗 github.com/meetupjs-ar

¡Gracias!

  • En especial a Seba, Pecas y Gianu

🐦 @durancristhian

Aguante Boca 💙 💛 💙

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment