From 183326aee60ea4c85b16f64e0ce4c3970f10991f Mon Sep 17 00:00:00 2001 From: Alexey Rodionov Date: Fri, 25 Nov 2016 11:46:37 +0300 Subject: [PATCH 1/2] Make the web app progressive Learn more about Progressive Web Apps (PWA) at https://goo.gl/wJPiaj --- index.html | 3 ++ logo-192x192.png | Bin 0 -> 11135 bytes logo-512x512.png | Bin 0 -> 36716 bytes logo.svg | 1 + manifest.json | 25 +++++++++++++++ package.json | 8 +++-- service-worker-registration.js | 57 +++++++++++++++++++++++++++++++++ sw-precache-config.js | 12 +++++++ 8 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 logo-192x192.png create mode 100644 logo-512x512.png create mode 100644 logo.svg create mode 100644 manifest.json create mode 100644 service-worker-registration.js create mode 100644 sw-precache-config.js diff --git a/index.html b/index.html index 542a09a9..41f95316 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,12 @@ + + + Thing Translator diff --git a/logo-192x192.png b/logo-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..1d45870c036db3628d74c33cec77d43cbdfde3d4 GIT binary patch literal 11135 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%0DkmQ9(z*4qi%)7 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 literal 0 HcmV?d00001 diff --git a/logo.svg b/logo.svg new file mode 100644 index 00000000..4e3a9099 --- /dev/null +++ b/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..a02bb922 --- /dev/null +++ b/manifest.json @@ -0,0 +1,25 @@ +{ + "name": "Thing Translator", + "short_name": "Thing Translator", + "start_url": "./?utm_source=homescreen", + "scope": "/", + "display": "standalone", + "theme_color": "#212121", + "background_color": "#212121", + "icons": [ + { + "src": "logo-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "logo-512x512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "logo.svg", + "type": "image/svg+xml" + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index 366512a3..daaf72ff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "thing-translator", - "version": "0.0.1", + "version": "0.0.2", "description": "Thing Translator is an AI Experiment that lets you point your camera at things to hear how to say them in a different language.", "private": true, "main": "src/app.js", @@ -11,9 +11,10 @@ }, "scripts": { "bundle": "NODE_ENV=production browserify -e src/app.js -g babelify -g envify -g unassertify -g uglifyify | uglifyjs > app.js", - "dev": "parallelshell 'npm run watch' 'npm run watch-style'", + "dev": "parallelshell 'npm run watch' 'npm run watch-style' 'npm run gen-sw-precache'", "watch": "budo src/app.js --live -- -t babelify", - "watch-style": "stylus -c -u nib -w style/main.styl -o app.css" + "watch-style": "stylus -c -u nib -w style/main.styl -o app.css", + "gen-sw-precache": "sw-precache --config=sw-precache-config.js" }, "license": "MIT", "dependencies": { @@ -29,6 +30,7 @@ "nib": "^1.1.2", "parallelshell": "^2.0.0", "stylus": "^0.54.5", + "sw-precache": "^4.2.2", "uglify-js": "^2.7.4", "uglifyify": "^3.0.4", "unassertify": "^2.0.3" diff --git a/service-worker-registration.js b/service-worker-registration.js new file mode 100644 index 00000000..6bb4599e --- /dev/null +++ b/service-worker-registration.js @@ -0,0 +1,57 @@ +/** + * Copyright 2015 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-env browser */ +'use strict'; + +if ('serviceWorker' in navigator) { + // Your service-worker.js *must* be located at the top-level directory relative to your site. + // It won't be able to control pages unless it's located at the same level or higher than them. + // *Don't* register service worker file in, e.g., a scripts/ sub-directory! + // See https://github.com/slightlyoff/ServiceWorker/issues/468 + navigator.serviceWorker.register('service-worker.js').then(function(reg) { + // updatefound is fired if service-worker.js changes. + reg.onupdatefound = function() { + // The updatefound event implies that reg.installing is set; see + // https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#service-worker-container-updatefound-event + var installingWorker = reg.installing; + + installingWorker.onstatechange = function() { + switch (installingWorker.state) { + case 'installed': + if (navigator.serviceWorker.controller) { + // At this point, the old content will have been purged and the fresh content will + // have been added to the cache. + // It's the perfect time to display a "New content is available; please refresh." + // message in the page's interface. + console.log('New or updated content is available.'); + } else { + // At this point, everything has been precached. + // It's the perfect time to display a "Content is cached for offline use." message. + console.log('Content is now available offline!'); + } + break; + + case 'redundant': + console.error('The installing service worker became redundant.'); + break; + } + }; + }; + }).catch(function(e) { + console.error('Error during service worker registration:', e); + }); +} diff --git a/sw-precache-config.js b/sw-precache-config.js new file mode 100644 index 00000000..e0fe6a02 --- /dev/null +++ b/sw-precache-config.js @@ -0,0 +1,12 @@ +module.exports = { + staticFileGlobs: [ + 'index.html', + 'app.js', + 'app.css', + 'service-worker-registration.js', + 'manifest.json', + 'logo-192x192.png', + 'logo-512x512.png', + 'logo.svg' + ] +}; \ No newline at end of file From 48e635e806520815d0344d7a8bc8a0f7004b7f9f Mon Sep 17 00:00:00 2001 From: Alexey Rodionov Date: Sun, 27 Nov 2016 10:37:11 +0300 Subject: [PATCH 2/2] Change background color --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index a02bb922..522ffda1 100644 --- a/manifest.json +++ b/manifest.json @@ -5,7 +5,7 @@ "scope": "/", "display": "standalone", "theme_color": "#212121", - "background_color": "#212121", + "background_color": "#fff", "icons": [ { "src": "logo-192x192.png", @@ -22,4 +22,4 @@ "type": "image/svg+xml" } ] -} \ No newline at end of file +}