├── .gitignore ├── chapter-3 ├── nocache │ ├── js │ │ └── script.js │ ├── images │ │ └── hello.png │ └── no-cache.html ├── cachefirst │ ├── js │ │ └── script.js │ ├── sw-cachefirst.js │ └── index.html ├── precache │ ├── js │ │ └── script.js │ ├── images │ │ └── hello.png │ ├── service-worker.js │ └── index.html ├── progressive-times │ ├── data │ │ ├── data-2.json │ │ ├── latest.json │ │ ├── data-3.json │ │ ├── data-4.json │ │ └── data-1.json │ ├── article.html │ ├── index.html │ ├── images │ │ └── newspaper.svg │ ├── css │ │ └── site.css │ ├── js │ │ ├── article.js │ │ └── main.js │ └── sw.js └── readme.md ├── chapter-7 ├── images │ ├── homescreen.png │ ├── homescreen-144.png │ └── newspaper.svg ├── manifest.json ├── data │ ├── data-2.json │ ├── latest.json │ ├── data-3.json │ ├── data-4.json │ └── data-1.json ├── readme.md ├── offline-page.html ├── article.html ├── index.html ├── sw.js ├── css │ └── site.css └── js │ ├── article.js │ └── main.js ├── chapter-8 ├── images │ ├── homescreen.png │ ├── homescreen-144.png │ └── newspaper.svg ├── readme.md ├── manifest.json ├── data │ ├── data-2.json │ ├── latest.json │ ├── data-3.json │ ├── data-4.json │ └── data-1.json ├── offline-page.html ├── article.html ├── index.html ├── css │ └── site.css ├── js │ ├── article.js │ └── main.js └── sw.js ├── chapter-9 ├── public │ ├── images │ │ ├── homescreen.png │ │ ├── homescreen-144.png │ │ └── newspaper.svg │ ├── manifest.json │ ├── data │ │ ├── data-2.json │ │ ├── latest.json │ │ ├── data-3.json │ │ ├── data-4.json │ │ └── data-1.json │ ├── js │ │ ├── article.js │ │ ├── contact.js │ │ ├── main.js │ │ └── idb-keyval.js │ ├── css │ │ └── site.css │ └── sw.js ├── package.json ├── readme.md ├── server.js ├── offline-page.html ├── article.html ├── index.html ├── contact.html └── yarn.lock ├── chapter-4 ├── WebP-Images │ ├── images │ │ ├── brooklyn.jpg │ │ └── brooklyn.webp │ ├── index.html │ └── service-worker.js ├── save-data │ ├── data │ │ ├── data-2.json │ │ ├── latest.json │ │ ├── data-3.json │ │ ├── data-4.json │ │ └── data-1.json │ ├── article.html │ ├── index.html │ ├── images │ │ └── newspaper.svg │ ├── css │ │ └── site.css │ ├── js │ │ ├── article.js │ │ └── main.js │ └── sw.js └── readme.md ├── chapter-5 ├── look-and-feel │ ├── images │ │ ├── homescreen.png │ │ ├── homescreen-144.png │ │ └── newspaper.svg │ ├── manifest.json │ ├── data │ │ ├── data-2.json │ │ ├── latest.json │ │ ├── data-3.json │ │ ├── data-4.json │ │ └── data-1.json │ ├── css │ │ └── site.css │ ├── article.html │ ├── js │ │ ├── article.js │ │ └── main.js │ ├── sw.js │ └── index.html └── readme.md ├── chapter-10 ├── streaming-render │ ├── images │ │ ├── homescreen.png │ │ ├── homescreen-144.png │ │ └── newspaper.svg │ ├── footer.html │ ├── manifest.json │ ├── data │ │ ├── data-2.html │ │ ├── data-index.html │ │ ├── data-3.html │ │ └── data-4.html │ ├── js │ │ └── main.js │ ├── header.html │ ├── offline-page.html │ ├── article.html │ ├── css │ │ └── site.css │ ├── index.html │ └── sw.js ├── with-and-without-streaming │ ├── with.html │ ├── without.html │ └── sw.js └── readme.md ├── chapter-6 ├── push-notifications │ ├── public │ │ ├── images │ │ │ ├── homescreen.png │ │ │ ├── homescreen-144.png │ │ │ └── newspaper.svg │ │ ├── data │ │ │ ├── data-2.json │ │ │ ├── latest.json │ │ │ ├── data-3.json │ │ │ ├── data-4.json │ │ │ └── data-1.json │ │ ├── manifest.json │ │ ├── css │ │ │ └── site.css │ │ ├── js │ │ │ ├── article.js │ │ │ └── main.js │ │ └── sw.js │ ├── readme.md │ ├── package.json │ ├── manifest.json │ ├── .vscode │ │ └── launch.json │ ├── server.js │ ├── index.html │ ├── article.html │ └── yarn.lock └── readme.md └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /chapter-3/nocache/js/script.js: -------------------------------------------------------------------------------- 1 | if (window.console) { 2 | console.log('This script is not cached'); 3 | } 4 | -------------------------------------------------------------------------------- /chapter-3/cachefirst/js/script.js: -------------------------------------------------------------------------------- 1 | if (window.console) { 2 | console.log('Hello Service Worker caching!'); 3 | } 4 | -------------------------------------------------------------------------------- /chapter-3/precache/js/script.js: -------------------------------------------------------------------------------- 1 | if (window.console) { 2 | console.log('Hello Service Worker caching!'); 3 | } 4 | -------------------------------------------------------------------------------- /chapter-7/images/homescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-7/images/homescreen.png -------------------------------------------------------------------------------- /chapter-8/images/homescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-8/images/homescreen.png -------------------------------------------------------------------------------- /chapter-3/nocache/images/hello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-3/nocache/images/hello.png -------------------------------------------------------------------------------- /chapter-3/precache/images/hello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-3/precache/images/hello.png -------------------------------------------------------------------------------- /chapter-7/images/homescreen-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-7/images/homescreen-144.png -------------------------------------------------------------------------------- /chapter-8/images/homescreen-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-8/images/homescreen-144.png -------------------------------------------------------------------------------- /chapter-9/public/images/homescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-9/public/images/homescreen.png -------------------------------------------------------------------------------- /chapter-4/WebP-Images/images/brooklyn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-4/WebP-Images/images/brooklyn.jpg -------------------------------------------------------------------------------- /chapter-4/WebP-Images/images/brooklyn.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-4/WebP-Images/images/brooklyn.webp -------------------------------------------------------------------------------- /chapter-9/public/images/homescreen-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-9/public/images/homescreen-144.png -------------------------------------------------------------------------------- /chapter-5/look-and-feel/images/homescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-5/look-and-feel/images/homescreen.png -------------------------------------------------------------------------------- /chapter-10/streaming-render/images/homescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-10/streaming-render/images/homescreen.png -------------------------------------------------------------------------------- /chapter-5/look-and-feel/images/homescreen-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-5/look-and-feel/images/homescreen-144.png -------------------------------------------------------------------------------- /chapter-10/streaming-render/images/homescreen-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-10/streaming-render/images/homescreen-144.png -------------------------------------------------------------------------------- /chapter-6/push-notifications/public/images/homescreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-6/push-notifications/public/images/homescreen.png -------------------------------------------------------------------------------- /chapter-6/push-notifications/public/images/homescreen-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deanhume/progressive-web-apps-book/HEAD/chapter-6/push-notifications/public/images/homescreen-144.png -------------------------------------------------------------------------------- /chapter-3/nocache/no-cache.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/chapter-10/streaming-render/footer.html:
--------------------------------------------------------------------------------
1 |