Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

The Rise of Progressive Web Apps and the Impact on Cross-Browser Testing

DZone's Guide to

The Rise of Progressive Web Apps and the Impact on Cross-Browser Testing

PWAs, or Progressive Web Apps, are the new big thing in mobile development. See how they're capturing the market and what that means for cross-browser testing.

· Mobile Zone ·
Free Resource

If we all thought we've figured out the digital market from an application type perspective, and have seen the rise of mobile, and the transformation of web to responsive web - now we should all start getting used to a whole new type of application that should change the entire user experience and offer new web functionality - Meet PWA's.

Google.com is a very clear example of such app, and Apple is about to introduce PWA capabilities in its upcoming WebKit engine.

What Are Progressive Web Apps?

To refer to Google official website dedicated to PWA, Google defines PWA as "a new way to deliver amazing user experiences on the web."

David Rubinstein from SD Times actually adds even more insights into these new app types:

PWAs can use device features like cameras, data storage, GPS and motion sensors, face detection, Push notifications, and more. This will pave the way for AR and VR experiences, right on the web. Imagine being able to redecorate your home virtually using nothing but your phone and a PWA. Pan your camera around a room, then use tools on a website to change wall colors, try out furniture, hang new artwork, and more. It may feel like a futuristic fantasy, but it's close to reality. The key behind PWA apps is to provide a rich end-user alternative to native apps. These apps can be launched from the device home screen adding layers of performance, reliability, and functionality to a web application without the need to install anything from the app store. In addition, these apps that are still JavaScript based, but with additional specific API's can work even when there's no internet connection and that's a huge advantage.

PWA apps leverage two main architectural features:

  • Service Workers - give developers the ability to manually manage the caching of assets and control the experience when there is no network connectivity.
  • Web App Manifest - That's the file within the PWA that describe the app, provide metadata specific to the app like icons, splash screens, and more. See below an example Google offers for such a descriptor file (JSON).

In order to check the correctness of your PWA checklist and the entire app, Google offers some tools as part of their documentation like this Progressive Web Apps checklist, and their chrome built-in DevTools (see below visual):

As deeply covered in this great DZone article, good PWAs also implement the PRPL pattern recommended by Google to enhance performance.

What Are the Implications of PWAs for Cross-Browser Sites and Mobile Apps?

To understand the implications, I recommend dividing the question into the impacted personas. Each of the following personas will have different benefits and implications when adopting this kind of app:

Developers

For existing web developers, this new app type should present a whole new world of innovative opportunities. Since PWAs are still JavaScript-based apps, developers do not need to gain new skills, but rather learn the new APIs offered through the Service Workers and see how they can be leveraged by their websites. Since PWAs run on a mobile device and can be launched without a network connection and without any installation, obviously they need to be validated by developers through unit and integration tests.

Going forward, the market envisions these apps impacting native app architecture in a way that there will only be one type of app that can seamlessly run on both browsers and mobile devices with one single implementation - that will require a heavier lift and re-work.

Testers

For testers, as in every new implementation, new tests (manual and automated) need to be developed, executed, and fit into the overall pipeline.

PWAs, in particular, introduce some unique use cases, such as

  • No network operation
  • High performance
  • Sensors based functionality (Location, Camera for AR/VR, and more)
  • Cross-device functionality (like in Responsive, the experience should be the same regardless of the screen size/HW, etc.)
  • Adhering to the design and checklist required by Google, and soon, Apple
  • Accessibility is always a need
  • Security of these apps (with and without being connected to the network)

Business

For businesses, this new app type will help increase the end-user engagement with the business. When having a web application that is richer in functionality, performs fast, and can be "always on" through an easy launch from the customers' device home screen, this by definition should increase usage and move the needle toward the business. My assumption is that large enterprises are already looking into these type of apps as the next-gen RWD apps.

End Users

At the end of the day, all products are aiming to get greater engagement with the customers and beat the competition. Obviously, if the end users understand the value in these apps, and can "feel" it in their day-to-day activities, this will be a clear win-win situation for both the organization and the customer.

To assure an end-user experience as Google envisioned when first launching this technology three years ago (2015), dev and test teams should continue their continuous testing activities, and make sure they are covering a sufficient platform, features, and use cases between each release and each new release of a platform or device.

To conclude this blog, I highly recommend watching the short video and read the blog from Mozilla on how PWAs live within Firefox and the different experience users get from such apps (see the below Firefox Wego app within the Firefox browser in the background and a PWA Wego app in the foreground).

Happy PWA testing!

Topics:
mobile ,mobile app development ,pwa ,mobile testing ,cross browser testing

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}