Skip to content
IRC-CodingIRC-Coding
PWAProgressive Web AppsService WorkerWeb App ManifestOfflineHTTPS

Progressive Web Apps (PWA): Offline y Service Worker

PWA explicadas: definición, requisitos (HTTPS, Manifest, Service Worker), ventajas, desventajas y preguntas de examen.

S

schutzgeist

11 min read
Progressive Web Apps (PWA): Offline y Service Worker

Progressive Web Apps (PWA)

Este artículo es una explicación conceptual sobre Progressive Web Apps (PWA), incluidas preguntas de examen, puntos clave y etiquetas.

De un vistazo

Progressive Web Apps (PWA) son aplicaciones web que se comportan como aplicaciones nativas, incluyendo funcionalidad offline, instalación y notificaciones push.

Descripción técnica compacta

Las Progressive Web Apps combinan la apertura del web con funcionalidades de aplicaciones nativas. Se ejecutan en el navegador, pero pueden instalarse en la pantalla de inicio y funcionan offline mediante Service Workers y caché. Las características típicas incluyen:

  • Instalabilidad (Agregar a pantalla de inicio)
  • Capacidad offline (Caché, Cache API)
  • Notificaciones push (dependiendo de la plataforma)
  • HTTPS como requisito previo
  • Web App Manifest con metadatos (nombre, iconos, URL de inicio)

Las PWAs funcionan en escritorio y dispositivos móviles de forma independiente de la plataforma, siendo especialmente útiles para aplicaciones que se cargan rápido y son resistentes a fallos de red.

Puntos clave para el examen

Debes recordar los siguientes puntos para la prueba:

Una Progressive Web App es una aplicación web que proporciona funcionalidades que antes estaban reservadas solo para aplicaciones nativas, utilizando tecnologías web modernas. Esto incluye instalación en la pantalla de inicio, uso offline y notificaciones push.

Los tres requisitos técnicos centrales para una PWA son HTTPS, un Service Worker y un Web App Manifest. HTTPS es obligatorio porque los Service Workers tienen permisos extensos y solo pueden ejecutarse en conexiones seguras. El Manifest contiene los metadatos que el navegador necesita para permitir la instalación.

La capacidad offline se logra almacenando recursos en caché. El Service Worker decide qué datos se guardan en caché y cómo se sirven las solicitudes cuando no hay conexión de red. La Cache API es la encargada de esto.

Una PWA no requiere publicación en una tienda de aplicaciones. Se puede distribuir a través de una URL. Esto es relevante para el examen porque reduce costos de distribución y aumenta el alcance, eliminando comisiones o tiempos de revisión de una tienda de aplicaciones.

La instalación ocurre a través del navegador. El usuario ve un ícono de instalación en la barra de direcciones o selecciona la opción de agregar a la pantalla de inicio. Después de la instalación, la PWA aparece como una aplicación nativa con su propio ícono y sin interfaz visible del navegador.

Los Service Workers presentan riesgos de seguridad si se implementan incorrectamente. Pueden manipular el tráfico de red y almacenar recursos en caché. Por eso HTTPS es obligatorio y el acceso al Service Worker debe controlarse.

Desde una perspectiva económica, las PWAs son rentables porque una única base de código funciona en diferentes plataformas. No es necesario desarrollar por separado para iOS y Android. Esto reduce el tiempo y costo de desarrollo, prueba y mantenimiento.

La documentación de una PWA debe incluir los requisitos técnicos, el Manifest, las estrategias de caché elegidas y el concepto offline. En los exámenes frecuentemente se pregunta qué campos del Manifest deben documentarse.

Componentes principales

HTML, CSS y JavaScript

Una PWA se construye sobre tecnologías web estándar. HTML proporciona la estructura, CSS el diseño y JavaScript la interactividad. Estas tecnologías son independientes de plataforma y funcionan en cualquier navegador moderno.

Service Worker

Un Service Worker es un JavaScript Worker que se ejecuta en segundo plano del navegador. Actúa como proxy entre la aplicación y la red. Puede interceptar solicitudes, almacenar recursos en caché y recibir notificaciones push. El Service Worker es el corazón de la capacidad offline.

Web App Manifest

El Web App Manifest es un archivo JSON que contiene metadatos de la aplicación. Los campos importantes son name, short_name, start_url, display, background_color, theme_color e icons. El navegador utiliza esta información para hacer la aplicación instalable y mostrarla como una aplicación nativa.

Estrategias de caché

Las estrategias de caché definen cómo se sirven las solicitudes. Las estrategias comunes son Cache First, Network First, Stale While Revalidate y Network Only. Cache First es rápido pero puede entregar datos desactualizados. Network First es más actual pero lento con mala conectividad. Stale While Revalidate combina ambos enfoques.

Diseño responsivo

El diseño responsivo asegura que la PWA se vea bien en smartphones, tablets y computadoras de escritorio. Es un requisito fundamental para una buena experiencia del usuario y a menudo se da por sentado.

Obligatoriedad de HTTPS

Los Service Workers y muchas características de PWA como notificaciones push o sincronización en segundo plano funcionan solo sobre HTTPS. El navegador rechaza el registro de un Service Worker en conexiones HTTP inseguras.

Notificaciones push

Las notificaciones push permiten que la PWA muestre mensajes al usuario incluso fuera de la aplicación. Se reciben a través del Service Worker y un servicio de push. Para el examen, es importante recordar que el usuario debe consentir esta funcionalidad.

Sincronización en segundo plano

La sincronización en segundo plano permite enviar datos una vez restaurada la conexión de red. Es práctica para formularios o acciones que deben completarse de forma confiable incluso con interrupciones.

Instalabilidad

La instalabilidad significa que la PWA puede colocarse como ícono en la pantalla de inicio o en el escritorio. Los requisitos son el Web App Manifest y un Service Worker registrado. Después de la instalación, la aplicación se abre en su propia ventana sin elementos del navegador.

Mejora progresiva

La mejora progresiva significa que la aplicación funciona de manera básica en todos los dispositivos y proporciona funcionalidades adicionales en dispositivos compatibles, como uso offline o instalación. Este es un principio central del desarrollo de PWA.

Ejemplo práctico simple (Manifest)

{
  "name": "Mi PWA",
  "start_url": "/index.html",
  "display": "standalone",
  "icons": [
    { "src": "icon.png", "sizes": "192x192", "type": "image/png" }
  ]
}

Explicación: El Manifest permite que la PWA sea instalable como una aplicación (ícono, comportamiento al iniciar, presentación).

Ventajas y desventajas

Ventajas

  • Independencia de plataforma
  • Capacidad offline
  • Sin necesidad de tienda de aplicaciones
  • Ciclo de desarrollo más rápido

Desventajas

  • Acceso limitado al hardware (por ejemplo, Bluetooth/NFC parcialmente limitado)
  • Soporte en iOS limitado según la funcionalidad
  • Sin marketing en tiendas (rankings, reseñas)

FAQ: Progressive Web Apps (PWA)

1. ¿Qué es una Progressive Web App?

Una Progressive Web App es una aplicación web que proporciona funcionalidades de aplicaciones nativas usando tecnologías web modernas. Esto incluye uso offline, instalación en la pantalla de inicio y notificaciones push.

2. ¿Cuáles son los componentes principales de una PWA?

Una PWA requiere tres componentes centrales: HTTPS como base de seguridad, un Service Worker para procesos en segundo plano y caché, y un Web App Manifest con metadatos para la instalación.

3. ¿Qué es un Service Worker?

Un Service Worker es un JavaScript Worker que se ejecuta en segundo plano del navegador. Puede interceptar llamadas de red, almacenar recursos en caché y recibir notificaciones push. Es el corazón técnico de una PWA.

4. ¿Qué es el Web App Manifest?

El Web App Manifest es un archivo JSON que proporciona metadatos de la aplicación. Incluye nombre, nombre corto, descripción, URL de inicio, modo de visualización, color de tema, color de fondo e iconos.

5. ¿Por qué es obligatorio HTTPS para las PWAs?

HTTPS es obligatorio porque los Service Workers poseen permisos sensibles como acceso a la red y caché. Los navegadores solo permiten Service Workers en conexiones seguras para evitar manipulaciones.

6. ¿Cómo funciona la capacidad offline de una PWA?

La capacidad offline surge mediante estrategias de caché en el Service Worker. Recursos como HTML, CSS, JavaScript e imágenes se almacenan localmente y se cargan desde el caché cuando no hay red.

7. ¿Cuál es la diferencia entre Cache First y Network First?

Cache First verifica primero el caché y solo consulta la red si hay un error. Network First consulta primero la red y usa el caché como alternativa. Cache First es más rápido, Network First proporciona datos más actuales.

8. ¿Cómo se instala una PWA?

Una PWA se instala a través del navegador. El usuario puede tocar el ícono de instalación o seleccionar la opción de agregar a la pantalla de inicio. En dispositivos de escritorio, frecuentemente aparece un botón en la barra de direcciones.

9. ¿Qué es la mejora progresiva?

La mejora progresiva significa que una aplicación funciona de manera básica en todos los dispositivos y proporciona funcionalidades adicionales como uso offline o instalación en dispositivos compatibles.

10. ¿Qué es el diseño responsivo en PWAs?

El diseño responsivo asegura que la PWA se vea bien en diferentes tamaños de pantalla y dispositivos, siendo fácil de usar. Es un requisito fundamental para una buena PWA.

11. ¿Qué son las notificaciones push en PWAs?

Las notificaciones push permiten que una PWA muestre mensajes al usuario fuera de la aplicación. Se reciben a través del Service Worker y un servicio de push.

12. ¿Qué es la Cache API?

La Cache API es una interfaz del navegador que permite al Service Worker almacenar solicitudes y respuestas de forma permanente. Es la base técnica del caché en PWAs.

13. ¿Cuál es la ventaja de una PWA sobre una aplicación nativa?

Las PWAs requieren solo una base de código, funcionan en múltiples plataformas y pueden distribuirse sin publicación en tiendas de aplicaciones. Esto reduce significativamente costos y tiempo de desarrollo.

14. ¿Cuáles son las desventajas de las PWAs?

Las PWAs tienen acceso parcialmente limitado a funciones de hardware como Bluetooth o NFC. En iOS, el conjunto de funciones es históricamente más limitado que en Android. Además, falta el marketing a través de tiendas de aplicaciones.

15. ¿Qué es el modo de visualización standalone en el Manifest?

El modo standalone abre la PWA sin la barra de direcciones del navegador ni elementos del navegador. Se ve como una aplicación nativa. Otros modos son browser, minimal-ui y fullscreen.

16. ¿Cuál es el ciclo de vida de un Service Worker?

El ciclo de vida incluye Install, Activate y Fetch. Durante Install se precargan recursos. Durante Activate el nuevo Service Worker se vuelve activo. Durante Fetch se interceptan y procesan llamadas de red.

17. ¿Qué es Background Sync?

Background Sync permite que una PWA envíe datos cuando se restaura la conexión de red. Es útil para formularios o acciones que deben completarse en segundo plano de manera confiable.

18. ¿Qué es una App Shell?

Una App Shell es el HTML, CSS y JavaScript mínimo necesario para la interfaz de usuario de una PWA. Se almacena en caché primero y proporciona tiempos de carga rápidos y una apariencia inmediata.

19. ¿Cuál es la diferencia entre una PWA y una aplicación híbrida?

Una aplicación híbrida se ejecuta en un contenedor nativo y a menudo se distribuye a través de tiendas de aplicaciones. Una PWA se ejecuta directamente en el navegador usando estándares web. Las PWAs no necesitan tiendas ni tecnología de envoltorio nativo.

20. ¿Qué significa agregar a pantalla de inicio?

Agregar a pantalla de inicio es la función que permite instalar una PWA como ícono en la pantalla de inicio de un dispositivo. Se habilita mediante el Web App Manifest y las propiedades de instalación de la PWA.

21. ¿Qué es un archivo Web App Manifest?

El archivo Web App Manifest es un archivo JSON, generalmente con la extensión webmanifest. Se vincula en el HTML mediante una etiqueta link e incluye todos los metadatos que el navegador necesita para la instalación.

22. ¿Cómo funciona el caché en PWAs?

El caché funciona a través del Service Worker y la Cache API. El Service Worker decide para cada solicitud si se sirve desde el caché, desde la red o desde una combinación de ambas.

23. ¿Qué es Stale While Revalidate?

Stale While Revalidate es una estrategia de caché que entrega primero una versión desactualizada del caché mientras se obtiene una versión actual del servidor en segundo plano. Combina velocidad con actualidad.

24. ¿Cuáles son los aspectos de seguridad importantes en PWAs?

Los aspectos de seguridad importantes son HTTPS, acceso controlado a Service Worker, estrategias de caché seguras y uso prudente de permisos para notificaciones push y sincronización en segundo plano. Los Service Workers tienen control extenso sobre red y caché.

25. ¿Cuándo merece la pena implementar una PWA?

Una PWA merece la pena cuando necesitas una aplicación multiplataforma con bajo costo de distribución, la capacidad offline es importante y no requieres acceso profundo al hardware. Son especialmente adecuadas para portales de noticias, tiendas web o aplicaciones de panel de control.

Glosario

TérminoDefinición
Progressive Web AppAplicación web con funcionalidades nativas (offline, push, instalación)
Service WorkerScript ejecutado en segundo plano para gestionar caché y conectividad
Web App ManifestMetadatos JSON que definen la instalabilidad de la PWA

Respuesta abierta

Las PWAs resultan especialmente útiles para servicios de información, portales de noticias o tiendas online, donde importan los tiempos de carga rápidos, la capacidad offline y una distribución sencilla. Para evaluaciones es fundamental entender que las PWAs van más allá de simples “sitios web móviles”, ya que incorporan funcionalidades reales de aplicación, particularmente Service Worker y Manifest.

Estrategia de aprendizaje para este tema

  1. Introducción conceptual: Instala una PWA (por ejemplo, Twitter Lite) y prueba su comportamiento offline.
  2. Profundización práctica: Construye una mini-PWA con Manifest y un Service Worker básico.
  3. Entrenamiento para evaluaciones: Practica argumentar las diferencias entre PWA, aplicaciones nativas e híbridas.
  4. Evitar errores comunes: No olvides HTTPS, de lo contrario los Service Workers no funcionarán.

Análisis del tema

  • Núcleo técnico: Service Worker, Manifest, Caching
  • Desafíos de implementación: Estrategias de caché, servicios push, compatibilidad con navegadores
  • Implicaciones de seguridad: HTTPS, control de acceso a recursos
  • Requisitos de documentación: Contenido del Manifest, estrategia offline
  • Evaluación económica: Eficiencia de costos, alcance, mantenibilidad

Continuando en la ruta de aprendizaje PWA

El siguiente artículo en la ruta de aprendizaje PWA trata sobre Progressive Web Apps: Webanwendungen, explicando cómo funcionan las PWAs como aplicaciones web modernas y qué ventajas ofrecen.

Recursos adicionales

  1. https://web.dev/progressive-web-apps/
  2. https://developer.mozilla.org/de/docs/Web/Progressive_web_apps
  3. https://codelabs.developers.google.com/codelabs/your-first-pwapp/
  4. https://developers.google.com/web/fundamentals/primers/service-workers
  5. https://whatwebcando.today/

Recomendaciones de libros sobre desarrollo web

Si deseas profundizar en Progressive Web Apps, rendimiento web y desarrollo web moderno, te recomendamos los siguientes libros:

Keine Bücher für Kategorie "web-development" gefunden.

Volver al blog
Share:

Entradas relacionadas