Was ist eine Progressive Web App?
Das recht neue Konzept der Progressive Web App (PWA) verbindet klassische Websites mit einigen Vorteilen, die die Entwicklung nativer mobile Apps bietet. Es handelt sich um eine speziell entwickelte Website bzw. Web App, die trotz der Funktionsweise über einen Browser das Look & Feel einer nativen mobile App aufweist und dennoch auf mehreren Betriebssystemen gleichzeitig zur Verfügung steht – basierend auf einer einzigen Code Basis. So sollen PWAs eine Möglichkeit bieten, den sonst so typischen Widerspruch in der App Entwicklung zu umgehen: hohe Verfügbarkeit und Funktionalität zu überschaubaren Entwicklungskosten.
Bei PWAs werden HTML und CSS benutzt, um die Anwendungs-Shell, also das User Interface (UI), zu erstellen. Die Inhalte werden über sog. Service Worker, bestehend aus JavaScript, geladen. Mittlerweile existieren einige Frameworks für Website und App Entwicklung wie Ionic 2 und AngularJS, welche einige Funktionalitäten bereits zur Verfügung stellen und so den Entwicklungsaufwand einer Progressive Web App gering halten.
Einige Fakten zu PWAs auf einen Blick:
- Progressive Web Apps basieren auf Web Technologien
- Ein mal entwickelt steh einer PWA mehreren Plattformen zur Verfügung
- PWAs können wie eine Website über eine URL erreicht werden
- Im Gegensatz zu Web Apps sind PWAs auch offline funktional
- Können bei Erfüllung bestimmter Kriterien jedoch installierbar sein und im App bzw. Play Store angeboten werden
- PWAs passen sich vollständig dem Nutzungsrahmen an
Wirklichen Aufwind erfahren hat das Prinzip der PWA durch Google, entsprechend ist Google maßgeblich an Entwicklung und Adaption beteiligt. Aber auch die Browser Opera und Mozilla Firefox investieren ihn die recht neuartige Technologie.
PWA vs. klassische Web App
Progressive Web Apps lassen sich als Weiterentwicklung von Web Apps verstehen. Web Apps sind Applikationen, welche auf einem Server gelegt werden und direkt über den Browser aufgerufen werden können. Sie boten bereits früh den Vorteil, Apps auf mehreren Plattformen gleichzeitig verfügbar machen zu können, dabei aber Entwicklungskosten zu sparen – um eine native App für iOS und Android gleichzeitig verfügbar zu machen, muss sie nämlich auch zweimal entwickelt werden. Das ist bei Web Apps nicht der Fall. Dennoch weisen Web Apps gegenüber nativen Apps einige Nachteile auf. Beispielsweise funktionieren Sie nur bei bestehender Internetverbindung, können auf keine nativen Funktionen des Endgeräts zugreifen und fühlen sich vielleicht ähnlich, aber leider immer noch nicht wie eine native mobile App an.
Progressive Web Apps sollen die Web App dem Gefühl und der Funktionalität einer nativ entwickelten App näher bringen. Das wird vor allem über Funktionen wie Installierbarkeit, Offline-Modus und Zugriff auf native Features wie Kalender, Kontakte, Kamera und Push-Benachrichtigungen erreicht.
Was sind die Gemeinsamkeiten von PWA und Web Apps?
- In der Regel günstiger als Native Apps
- Web-Traffic kann genutzt werden
- als URL darstellbar
- Technologien der Webentwicklung
Wo liegen die Unterschiede zwischen PWA zu Web Apps:
- Hardwarezugriff möglich
- Verbesserte Performance
- Veröffentlichung im App Store möglich
- Service Worker als Kernstück der PWA
- Offline-Funktionalität
- Installierbarkeit
- Push-Notifications
Um eine Web App als PWA qualifizieren zu können, müssen bestimmte Kriterien erfüllt werden. Beispielsweise muss eine PWA über einen Service Worker verfügen. Der Service Worker ist JavaScript Programm, welches unter anderem als Brücke zwischen Netzwerk und Cache dient und somit die Offline Funktion sowie Push-Benachrichtigungen ermöglicht, welche die mit grundlegendsten Unterschiede zwischen einer PWA und einer Web App darstellt. Ob eine Web App die Kriterien zu einer PWA erfüllt, kann ganz einfach mit dem von Google entwickelten Tool Lighthouse überprüft werden.
Unterschiede zwischen PWA und hybrider App
Auch die hybride App Entwicklung ist ein Ansatz der plattformübergreifenden Entwicklung. Hier wird genauso eine Code Basis, die mit Web Technologien (HTML, CSS, JavaScript) programmiert wurde, übergreifend mehreren Betriebssystemen zur Verfügung gestellt. Der größte Unterschied ist, dass hybride Apps über einen Container ausgespielt werden, welcher wiederum native Funktionen bereitstellt. Der Container wird dann als die jeweilige App im App bzw. Play Store als Download angeboten.
Der Hauptunterschied zwischen hybrider App und PWA ist also der, dass PWAs auf die Kompatibilität zwischen Browser und Endgerät basieren, während die hybride App auf den eigenen Container, der nur browserartig fungiert, basiert. Während früher auch die Verfügbarkeit im App Store ein wichtiges Unterscheidungsmerkmal war, sehen wir aktuell bereits, dass die Grenzen zwischen PWA und hybrider App mit fortschreitendem technischen Fortschritt in der PWA Entwicklung weiter verschwimmen.