Progressive Web Apps: Are They Enterprise-Ready?
Progressive Web Apps: Are They Enterprise-Ready?
Progressive Web Apps (PWAs) have become a powerful tool for web and mobile developers. But are they ready for the big stage?
Join the DZone community and get the full member experience.Join For Free
Learn how to add document editing and viewing to your web app on .Net (C#), Node.JS, Java, PHP, Ruby, etc.
Users can easily find web applications on the internet, with every user guaranteed access to the latest version, but web apps still fail to meet the user experience expectations set by native apps. Features such as push notifications and offline availability keep mobile users leaning towards native apps — but there is a new option that may shift this preference.
Progressive Web Applications (PWAs) bring the mobile web experience closer to a native experience. Google introduced the term PWA to describe web applications that provide an enhanced web experience with the use of service workers for offline capabilities and app availability on low-quality networks. There are several benefits of PWAs:
Offline capabilities provide a lot of control over the data that’s cached by using a service worker.
PWAs are safe because they’re only served via HTTPS to prevent snooping and to ensure content hasn't been tampered with.
The PWA manifest makes them discoverable, so search engines can easily find them.
PWAs use features like push notifications, and even allow users to install them on their home screen, to avoid searching in app stores.
All of these features have been implemented in popular browsers including Chrome, Firefox, and Edge, though Safari is lagging behind in this respect. But the big question remains, do all of the above features make PWAs enterprise-ready? Enterprises need to think about security, access control, compliance with privacy rules, along with containment and isolation of business data from personal data when the data is available for offline use. Also, enterprises need to deal with the management and provisioning aspects of deployment. Let’s looks at PWA features in depth and their readiness for the enterprise.
PWA Features and Enterprise Readiness
Progressive Development and Responsive Design
Developers have been using progressive development methodologies for years. It enables them to provide the best experience on fully-capable browsers and an acceptable experience on less-capable browsers. By using libraries like Modernizr that help detect browser features, developers can drive specific application behaviors, even for enterprise applications. And to ensure that the UI fits for different form factors, developers can use media queries, layouts, viewport, and other responsive design building blocks. There is really no new technology required specifically for PWAs.
Network Independence and Freshness
Enterprises have been using HTML5 Application Cache and Web Storage technologies to improve the user experience on low network or no network connections. However, there are obvious issues with this approach that often lead to unrecoverable errors. The introduction of a new offline cache and Service Worker allow applications to locally store app assets and even the data for future use. In addition, the Application Shell Architecture helps segregate UI content from data and enables applications to load instantly, regardless of the network availability.
While web applications are known for their freshness (users can always access the latest version), past approaches of manifest caching are not sufficient to ensure that the new assets are always available to the browser. The Service Worker update process solves this issue as well.
Discoverability and Engagement
One of the best advantages of web apps is that users can discover them via search engines. The W3C manifest provides a great way to optimize discoverability by allowing applications to be exposed, categorized, and ranked efficiently for search engines. In the mobile world, push notifications have proven themselves to be the best way to increase user engagement. And now, new Web Push technology enables modern web applications to re-engage users with updates and new content, even if they aren’t looking at an application.
Installability and Native App-Like Experience
Web applications are typically accessed via an URL. Though the process is straightforward, revisiting URLs has been a significant issue for end users because they have to remember the URL (and re-type) or they have to pull the URL from the browser history or bookmark the URLs for future use.
With PWAs, the manifest allows users to add the application to the Home screen, which makes it super easy to re-launch an app, and the app opens in a native shell that doesn’t contain the URL bar. The manifest allows browsers to recognize web applications as installable apps and provide an experience similar to that of native apps.
Enterprise Security and Data Integrity
Although PWAs require the use of HTTPS for authentication, data integrity, and secrecy, there are some important choices that enterprise developers must make when building a PWA:
Additional security can be enforced by implementing Content Security Policies to identify legitimate sources of assets (images, etc.), and protect PWAs from attacks.
To remotely manage data sitting on a user's device, the cache can be named and a remote wipe method (invoked by the service worker) can be created.
A background synchronization can be implemented as a one-off or a periodic sync to ensure data integrity.
PWAs are promising and ensure that users get the best experience with web apps on mobile devices. We believe that the time is right for enterprises to start offering PWA support in their applications by addressing some of the identified gaps.
Opinions expressed by DZone contributors are their own.