Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Progressive Web Apps: Erfolgsfaktoren, Grenzen, Ausblick

Progressive Web Apps: Erfolgsfaktoren, Grenzen, Ausblick

Progressive Web Apps sind ein plattformübergreifendes, webbasiertes Anwendungsmodell. Einmal geschrieben, laufen diese Anwendungen überall von Mobile bis Desktop. In den letzten Jahren kamen dank der Initiative "Project Fugu" viele neue Schnittstellen ins Web, die PWAs auf Desktopniveau gehoben haben. Doch auch auf Mobilgeräten hat sich einiges getan: So können in diesem Jahr PWAs endlich auch auf iPhones und iPads Pushbenachrichtigungen empfangen.

Zeit also, Bilanz zu ziehen: Was kann mit Progressive Web Apps im Jahr 2023 erreicht werden?Wo liegen die Grenzen die Anwendungsmodells? Wie gelingt der Einsatz? Und wie geht es weiter? Christian Liebel von Thinktecture gibt einen aktuellen Überblick.

Christian Liebel

June 27, 2023
Tweet

More Decks by Christian Liebel

Other Decks in Programming

Transcript

  1. Hello, it’s me. Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Christian

    Liebel Twitter: @christianliebel Email: christian.liebel @thinktecture.com Angular & PWA Slides: thinktecture.com /christian-liebel
  2. Erfolgsfaktoren, Grenzen, Ausblick Progressive Web Apps Responsive Linkable Discoverable Installable

    App-like Connectivity Independent Fresh Safe Re-engageable Progressive
  3. Web App Manifest Distinguishes Web Apps from Websites JSON-based file

    containing metadata for apps only Apps can be identified by search engines, app store providers, etc. Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA
  4. manifest.webmanifest { "short_name": "Paint", "name": "Paint Workshop", "theme_color": "white", "icons":

    [{ "src": "icon.png", "sizes": "512x512" }], "start_url": "/index.html", "display": "standalone", "shortcuts": [/* … */] } Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA Names Icons Display Mode Shortcuts Start URL Theme color (status bar/window bar)
  5. Manifest Icon Purposes (any) any context (e.g. app icon) monochrome

    different color requirements (at risk) maskable user agent masks icon as required Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA Safe Zone Windows iOS Android
  6. Manifest Shortcuts Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA Secondary

    entrypoints for your application (e.g., home screen quick actions, jump lists, …) Static definition in Web App Manifest Dynamic API may follow in the future Supported by Google Chrome for Android, macOS and Windows
  7. Web App Manifest – Chrome Install Criteria 1. Web App

    is not already installed 2. Meets a user engagement heuristic (user has interacted and clicked with origin for at least 30 seconds) 3. Includes a Web App Manifest that has short_name or name, at least a 192px and 512px icon, a start_url and a display mode of fullscreen, standalone or minimal-ui 4. Served over HTTPS 5. A service worker is no longer required! Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA https://web.dev/install-criteria/
  8. Service Worker JavaScript executed in an own thread, registered by

    the website Acts as a controller, proxy, or interceptor Has a cache to store responses (for offline availability and performance) Can wake up even when the website is closed and perform background tasks (e.g., push notifications or sync) Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA
  9. Workbox Toolchain by Google Includes a CLI Generates a service

    worker implementation from directory contents (e.g., build output, or our development directory) Allows you to modify the service worker behavior (maximum flexibility) Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA
  10. Push Notifications Just as native apps, PWAs can receive push

    notifications Combination of two technologies: Web Notifications and Push API Supported by Chrome, Edge, Firefox, Safari Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick PWA
  11. Project Fugu Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Capabilities »Let’s

    bring the web back – API by API« Thomas Steiner, Google
  12. https://paint.js.org – Productivity app – Draw images – Lots of

    actions & tools – Installable – Read/save files – Copy/paste images from/to clipboard – Share files to other apps – Register for file extensions Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Demo Use Case
  13. Browser Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Capabilities navigator.share({ url:

    'http://example.com' }); ShareIntent DataTransferManager … NSSharingServicePicker
  14. File System Access API Some applications heavily rely on working

    with files (e.g. Visual Studio Code, Adobe Photoshop, …) File System Access API allows you to open, save and override files and directories Supported by Chrome, Edge Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Capabilities
  15. Async Clipboard API Allows reading from/writing to the clipboard in

    an asynchronous manner (UI won’t freeze during long-running operations) Supported by Chrome, Edge and Safari and Firefox (plain- text only) Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Capabilities
  16. Web Share API Allows sharing a title, URL, text, or

    files API can only be invoked as a result of a user action (i.e. a click or keypress) Supported by Chrome, Edge, Safari and Firefox (Android only) Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Capabilities
  17. File Handling API Register your PWA as a handler for

    file extensions New: Ability to define icons Requires installing the application first Declare supported extensions in Web App Manifest and add imperative code to your application logic Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Capabilities
  18. Overview Use available interfaces and functions of a system (opposite

    of Graceful Degradation) Users with modern, feature-rich browsers get a better experience Apps are available on older browsers, but with limited functionality Concept: Browser feature support should grow over time—thereby more users can enjoy an increasing number of features Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Progressive Enhancement
  19. Overview if ('serviceWorker' in navigator) { navigator.serviceWorker.register(…) .then(() => /*

    … */); } In JavaScript: check whether an API/feature is available. If yes—use it! Otherwise: 1. Disable the functionality 2. Fall back to an alternative API (if available) Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Progressive Enhancement
  20. Isolated Web Apps – Packaged and signed for stronger security

    – Deployed through app stores, platform- specific bundles or installers – These additional trust anchors enable even more powerful APIs (e.g., Direct Sockets API) for IWAs – Still web-based, cross-platform and using open standards – But without the bloat of Electron Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Outlook
  21. Isolated Web Apps Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Outlook

    JS HTML CSS Enterprise Deploy App Store MSI, APK, … Signed Web Bundle Platform- specific
  22. – Offline first – Mobile first – Easier for applications

    that already have been web-based, possible for applications that are not Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Success Factors
  23. – PWAs are not suitable for very deep platform-specific integrations

    (e.g., cloud sync client, antivirus scanner, …) – File System Access API, Web USB, Web Bluetooth and some other APIs are exclusively available in Chromium-based browsers – PWAs are not installable on desktop Firefox Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Limitations
  24. – More web platform APIs will be introduced to enable

    web applications to do even more – Isolated Web Apps (IWA) may give web-based apps access to arbitrary (?) platform-specific interfaces Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Outlook
  25. Progressive Web Apps are now installable, offline-capable and able to

    receive push notifications on all operating systems If needed, you can still wrap your application in a platform-specific package à your investment in web apps always pays off! Let’s make the web a more capable platform! Progressive Web Apps Erfolgsfaktoren, Grenzen, Ausblick Summary