Difference between revisions of "Progressive Web App"
(→Solution) |
|||
Line 33: | Line 33: | ||
And how is all this possible? | And how is all this possible? | ||
Thanks to an event oriented script called Service Workers, which is executed by the browsers that support it. Even with a site running offline, you will be receiving push notifications, geolocation, background updates, interceptions and images cache, JavaScript, CSS files, XHR, etc. This script works like a set of functionalities. | Thanks to an event oriented script called Service Workers, which is executed by the browsers that support it. Even with a site running offline, you will be receiving push notifications, geolocation, background updates, interceptions and images cache, JavaScript, CSS files, XHR, etc. This script works like a set of functionalities. | ||
− | + | ===Some Down Sides to PWA=== | |
− | The Service Worker does not have access to DOM, it runs on a different scope from the page, it is promise based, and it must run with HTTPS protocol | + | * The Service Worker does not have access to DOM, it runs on a different scope from the page, it is promise based, and it must run with HTTPS protocol. |
− | + | What Progressive Web Apps is not? | |
− | + | Any technology that needs to package executable files, whether it is a .apk, .exe, or any other that needs to be downloaded from the App Store and installed on the user’s device. | |
==References== | ==References== |
Revision as of 16:37, 18 May 2019
Contents
Full Title or Meme
A Progressive Web Application (PWA) runs in a browser on the user's device with the look and feel of a Native App.
Context
- Folks all around the world are increasing dependent on their mobile phone for a wide range of functionality.
- While all the newest Smart Phones come with multiple gigabytes of memory, most of the world still depends on less expensive phones. These phones cannot load large Native Apps nor can they store very many apps.
- Out of scope is any technology that needs to package executable files, whether it is a .apk, .exe, or any other that needs to be downloaded as a Native App and installed on the user’s device.
Problems
- Most of us have some experience with accessing Web Apps, and during this access you may have noticed that most of the time they were slow and heavy, making the experience frustrating and disheartening.
The good news is that many developers have been working hard to build their web apps as fluid as those from the App Store.
The main point here is that any app from the store needs to be native or hybrid, which means, you must install it on your device and accept terms and conditions before you even try it. Let’s face it, it can be very frustrating, after all, having to install and uninstall several apps, or even install it for just one time usage is not something very practical. We must also consider that mobile Internet can be expensive and somehow limited, so if you need to download a 30 MB app, it will take a while and you risk running out of available connection.
Solution
One solution to these problems is the Progressive Web App ( PWA ). It is all about an app that uses resources from a modern Web Browser to present a similar experience the user would have with native/hybrid apps, but are built using HTML, CSS and JavaScript rather than with the native code for the platform from Apple, Android or Microsoft. (Note that TypeScript may also be used for a Web App, but that just compiles into JavaScript.)
The Progressive Web App is a Web App that has an Web App Manifest and typically addresses these 10 key concepts, based on Google’s Patterns.
- Safe – It must use the HTTPS protocol to protect the privacy and integrity of the exchanged data.
- Progressive – It must work for all the users, regardless of which browser is used, because the app should be built using progressive enhancement patterns.
- Responsible – It must fit on any screen size: desktop, mobile phones, tablets, etc.
- Internet-free – With Service Worker (background task) technology it is possible to access the application on bad quality connections or even offline.
- App-like – User should have the same experience as any other native/hybrid application; this is because of the app shell model.
- Always up to date – User should not download any updates. Since it is a web site, all the updates must happen in the background.
- Detectable – It must be identified as “application”. Thanks to W3C manifest and a proper Service Worker registry it is possible to allow the search engines to find them.
- Re-engageble – It should increase the engagement by push notification to bring the user back.
- Installable – It must allow the user to create a shortcut on his initial desktop with a personalized icon, without any resources from the store.
- Shareable – It must be easy to be shared with only its URL to anybody and it must keep being easy to install.
Following those patterns, you will ensure that your application works very well, not only when accessed by a browser, but also by a shortcut icon.
PWA does not need any installation, you just need to access the web site and create a shortcut. You do not have to concern yourself about the development and management like it is done for iOS, Android and Windows, but you must pay attention to browser support. Currently, iOS does not support everything; in that case, you must find another solution, like the appCache missing, which should be used for offline access. You may verify the iOS ‘s full support for Service Workers here.
And how is all this possible? Thanks to an event oriented script called Service Workers, which is executed by the browsers that support it. Even with a site running offline, you will be receiving push notifications, geolocation, background updates, interceptions and images cache, JavaScript, CSS files, XHR, etc. This script works like a set of functionalities.
Some Down Sides to PWA
- The Service Worker does not have access to DOM, it runs on a different scope from the page, it is promise based, and it must run with HTTPS protocol.
What Progressive Web Apps is not? Any technology that needs to package executable files, whether it is a .apk, .exe, or any other that needs to be downloaded from the App Store and installed on the user’s device.
References
Other References
- Progressive Web Apps on Act Minds