Eine progressive Web-App (PWA) ist eine Website, die aussieht und sich verhält, als wäre sie eine mobile App. PWAs sind so aufgebaut, dass sie die Vorteile der nativen Funktionen von Mobilgeräten nutzen, ohne dass der Endbenutzer einen App-Store besuchen, einen Kauf tätigen und Software lokal herunterladen muss. Stattdessen kann eine PWA mit einer Suchmaschinenanfrage gefunden und sofort über einen Browser aufgerufen werden.
PWAs machen es für E-Commerce-Händler überflüssig, native Apps für verschiedene mobile Betriebssysteme zu entwickeln. Ähnlich wie YouTube-Videos werden PWA-Inhalte progressiv heruntergeladen, was dem Endnutzer ein besseres Nutzererlebnis bietet als eine herkömmliche Website im Responsive Design. Der Begriff „Progressive Web Apps“ wurde 2015 von der Designerin Frances Berriman und dem Google-Chrome-Ingenieur Alex Russell geprägt
Das Ziel von PWAs ist es, den Unterschied zwischen nativen Apps und dem mobilen Web zu verwischen, indem die meisten Vorteile von nativen mobilen Apps in den mobilen Browser gebracht werden. PWAs nutzen standardbasierte Technologien und laufen in einem Container, der sicher und für jeden im Web zugänglich ist. Sie können Web-Push-Benachrichtigungen senden, offline arbeiten und vom Startbildschirm aus zugänglich sein, genau wie eine mobile App aus einem App-Store.
PWAs können auch die Vorteile von APIs und Browser-Plugins nutzen, um sicherzustellen, dass die Bereitstellung und Wartung einer Website so einfach wie möglich bleibt. Ein weiterer Vorteil, den PWAs von traditionellen Websites geerbt haben, ist die Verwendung von URIs, um den Zustand anzuzeigen. Dadurch kann die Web-App ihren Zustand beibehalten oder neu laden, wenn der Benutzer ein Lesezeichen setzt oder die URL der App teilt.
Die Benutzeroberfläche einer progressiven Web-App sollte die richtige Größe für den Formfaktor und die Bildschirmgröße des Geräts haben. Darüber hinaus sollte sie wie eine native App aussehen und auf einem Application-Shell-Modell aufgebaut sein. Die PWA sollte nur wenige Seitenaktualisierungen haben, und die App sollte in Gebieten mit geringer Konnektivität oder sogar offline funktionieren. Darüber hinaus sollten neue Inhalte in der App verfügbar gemacht werden. Da Netzwerkanfragen abgefangen werden können, sollte die App über HTTPS gehostet werden, um Man-in-the-Middle-Angriffe zu verhindern.