Slide from “Progressive WebVR Apps by Samsung”
Think about it. Most native apps don’t need all the native features of an app, such as bio-metrics, access Bluetooth and etc., so why not write an app once and be able to use it on any device? ← introducing Progressive web apps
PWAs are basically normal web apps with a manifest file and a service worker telling the browser how to cache files, what icons to use, splash screen to use, app’s name on the home screen and etc.. A service worker can also add offline support for your web app!
Why would e.g. a news app need anything other than your location or push notifications? Guess what, your web browser can ask for permission to use both of them. Although push notifications require a secure connection (https) and a service worker, it’s so much more convenient to write a single app for all platforms than having to rewrite and maintain code for all the different platforms. Many companies such as Twitter, NASA and Starbucks are already using PWAs and they look great:
what web can do today, running on chrome 63, Feb 2018
Google has been actively pushing the concept of PWAs and they recently started to get a lot of attention from Apple, Samsung, Firefox and even Microsoft. Android now fully supports all PWA features and has been the first platform to do so.
Safari already experiments with service worker support which will probably lead to PWA support later this year. Although you can’t “add to homescreen” on an iOS, you can still use push notifications.
Microsoft has already announced that Edge will support PWAs out of the book very soon. In fact, the most recent insiders version already supports it. However, only about 2% of users use Edge so we will need to rely on Chrome and Firefox implementing this feature. Fortunately, Chrome canary already contains a flag in chrome://flags that allows you to do this:
If you even produced a native app, you know that the deployment process is painful and time consuming:
compile (production version) → create private key → sign the app → publish
With a progressive web app, all you need to do is:
build the web app (npm run build)→ upload to server
No, not happening. Some types of apps will always require more features or great performance so a PWA simply wouldn’t be a suitable option.
If you’re a developer and you’re planning on building a native app in 2018/2019, consider building a PWA instead of separate apps for each platform. You won’t have to maintain each version, the development version can be reduced by about 3 times and you don’t need to learn all languages. You’ll love it. I will also have a few more tutorials on building a fully featured PWA with push notifications, offline support and caching with both angular and react, so if you’d like to see this, follow me so you don’t miss a story.