<EbeneX/>
Web · Updated 3. März 2026

Progressive Web App

Definition

Eine Webanwendung, die durch moderne Browser-APIs native App-Funktionen bietet – Offline-Nutzung, Installation auf dem Homescreen, Push-Benachrichtigungen – ohne App Store.

Fortgeschritten 3 Min. Lesezeit EN: Progressive Web App (PWA)

Einfach erklärt

Native Apps (iOS/Android) haben Vorteile: Sie funktionieren offline, können auf dem Homescreen installiert werden und senden Push-Benachrichtigungen. Aber sie brauchen einen App Store, Review-Prozesse und separate Codebases für iOS und Android.

PWAs bringen diese Funktionen ins Web: Eine einzige Codebase, kein App Store, sofortige Updates. Der Nutzer besucht die Website, bekommt einen „Installieren”-Dialog und hat danach eine App-ähnliche Erfahrung – vollbild, ohne Browser-Chrome, mit eigenem App-Icon.

PWA vs. Native App:

AspektNative AppPWA
InstallationApp StoreBrowser-Dialog
UpdatesApp Store ReviewSofort
Offline✅ (mit Service Worker)
Push-Benachrichtigungen✅ (eingeschränkt auf iOS)
Hardware-ZugriffVollständigEingeschränkt
CodebaseiOS + AndroidEine für alle
AuffindbarkeitApp StoreGoogle-Suche

iOS vs. Android – wichtige Unterschiede

PWA-Support ist auf Android deutlich besser als auf iOS:

FeatureAndroid (Chrome)iOS (Safari)
Installation✅ Vollständig✅ Seit iOS 16.4
Push-Benachrichtigungen✅ Seit iOS 16.4
Background Sync
Bluetooth/NFC
Persistent StorageBegrenzt

Technischer Deep Dive

Web App Manifest

{
  "name": "KI-Assistent",
  "short_name": "Grundlagen",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#0f172a",
  "theme_color": "#6366f1",
  "icons": [
    { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" },
    { "src": "/icon-512-maskable.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
  ],
  "screenshots": [
    { "src": "/screenshot-mobile.png", "sizes": "390x844", "type": "image/png", "form_factor": "narrow" }
  ]
}

Service Worker – Caching-Strategien

Workbox bietet verschiedene Strategien je nach Ressourcentyp:

import { registerRoute } from 'workbox-routing';
import { CacheFirst, NetworkFirst, StaleWhileRevalidate } from 'workbox-strategies';

// Statische Assets: Cache First (lange Gültigkeit)
registerRoute(
  ({ request }) => request.destination === 'image',
  new CacheFirst({ cacheName: 'images', plugins: [
    new ExpirationPlugin({ maxAgeSeconds: 30 * 24 * 60 * 60 }) // 30 Tage
  ]})
);

// API-Calls: Network First (immer aktuell, Fallback auf Cache)
registerRoute(
  ({ url }) => url.pathname.startsWith('/api/'),
  new NetworkFirst({ cacheName: 'api-cache' })
);

// HTML-Seiten: Stale While Revalidate (schnell + aktuell)
registerRoute(
  ({ request }) => request.mode === 'navigate',
  new StaleWhileRevalidate({ cacheName: 'pages' })
);

Push-Benachrichtigungen implementieren

// 1. Berechtigung anfragen
const permission = await Notification.requestPermission();

// 2. Service Worker registrieren und Push-Subscription erstellen
const registration = await navigator.serviceWorker.ready;
const subscription = await registration.pushManager.subscribe({
  userVisibleOnly: true,
  applicationServerKey: urlBase64ToUint8Array(PUBLIC_VAPID_KEY),
});

// 3. Subscription an Server senden
await fetch('/api/push/subscribe', {
  method: 'POST',
  body: JSON.stringify(subscription),
  headers: { 'Content-Type': 'application/json' },
});

// 4. Im Service Worker: Push empfangen
self.addEventListener('push', (event) => {
  const data = event.data.json();
  event.waitUntil(
    self.registration.showNotification(data.title, {
      body: data.body,
      icon: '/icon-192.png',
    })
  );
});

PWA-Checkliste (Lighthouse-Kriterien)

  • ✅ HTTPS (Pflicht für Service Worker)
  • ✅ Web App Manifest mit allen Pflichtfeldern
  • ✅ Service Worker registriert
  • ✅ Icons in 192px und 512px
  • start_url im Manifest
  • display: standalone oder fullscreen
  • ✅ Offline-Fallback-Seite
  • theme_color gesetzt

Eine PWA ist wie ein Schweizer Taschenmesser: Es sieht aus wie ein Messer, aber es hat auch Schere, Säge und Dosenöffner eingebaut. Eine normale Website ist nur das Messer – eine PWA hat alle Werkzeuge, die eine native App bietet, steckt aber im Web-Format.

Installierbar: Nutzer können die App auf dem Homescreen speichern

Offline-fähig: Service Worker cachen Inhalte für die Offline-Nutzung

Kein App Store nötig: Direkt über den Browser installierbar

KI-Tools ohne App Store

KI-Assistenten als PWA installierbar – kein App-Store-Review, sofortige Updates

Offline-First-Anwendungen

Notiz-Apps, Dokumenteneditor – funktionieren auch ohne Internet

Push-Benachrichtigungen

Nutzer über neue KI-Antworten oder Ergebnisse benachrichtigen, auch wenn die App nicht offen ist

Was ist ein Service Worker?

Ein Service Worker ist ein JavaScript-Skript, das im Hintergrund läuft – unabhängig von der Webseite. Er kann Netzwerkanfragen abfangen und aus dem Cache beantworten, Push-Benachrichtigungen empfangen und Hintergrund-Synchronisation durchführen. Er ist das Herzstück jeder PWA.

Sind PWAs wirklich so gut wie native Apps?

Für viele Use Cases ja – besonders für Content-Apps, Tools und einfache Interaktionen. Grenzen gibt es bei Hardware-Zugriff (Bluetooth, NFC auf iOS eingeschränkt), App-Store-Präsenz und bestimmten iOS-Einschränkungen. Android unterstützt PWAs deutlich besser als iOS.

Was ist das Web App Manifest?

Eine JSON-Datei, die beschreibt, wie die PWA installiert werden soll: Name, Icons, Startseite, Anzeigemodus (Fullscreen, Standalone), Theme-Farbe. Der Browser liest dieses Manifest und zeigt den 'Zum Homescreen hinzufügen'-Dialog.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.