Progressive Web Applications
Die schöne neue Zukunft der Apps, die bereits seit Jahren existiert.
Progressive Web Apps (kurz PWA) existieren schon seit Jahren. Leider sieht man auf den ersten Blick keinen Unterschied zu normalen Internetseiten. Deshalb fallen sie nicht besonders auf und sind meist nur unter Web-Entwicklern ein Thema.
Was sind Progressive Web Applications?
Stelle dir vor, du öffnest eine Internetseite in deinem Browser, die du auf deinem Smartphone, deinem Windows, Linux oder Mac "installieren" kannst. Wenn du sie das nächste Mal aufrufst, wird sie nicht mehr im Browser geöffnet, sondern sieht wie andere Programme auf deinem Computer aus. Diese App lässt sich auch dann öffnen, wenn du keine Internetverbindung hast. Wenn diese App für ihre Funktion nicht unbedingt eine Internetverbindung benötigt, kannst du damit offline arbeiten wie mit anderen installierten Programmen. Das wäre ein typisches Beispiel für eine Progressive Web App.
PWAs können installiert werden. Manche PWAs funktionieren ohne Internetverbindung. Und manche PWAs benötigen zwar eine Internetverbindung, fühlen sich aber superschnell an, da sie die Daten lokal zwischenspeichern und im Hintergrund aktualisieren. Es gibt keine genaue Definition, bis zu welchem Grad es sich noch um eine normale Internetseite handelt und ab wann daraus eine PWA wird.
Updates
Einer der größten Vorteile von Progressive Web Applications gegenüber anderen Programmen ist, dass es einen automatischen Update-Prozess dafür gibt. Wie genau das Programm aktualisiert wird, kann detailliert konfiguriert werden. Ein gebräuchliches Beispiel dafür ist folgendes: Die App wird gestartet und lädt alle Daten (z.B. Bilder) aus dem lokalen Cache. Während man bereits mit der App arbeiten kann, wird eine Verbindung zum Server aufgebaut und geprüft, ob es eine neue Programmversion gibt. Wenn ja, werden alle benötigten Daten für die neue Version im Hintergrund geladen. Erst wenn die App neu gestartet wird, wird die neue Programmversion verwendet. Dieses Verhalten ist typisch für PWAs und wird durch Service Worker ermöglicht, die das Caching und die Aktualisierung von Inhalten steuern.
Mobile Applications
Man kann Webseiten (HTML-Seiten) so programmieren, dass sie lokal auf dem Computer angezeigt werden, ohne eine Verbindung zum Internet aufzubauen. Solche Webseiten können mit speziellen Tools in Smartphone-Apps umgewandelt werden, die dann im Google Play Store angeboten werden können.
Wenn ich eine Android-App programmiere, erstelle ich zuerst eine voll funktionsfähige PWA, die von einem Internetserver geladen werden kann. Ohne zu sehr ins Detail zu gehen: Diese PWA wird so programmiert, dass alle Seiten und Bilder lokal im Browser zwischengespeichert werden und auch ohne Internetverbindung funktioniert. Anschließend wird diese PWA in eine Programmhülle verpackt. Diese Hülle, die die eingebauten Webseiten enthält, kann dann wie jede andere App auf einem Smartphone installiert werden.
Ein Beispiel für solch eine Anwendung ist das Programm Mobilewetter.
Die PWA läuft im Browser unter https://app.mobilewetter.com/ und kann unter Linux, Windows, Mac, Android und iOS als Progressive Web App installiert werden. Diese Progressive Web App wurde als Basis dafür verwendet, um sie bei Google im Play Store und bei Apple im App Store als Smartphone-App anbieten zu können.
Lokale Datenspeicherung
Browser haben mehrere unterschiedliche Speichersysteme eingebaut, die man als Web-Programmierer verwenden kann. Das einfachste Speichersystem ist der localStorage. Möchte man komplexere Daten zwischenspeichern, kann man als Programmierer auf die IndexedDb zugreifen. Was ich damit sagen möchte, ist, dass Progressive Web Apps dadurch die Möglichkeit haben, Daten lokal zwischenzuspeichern, was natürlich viel schneller ist, als wenn man alle Daten aus dem Netz holen muss.
Ein anschauliches Beispiel dafür ist das Programm Weight Monitor v2. Dieses Programm speichert alle Daten in der IndexedDB, einer Datenbank, die direkt in den Browser integriert ist. Das bedeutet, dass die Informationen lokal auf dem Gerät des Benutzers gesichert werden. Dadurch wird nicht nur die Datensicherheit erhöht, sondern auch ein schneller Zugriff auf die gespeicherten Daten ermöglicht, wann immer sie benötigt werden.