PWA - was ist das?
PWA steht für Progressive Web App. Der Begriff setzt sich zusammen aus Web Apps und progressive Enhancement. Web Apps werden aus den Webtechniken HTML, CSS und JavaScript entwickelt. Progressive Enhancement ist eine Methode zur Entwicklung von Websites mit der Prämisse, dass die Webanwendung in jedem Browser funktioniert. Anders als eine native App ist die PWA also nicht vom Betriebssystem abhängig. Die Website wird über eine URL abgerufen, das Design wird aber an das Endgerät, wie ein Smartphone, angepasst.
Wie funktioniert eine PWA?
Die Neuheit an PWAs ist der Service Worker, die Weiterentwicklung eines Web Workers bei einer Web App. Der Service Worker ist ein JavaScript-Programm, das im Hintergrund ausgeführt wird und für das Caching zuständig ist, damit die Seite auch offline verwendet werden kann.
Beim ersten Aufruf versucht der Web Server, den Service Worker zu installieren, damit er für jeden weiteren Aufruf verfügbar ist. Er wird – genauso wie der dazugehörige Cache – im Browser gespeichert. Die Inhalte werden über den Cache geladen, sodass auf die PWA auch ohne Internetverbindung zugegriffen werden kann. Um die Nutzung zu beschleunigen, wird auch das App-Gerüst oder App Shell gecacht.
Die App Shell als minimale HTML-, CSS- und JavaScript-Umgebung wird für die Darstellung und die Ausführung der App benötigt. Sie bildet den festgelegten Aufbau der App. Sie wird zuerst geladen und im Cache gespeichert. Im Gegensatz dazu steht der Inhalt, der dynamisch ist und über das Internet geladen wird. Dieser kann auch in einem lokalen Repository, also dem Cache, gespeichert werden. Die Caching-Funktion macht auch die Inhalte offline verfügbar und beschleunigt den Ladevorgang.
Wo sind die Unterschiede zu nativen Apps und Web-Apps?
Die PWA verknüpft Eigenschaften von Apps mit denen von Websites. Man legt eine Verknüpfung auf dem Screen an, wodurch die Web App eher den Eindruck einer nativen App vermittelt. Da die Inhalte über den Browser geladen werden, verbraucht die Verknüpfung weniger Speicher als eine App. Dank des responsiven Designs passt sich die Darstellung an das Endgerät an. Ein weiterer Vorteil ist, dass die Installation einer App nicht notwendig ist, wodurch sich auch die Installation von Updates erübrigt.