A progressive web application takes advantage of the latest technologies to combine the best of web and mobile apps. Think of it as a website built using web technologies but that acts and feels like an app. Recent advancements in the browser and in the availability of service workers and in the Cache and Push APIs have enabled web developers to allow users to install web apps on their home screen, receive push notifications and even work offline.
Progressive Web Apps provide an installable, app-like experience on a laptop, desktop, tablets and mobile phones that are built and delivered directly via the Internet. They're web apps that are ultra fast, safe and reliable. And most importantly, they're web apps that work in any browser. If you're building a web app today, you're already on the path towards building a Progressive Web App.
Let’s say you have a photo-sharing social networking app. For the App Store, you could choose either Photo & Video or Social Networking as your primary category. To decide which category will best serve your app, consider the following
Your primary category should be the one that best describes the main function or subject matter of your app.
Understanding your audience will help you identify the category in which they will likely look for your app. Will they consider your app to be more of a social network app or a photography app?
Research how similar apps are categorized — users may have already visited these categories to find this type of app.
Make sure that the category you choose accurately reflects your app’s core experience. Choosing categories that are not appropriate for your app is against the BitApps Guidelines.
When launched from the user’s home screen, service workers enable a Progressive Web App to load instantly, regardless of the network state. A service worker, written in JavaScript, is like a client-side proxy and puts you in control of the cache and how to respond to resource requests. By pre-caching key resources you can eliminate the dependence on the network, ensuring an instant and reliable experience for your users.
53% of users will abandon a site if it takes longer than 3 seconds to load! And once loaded, users expect them to be fast—no janky scrolling or slow-to-respond interfaces. One of the great things mobile apps can do for the end user is giving them the ability to access the information they want without having to be connected to the Internet.
What used to be a prerogative of apps is now coming to the web as well.
PWA are installable and live on the user's home screen, without the need for an app store. They offer an immersive full screen experience with help from a web app manifest file and can even re-engage users with web push notifications. The Web App Manifest allows you to control how your app appears and how it's launched. You can specify home screen icons, the page to load when the app is launched, screen orientation.
Progressive web apps take advantage of the much larger web ecosystem, plugins and community, and the relative ease of deploying and maintaining a website, as compared to a native application in the respective app stores. For those of you who develop on both mobile and web, you’ll appreciate that a website can be built in less time, that an API does not need to be maintained with backwards-compatibility (all users will run the same version of your website’s code, unlike the version fragmentation of native apps) and that the app will generally be easier to deploy and maintain.
By definition, a progressive web app must work on any device and enhance progressively, taking advantage of any features available on the user’s device and browser.
PWA is a website, it should be discoverable in search engines. This is a major advantage over native applications, which still lag behind websites in searchability.
Mobile app users are more likely to reuse their apps, and progressive web apps are intended to achieve the same goals through features such as push notifications.
A progressive web app’s UI must fit the device’s form factor and screen size.
PWA looks like a native app and is built with minimal page refreshes.
It should work in areas of low connectivity or offline (our favorite characteristic).
As another characteristic inherited from websites, a well-designed website should use the URI to indicate the current state of the application. This will enable the web app to retain or reload its state when the user bookmarks or shares the app’s URL.
When new content is published and the user is connected to the Internet, that content should be made available on the app. A progressive web app can be installed on the device’s home screen, making it readily available.
Because a progressive web app has a more intimate user experience and because all network requests can be intercepted through service workers, it is imperative that the app is hosted over HTTPS to prevent man-in-the-middle attacks.