Bitte fragen und
bitte diskutieren.
Es gibt doch native Apps?
Kein Entweder-Oder,nicht
einmal pro Projekt oder Kunde
>> means „perform better than“
>> means „perform better than“
Was fehlt dem mobilen Web,
was native Apps haben?
PWAs sollen alle
diese Punkte ausgleichen,
aber wie?
„Menschen installieren sich
Apps eher selten“
→ PWAs sind Websites, man muss sie nicht installieren, aber man könnte.
„Menschen browsen mobil
und kaufen stationär“
(Sicherheitsbedenken, Bequemlichkeit,
Übersicht)
→ PWAs sind sicher(er)
und besser integriert
Menschen gehen,
wenn es zu lange dauert
→ PWAs sind schnell,
gefühlt und tatsächlich
Gartner predicts that by 2020, 50% of general-purpose, consumer-facing mobile apps will be PWAs.
Frances Berriman
Product manager @ Netlify
(@phae)
Alex Russell
Engineer @ Google
(@slightlylate)
The name isn’t for you […] The name is for your boss, for your investor, for your marketeer.
… ähnlich wie HTML5
„Progressive Web Apps are just great web sites that can behave like native apps.“Edge Developer Blog
„Progressive Web Apps are just great apps, powered by Web technologies and delivered with Web infrastructure.“Edge Developer Blog
„Responsive, connectivity-independent, app-like, fresh, safe, discoverable, re-engageable, installable, linkable web experiences.“Frances Berriman, Alex Russell
PWAs werden definiert
über ihre Eigenschaften.
„It’s just a useful term for a toolkit of features.“
RELIABLE
Work offline and perform well on low-quality networks.
FAST
Load in seconds, with smooth interactions inside the app.
ENGAGING
Immersive app experience with full access to native features.
DISCOVERABLE
Easily discovered through a simple web search.
SMALL
A fraction of the size of a traditional app store app.
FRESH
Always up-to-date with the latest content served instantly.
INSTALLABLE
Allow users to „keep“ apps they find useful on their home screen.
ACCESSIBLE
Run on desktop and mobile, or anywhere you find a browser
Fast | → | App Shell, Cache |
Integrated | → | Web App Manifest, Web APIs |
Reliable | → | Service Worker, Web Platform |
Engaging | → | Push-Notifications, Home-Screen |
Secure | → | https, Specs |
Let's encrypt → ✅
Geschwindigkeit, Offline-Fähigkeit, Push Notifications
Service worker is a programmable network proxy, allowing you to control how network requests from your page are handled.https://developers.google.com/web/fundamentals/primers/service-workers/
Integration, Installierbarkeit,
App-Gefühl
Kanal zum Benutzer
Verbreitung, Stabilität, Offenheit
Zurück zum
The UX of apps + the reach of the Web = The FutureBruce Lawson, Ex-Opera
Bei PWAs geht es nur um Mobilgeräte.
❌
PWA ist nur ein Name ohne eigenen Wert
❌
Bei PWAs geht es nur um
Offline-Benutzung
❌
Alles oder nichts /
Ganz oder gar nicht
❌
PWA können noch nicht verwendet werden
❌
29. März 2018
30. April 2018
Can I Use serviceworkers? Data on support for the serviceworkers feature across the major browsers from caniuse.com.
Can I Use web-app-manifest? Data on support for the web-app-manifest feature across the major browsers from caniuse.com.
Firefox status: In Development
Automatische Bewertung
des „PWA-Grads“
😀
We’ve announced before in several venues that we’re all-in on PWAs.
😀
Progressive Web Apps are experiences that combine the best of the web and the best of apps.
„Google has announced that beginning mid-2018, Chrome Apps will be also PWAs“
😀
The web is the largest software platform ever […] The more it can do, the better off we’ll be.
😀
Let’s keep on working together on the building blocks of PWAs.
Officially unofficial PWA logo by Diego González-Zúñiga, Web Advocate at Samsung Internet.
😀
Progressive Web Apps
Are the Future
😏
.app
TLD)With Google’s increasing push to wider implementation of Progressive Web Apps and the challenges facing native apps, we can see that business use of PWAs will become more and more popular.
Es gilt: auch eine PWA will wohlüberlegt sein.
https://codelabs.developers.google.com /codelabs/your-first-pwapp/
https://codelabs.developers.google.com /codelabs/debugging-service-workers/
⚠️ Nobody really wants Push Notifications… so use them wisely.
https://codelabs.developers.google.com /codelabs/push-notifications/
Service worker is a programmable network proxy, allowing you to control how network requests from your page are handled.https://developers.google.com/web/fundamentals/primers/service-workers/
Ohne Service Worker
Going Offline by Jeremy Keith (📙)Mit „pass through“ Service Worker
Going Offline by Jeremy Keith (📙)Service Worker mit Cache
Going Offline by Jeremy Keith (📙)navigator.serviceWorker.register('/sw.js');
navigator.serviceWorker.register('/sw.js').then(function() {
console.log('✅');
}, function() {
console.log('❌');
});
self.addEventListener('install', function(e) {
// Do something, e.g. good place to precache files
});
self.addEventListener('activate', function(e) {
// Do something, e.g. good place to cleanup cache
});
navigator.serviceWorker.register('/sw.js', {
scope: '/path-under-sw-control/'
});
self.addEventListener('install', function(e) {
e.waitUntil(
caches.open('v1-assets').then(function(cache) {
return cache.addAll([
'/',
'/index.html',
'/some.png'
]);
})
);
});
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
return response || fetch(event.request);
})
);
});
Nützlich z.B. bei „Artikel offline verfügbar machen“ (dynamischer Cache)
navigator.serviceWorker.controller.postMessage("…");
Technische Basis für Service Worker
name
und short_namebackground_color
und theme_color
display
categories
prefer_related_applications
und related_applications
meta
-Element
Öffnen sich Links in der installierten PWA oder im Browser?
Android: Android Intent Filters
iOS: aktuell wohl nicht möglich, Schlagworte „Custom URL
Schemes“, „Custom Meta Tags“, „Bundle Identifier“
Kann man im Service Worker Netzwerkanfragen priorisieren?
Diskussion
Priority
Hints
Wann wir ein Service Worker aktualisiert?
Updating the service worker