{"id":8437,"date":"2023-04-09T16:30:40","date_gmt":"2023-04-09T14:30:40","guid":{"rendered":"https:\/\/webdeasy.de\/?p=8437"},"modified":"2024-06-14T14:49:18","modified_gmt":"2024-06-14T12:49:18","slug":"progressive-web-apps","status":"publish","type":"post","link":"https:\/\/webdeasy.de\/progressive-web-apps\/","title":{"rendered":"Progressive Web Apps: So erstellst du deine eigene PWA"},"content":{"rendered":"\n<p class=\"has-drop-cap\">Eine Progressive Web App (PWA) ist eine Form von mobilen Anwendungen, die sich durch schnelle Ladezeiten, Offline-Funktionalit\u00e4t und eine optimierte Benutzererfahrung auszeichnen. In diesem Tutorial zeige ich dir, wie du in wenigen einfachen Schritten eine eigene PWA erstellen kannst.<\/p>\n\n\n<div class='table-of-contents'><span class='toc-headline'>Inhaltsverzeichnis<\/span><!-- Table of contents by webdeasy.de --><span class='toggle-toc custom-setting' title='zuklappen'>\u2212<\/span><ul><li><a href='#was-sind-progressive-web-apps'>Was sind Progressive Web Apps?<\/a><\/li><li><a href='#schattenseiten-von-progressive-web-apps'>Schattenseiten von Progressive Web Apps<\/a><\/li><li><a href='#so-baut-man-eine-progressive-web-app'>So baut man eine Progressive Web App<\/a><ul><li><a href='#manifest-json-konfigurieren'>manifest.json konfigurieren<\/a><\/li><li><a href='#service-worker-erstellen'>Service Worker erstellen<\/a><\/li><li><a href='#pwa-debuggen'>PWA debuggen<\/a><\/li><\/ul><li><a href='#fazit'>Fazit<\/a><\/li><\/ul><\/li><\/div><div id='ezoic-pub-ad-placeholder-622'><\/div>\n\n\n\n<p>In den letzten Jahren hat die mobile Nutzung des Internets die Desktop-Nutzung \u00fcberholt (<a href=\"https:\/\/de.statista.com\/statistik\/daten\/studie\/217457\/umfrage\/anteil-mobiler-endgeraete-an-allen-seitenaufrufen-weltweit\/\" target=\"_blank\" rel=\"noreferrer noopener\">offizielle statista Zahlen<\/a>). Die meisten Menschen greifen heutzutage auf das Internet \u00fcber ihre mobilen Ger\u00e4te zu. Infolgedessen haben sich die Anforderungen an die Entwicklung mobiler Anwendungen ge\u00e4ndert. Progressive Web Apps (PWA) sind eine der L\u00f6sungen, die sich in diesem Bereich entwickelt haben. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"was-sind-progressive-web-apps\">Was sind Progressive Web Apps?<\/h2>\n\n\n\n<p>Kurz gesagt, sind Progressive Web Apps eine Art von mobilen Anwendungen, die auf einer Website basieren. Aber was bedeutet das eigentlich? Ganz einfach: Eine PWA ist eine mobile Anwendung, die du \u00fcber den Browser auf deinem mobilen Ger\u00e4t aufrufen kannst. Im Gegensatz zu nativen Apps musst du keine separate Anwendung herunterladen und installieren.<\/p>\n\n\n\n<p>Aber hier wird es interessanter: Eine PWA hat fast alle Funktionen und Vorteile einer nativen App. Das bedeutet, dass du auf Hardware-Funktionen deines Ger\u00e4ts wie die Kamera oder den GPS zugreifen und Push-Benachrichtigungen empfangen kannst. Das Beste daran ist, dass PWAs auf jedem Ger\u00e4t und in jedem Browser funktionieren &#8211; ob iOS oder Android, Chrome oder Safari (<a href=\"https:\/\/caniuse.com\/?search=PWA\" target=\"_blank\" rel=\"noreferrer noopener\">es gibt nat\u00fcrlich Ausnahmen<\/a>).<\/p>\n\n\n\n<p>Und jetzt kommt das Beste: PWAs k\u00f6nnen auch offline funktionieren! Das bedeutet, dass du sie auch ohne Internetverbindung nutzen kannst. Stell dir vor, du bist unterwegs und hast keine mobile Datenverbindung oder WLAN zur Verf\u00fcgung. Kein Problem, wenn du eine PWA nutzt &#8211; sie funktioniert trotzdem!<\/p>\n\n\n\n<p>Du fragst dich jetzt wahrscheinlich, wie das m\u00f6glich ist. Nun, PWAs nutzen einen Cache, um die Anwendung auf deinem Ger\u00e4t zu speichern. Wenn du sie zum ersten Mal besuchst, l\u00e4dt der Browser die Anwendung und speichert sie im Cache. Wenn du das n\u00e4chste Mal die Anwendung \u00f6ffnest, ruft der Browser die Anwendung aus dem Cache ab. Das macht die Ladezeiten viel schneller als bei nativen Apps.<\/p>\n\n\n\n<p>Und noch ein weiterer Vorteil: Da PWAs auf einer Website basieren, sind sie auch einfacher zu aktualisieren. Entwickler k\u00f6nnen einfach eine neue Version der Anwendung auf dem Server bereitstellen, und die \u00c4nderungen werden automatisch auf deinem Ger\u00e4t angezeigt. Du musst nicht jedes Mal eine neue Version der App herunterladen und installieren.<\/p>\n\n\n\n<p>Zusammenfassend k\u00f6nnen wir sagen, dass PWAs die Vorteile von nativen Apps und Websites kombinieren und das Beste aus beiden Welten bieten. Sie bieten eine optimierte Benutzererfahrung, schnelle Ladezeiten, Offline-Funktionalit\u00e4t und k\u00f6nnen auf jedem Ger\u00e4t und in jedem Browser genutzt werden. Klingt doch ziemlich cool, oder?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"schattenseiten-von-progressive-web-apps\">Schattenseiten von Progressive Web Apps<\/h2>\n\n\n\n<p>Obwohl Progressive Web Apps viele Vorteile bieten, gibt es auch einige Nachteile, die man beachten sollte:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Eingeschr\u00e4nkte Zugriffsm\u00f6glichkeiten:<\/strong> Da PWAs im Browser ausgef\u00fchrt werden, haben sie eingeschr\u00e4nkte Zugriffsm\u00f6glichkeiten auf bestimmte Funktionen und Hardware des Ger\u00e4ts, wie beispielsweise Kamera, Kontakte oder das Betriebssystem selbst. Daher kann es schwierig sein, bestimmte Funktionen in einer PWA zu implementieren, die in einer nativen App verf\u00fcgbar sind.<\/li>\n\n\n\n<li><strong>Eingeschr\u00e4nkte Unterst\u00fctzung von Push-Benachrichtigungen:<\/strong> Obwohl PWAs in der Lage sind, Push-Benachrichtigungen zu unterst\u00fctzen, ist ihre Unterst\u00fctzung in einigen Browsern noch begrenzt. Dies kann dazu f\u00fchren, dass Benutzer keine Benachrichtigungen von der Anwendung erhalten oder dass diese mit Verz\u00f6gerung ankommen.<\/li>\n\n\n\n<li><strong>Begrenzte Funktionalit\u00e4t bei \u00e4lteren Browsern:<\/strong> Ein weiterer Nachteil von PWAs ist, dass sie m\u00f6glicherweise nicht auf \u00e4lteren Browsern oder Ger\u00e4ten funktionieren. Die Verwendung von neueren Technologien und APIs kann dazu f\u00fchren, dass PWAs nicht auf \u00e4lteren Ger\u00e4ten oder Browsern ordnungsgem\u00e4\u00df funktionieren.<\/li>\n\n\n\n<li><strong>Einschr\u00e4nkungen bei der Speicherung von Daten:<\/strong> PWAs k\u00f6nnen Daten auf dem Ger\u00e4t speichern, aber der Speicherplatz ist begrenzt und die Speicherung ist nicht so flexibel wie in nativen Apps. Das kann dazu f\u00fchren, dass einige Funktionen, die viel Speicherplatz ben\u00f6tigen, in einer PWA nicht implementiert werden k\u00f6nnen.<\/li>\n<\/ol>\n\n\n\n<p>Insgesamt sind die Nachteile von PWAs im Vergleich zu den Vorteilen relativ gering. Bei der Entwicklung einer PWA sollten die Einschr\u00e4nkungen und M\u00f6glichkeiten der Technologie ber\u00fccksichtigt werden, um sicherzustellen, dass die Anwendung auf jedem Ger\u00e4t und in jedem Browser ordnungsgem\u00e4\u00df funktioniert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"so-baut-man-eine-progressive-web-app\">So baut man eine Progressive Web App<\/h2>\n\n\n\n<p>Wenn du WordPress nutzt bist du schnell fertig: Installiere das <a href=\"https:\/\/wordpress.org\/plugins\/pwa\/\" target=\"_blank\" rel=\"noreferrer noopener\">PWA Plugin<\/a> und in wenigen Minuten ist aus deiner normalen Website eine tolle PWA geworden.<\/p>\n\n\n\n<p class=\"info-notice info\">Meine <a href=\"https:\/\/webdeasy.de\/beste-wordpress-plugins\/\">Auswahl der besten kostenlosen WordPress Plugins<\/a> findest du \u00fcbrigens hier.<\/p>\n\n\n\n<p>So einfach ist es allerdings nicht immer. Zum Erstellen einer PWA geh\u00f6rt doch noch etwas mehr dazu. Eine PWA besteht aus zwei Grundlegenden Teilen: der <strong>manifest.json<\/strong> und dem <strong>Service Worker<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"manifest-json-konfigurieren\">manifest.json konfigurieren<\/h3>\n\n\n\n<p>Um die <em>manifest.json<\/em> auf deiner Website einzubinden muss folgende Zeile im <code>head<\/code> eingebunden werden:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;link rel=\"manifest\" href=\"\/manifest.json\"><\/pre>\n\n\n\n<p>Diese Datei enth\u00e4lt alle ben\u00f6tigten Informationen \u00fcber deine Website, hier ein Beispiel:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n   \"short_name\":\"webdeasy.de\",\n   \"name\":\"webdeasy.de\",\n   \"icons\":[\n      {\n         \"src\":\"\/images\/logo-512.svg\",\n         \"type\":\"image\/svg+xml\",\n         \"sizes\":\"512x512\"\n      },\n      {\n         \"src\":\"\/images\/logo-192.png\",\n         \"type\":\"image\/png\",\n         \"sizes\":\"192x192\"\n      },\n      {\n         \"src\":\"\/images\/logo-512.png\",\n         \"type\":\"image\/png\",\n         \"sizes\":\"512x512\"\n      }\n   ],\n   \"start_url\":\"\/index.html\",\n   \"background_color\":\"#3d50a7\",\n   \"display\":\"standalone\",\n   \"theme_color\":\"#3d50a7\",\n   \"description\":\"Your IT-Blog\"\n}<\/pre>\n\n\n\n<p>Was genau die einzelnen Parameter bedeuten und welche es noch gibt, kannst du in der <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Add-ons\/WebExtensions\/manifest.json\" target=\"_blank\" rel=\"noreferrer noopener\">manifest.json Dokumentation<\/a> nachlesen. Ich m\u00f6chte dir hier nur zeigen, wie einfach man eine grundlegende PWA erstellen kann.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"service-worker-erstellen\">Service Worker erstellen<\/h3>\n\n\n\n<p>Die komplette Logik deiner PWA befindet sich im Service Worker, welche du ins Root-Verzeichnis deiner Website legen solltest. So kann er beispielsweise Daten aus dem Cache liefern, selbst wenn der Nutzer offline ist. Der Service Worker erm\u00f6glicht auch das Senden von Push-Benachrichtigungen und das Aktualisieren der App im Hintergrund, ohne dass der Nutzer die Seite neu laden muss.<\/p>\n\n\n\n<p>Einzubinden ist der Service Worker wie auch die <em>manifest.json<\/em> im HTML <code>head<\/code> deiner Website:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;script>\n      if ('serviceWorker' in navigator) {\n        navigator.serviceWorker\n          .register('service-worker.js')\n          .then(function (reg) {\n            console.log('Registration successful: ' + reg.scope);\n          })\n          .catch(function (err) {\n            console.error('Registration failed: ' + err);\n          });\n      }\n&lt;\/script><\/pre>\n\n\n\n<p>Der Service Worker kann auf Events reagieren, so kannst du beispielsweise das <code>install<\/code> oder <code>activate<\/code> Event abfangen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ service-worker.js\n\nself.addEventListener(\"install\", event => {\n   console.log(\"Service worker installed\");\n});\n\nself.addEventListener(\"activate\", event => {\n   console.log(\"Service worker activated\");\n});<\/pre>\n\n\n\n<p>Was du dann in den Callback Funktionen machst, ist dann nat\u00fcrlich abh\u00e4ngig von deiner WebApp.<\/p>\n\n\n\n<p>Wenn du die PWA lokal testest wird dieser Fehler bei dir auftauchen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1216\" height=\"21\" src=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image.png\" alt=\"Registration failed: TypeError: Failed to register a ServiceWorker: The URL protocol of the current origin ('null') is not supported.\" class=\"wp-image-8451\" srcset=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image.png 1216w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-650x11.png 650w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-750x13.png 750w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-768x13.png 768w\" sizes=\"auto, (max-width: 1216px) 100vw, 1216px\" \/><\/a><figcaption class=\"wp-element-caption\">&#8222;Registration failed: TypeError: Failed to register a ServiceWorker: The URL protocol of the current origin (&#8217;null&#8216;) is not supported.&#8220;<\/figcaption><\/figure>\n\n\n\n<p>Das liegt daran, dass die HTML-Datei nicht statisch aufgerufen wird, sondern \u00fcber einen Server ausgeliefert wird. Wenn du Visual Studio nutzt kannst du einen Live-Server \u00fcber diese <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ritwickdey.LiveServer\" target=\"_blank\" rel=\"noreferrer noopener\">LiveServer Extension<\/a> starten.<\/p>\n\n\n\n<p>Sind keine Fehler in der manifest.json vorhanden sollte dieser Button auftauchen, um die PWA zu installieren.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa-browser-bar.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1724\" height=\"161\" src=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa-browser-bar.png\" alt=\"Google Chrome Browser: PWA installieren\" class=\"wp-image-8452\" srcset=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa-browser-bar.png 1724w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa-browser-bar-650x61.png 650w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa-browser-bar-750x70.png 750w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa-browser-bar-768x72.png 768w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa-browser-bar-1536x143.png 1536w\" sizes=\"auto, (max-width: 1724px) 100vw, 1724px\" \/><\/a><figcaption class=\"wp-element-caption\">Google Chrome Browser: PWA installieren<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"pwa-debuggen\">PWA debuggen<\/h3>\n\n\n\n<p>\u00dcber den &#8222;Application&#8220; Tab in deinen Dev Tools l\u00e4sst sich eine PWA debuggen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1229\" height=\"486\" src=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-1.png\" alt=\"PWA debuggen\" class=\"wp-image-8453\" srcset=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-1.png 1229w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-1-650x257.png 650w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-1-750x297.png 750w, https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/image-1-768x304.png 768w\" sizes=\"auto, (max-width: 1229px) 100vw, 1229px\" \/><\/a><figcaption class=\"wp-element-caption\">PWA debuggen<\/figcaption><\/figure>\n\n\n\n<p>Die Dokumentation zum Service Worker findest du in der <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Service_Worker_API?retiredLocale=de\" target=\"_blank\" rel=\"noreferrer noopener\">Service Worker API<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"fazit\">Fazit<\/h2>\n\n\n\n<p>Zusammenfassend bieten Progressive Web Apps eine vielversprechende Alternative zu nativen Apps und herk\u00f6mmlichen Websites. PWAs bieten eine verbesserte Benutzererfahrung, schnellere Ladezeiten, Offline-Funktionalit\u00e4t, geringeren Speicherplatzbedarf und einfache Aktualisierungen. Dar\u00fcber hinaus sind sie auf jedem Ger\u00e4t und in jedem Browser nutzbar und k\u00f6nnen f\u00fcr Suchmaschinen optimiert werden.<\/p>\n\n\n\n<p>Allerdings gibt es auch einige Einschr\u00e4nkungen bei der Nutzung von PWAs, wie eingeschr\u00e4nkte Zugriffsm\u00f6glichkeiten auf bestimmte Funktionen und Hardware des Ger\u00e4ts oder begrenzte Unterst\u00fctzung von Push-Benachrichtigungen. Bei der Entwicklung einer PWA sollte daher sorgf\u00e4ltig abgewogen werden, welche Funktionen und Technologien verwendet werden sollen, um sicherzustellen, dass die Anwendung auf jedem Ger\u00e4t und in jedem Browser ordnungsgem\u00e4\u00df funktioniert.<\/p>\n\n\n\n<p>Insgesamt bieten Progressive Web Apps eine vielversprechende M\u00f6glichkeit, eine optimierte Benutzererfahrung auf verschiedenen Ger\u00e4ten und Betriebssystemen zu bieten, ohne die Notwendigkeit einer nativen App zu haben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine Progressive Web App (PWA) ist eine Form von mobilen Anwendungen, die sich durch schnelle Ladezeiten, Offline-Funktionalit\u00e4t und eine optimierte Benutzererfahrung auszeichnen. In diesem Tutorial [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8461,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[564,311,521],"tags":[],"class_list":["post-8437","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html","category-javascript","category-nicetoknow","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Progressive Web Apps: So erstellst du deine eigene PWA<\/title>\n<meta name=\"description\" content=\"Eine Progressive Web App (PWA) erstellen: Bessere Benutzererfahrung durch schnelle Ladezeiten und Offline-Funktionalit\u00e4t auf Website-Basis.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webdeasy.de\/progressive-web-apps\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Progressive Web Apps: So erstellst du deine eigene PWA\" \/>\n<meta property=\"og:description\" content=\"Eine Progressive Web App (PWA) erstellen: Bessere Benutzererfahrung durch schnelle Ladezeiten und Offline-Funktionalit\u00e4t auf Website-Basis.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webdeasy.de\/progressive-web-apps\/\" \/>\n<meta property=\"og:site_name\" content=\"webdeasy.de\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-09T14:30:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-14T12:49:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Lorenz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webdeasy\" \/>\n<meta name=\"twitter:site\" content=\"@webdeasy\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lorenz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/\"},\"author\":{\"name\":\"Lorenz\",\"@id\":\"https:\\\/\\\/webdeasy.de\\\/#\\\/schema\\\/person\\\/42d507baee923988d706529843341fd7\"},\"headline\":\"Progressive Web Apps: So erstellst du deine eigene PWA\",\"datePublished\":\"2023-04-09T14:30:40+00:00\",\"dateModified\":\"2024-06-14T12:49:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/\"},\"wordCount\":1219,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/#\\\/schema\\\/person\\\/42d507baee923988d706529843341fd7\"},\"image\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/pwa.jpg\",\"articleSection\":[\"HTML\",\"JavaScript\",\"nicetoknow\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/\",\"url\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/\",\"name\":\"Progressive Web Apps: So erstellst du deine eigene PWA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/pwa.jpg\",\"datePublished\":\"2023-04-09T14:30:40+00:00\",\"dateModified\":\"2024-06-14T12:49:18+00:00\",\"description\":\"Eine Progressive Web App (PWA) erstellen: Bessere Benutzererfahrung durch schnelle Ladezeiten und Offline-Funktionalit\u00e4t auf Website-Basis.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#primaryimage\",\"url\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/pwa.jpg\",\"contentUrl\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/pwa.jpg\",\"width\":1400,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/webdeasy.de\\\/progressive-web-apps\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/webdeasy.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\\\/\\\/webdeasy.de\\\/category\\\/javascript\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Progressive Web Apps: So erstellst du deine eigene PWA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/webdeasy.de\\\/#website\",\"url\":\"https:\\\/\\\/webdeasy.de\\\/\",\"name\":\"webdeasy.de\",\"description\":\"Backend-Development, DevOps &amp; Co.\",\"publisher\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/#\\\/schema\\\/person\\\/42d507baee923988d706529843341fd7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/webdeasy.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/webdeasy.de\\\/#\\\/schema\\\/person\\\/42d507baee923988d706529843341fd7\",\"name\":\"Lorenz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/cropped-webdeasy-logo-3.png\",\"url\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/cropped-webdeasy-logo-3.png\",\"contentUrl\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/cropped-webdeasy-logo-3.png\",\"width\":190,\"height\":190,\"caption\":\"Lorenz\"},\"logo\":{\"@id\":\"https:\\\/\\\/webdeasy.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/cropped-webdeasy-logo-3.png\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/webdeasy\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Progressive Web Apps: So erstellst du deine eigene PWA","description":"Eine Progressive Web App (PWA) erstellen: Bessere Benutzererfahrung durch schnelle Ladezeiten und Offline-Funktionalit\u00e4t auf Website-Basis.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webdeasy.de\/progressive-web-apps\/","og_locale":"de_DE","og_type":"article","og_title":"Progressive Web Apps: So erstellst du deine eigene PWA","og_description":"Eine Progressive Web App (PWA) erstellen: Bessere Benutzererfahrung durch schnelle Ladezeiten und Offline-Funktionalit\u00e4t auf Website-Basis.","og_url":"https:\/\/webdeasy.de\/progressive-web-apps\/","og_site_name":"webdeasy.de","article_published_time":"2023-04-09T14:30:40+00:00","article_modified_time":"2024-06-14T12:49:18+00:00","og_image":[{"width":1400,"height":600,"url":"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa.jpg","type":"image\/jpeg"}],"author":"Lorenz","twitter_card":"summary_large_image","twitter_creator":"@webdeasy","twitter_site":"@webdeasy","twitter_misc":{"Verfasst von":"Lorenz","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/webdeasy.de\/progressive-web-apps\/#article","isPartOf":{"@id":"https:\/\/webdeasy.de\/progressive-web-apps\/"},"author":{"name":"Lorenz","@id":"https:\/\/webdeasy.de\/#\/schema\/person\/42d507baee923988d706529843341fd7"},"headline":"Progressive Web Apps: So erstellst du deine eigene PWA","datePublished":"2023-04-09T14:30:40+00:00","dateModified":"2024-06-14T12:49:18+00:00","mainEntityOfPage":{"@id":"https:\/\/webdeasy.de\/progressive-web-apps\/"},"wordCount":1219,"commentCount":2,"publisher":{"@id":"https:\/\/webdeasy.de\/#\/schema\/person\/42d507baee923988d706529843341fd7"},"image":{"@id":"https:\/\/webdeasy.de\/progressive-web-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa.jpg","articleSection":["HTML","JavaScript","nicetoknow"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webdeasy.de\/progressive-web-apps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webdeasy.de\/progressive-web-apps\/","url":"https:\/\/webdeasy.de\/progressive-web-apps\/","name":"Progressive Web Apps: So erstellst du deine eigene PWA","isPartOf":{"@id":"https:\/\/webdeasy.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webdeasy.de\/progressive-web-apps\/#primaryimage"},"image":{"@id":"https:\/\/webdeasy.de\/progressive-web-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa.jpg","datePublished":"2023-04-09T14:30:40+00:00","dateModified":"2024-06-14T12:49:18+00:00","description":"Eine Progressive Web App (PWA) erstellen: Bessere Benutzererfahrung durch schnelle Ladezeiten und Offline-Funktionalit\u00e4t auf Website-Basis.","breadcrumb":{"@id":"https:\/\/webdeasy.de\/progressive-web-apps\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webdeasy.de\/progressive-web-apps\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/webdeasy.de\/progressive-web-apps\/#primaryimage","url":"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa.jpg","contentUrl":"https:\/\/webdeasy.de\/wp-content\/uploads\/2023\/04\/pwa.jpg","width":1400,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/webdeasy.de\/progressive-web-apps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webdeasy.de\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/webdeasy.de\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"Progressive Web Apps: So erstellst du deine eigene PWA"}]},{"@type":"WebSite","@id":"https:\/\/webdeasy.de\/#website","url":"https:\/\/webdeasy.de\/","name":"webdeasy.de","description":"Backend-Development, DevOps &amp; Co.","publisher":{"@id":"https:\/\/webdeasy.de\/#\/schema\/person\/42d507baee923988d706529843341fd7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webdeasy.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/webdeasy.de\/#\/schema\/person\/42d507baee923988d706529843341fd7","name":"Lorenz","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/webdeasy.de\/wp-content\/uploads\/2019\/09\/cropped-webdeasy-logo-3.png","url":"https:\/\/webdeasy.de\/wp-content\/uploads\/2019\/09\/cropped-webdeasy-logo-3.png","contentUrl":"https:\/\/webdeasy.de\/wp-content\/uploads\/2019\/09\/cropped-webdeasy-logo-3.png","width":190,"height":190,"caption":"Lorenz"},"logo":{"@id":"https:\/\/webdeasy.de\/wp-content\/uploads\/2019\/09\/cropped-webdeasy-logo-3.png"},"sameAs":["https:\/\/x.com\/webdeasy"]}]}},"_links":{"self":[{"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/posts\/8437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/comments?post=8437"}],"version-history":[{"count":2,"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/posts\/8437\/revisions"}],"predecessor-version":[{"id":9378,"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/posts\/8437\/revisions\/9378"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/media\/8461"}],"wp:attachment":[{"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/media?parent=8437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/categories?post=8437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webdeasy.de\/wp-json\/wp\/v2\/tags?post=8437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}