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

Progressive Web Apps: A Threat or a New Opportunity?

DZone's Guide to

Progressive Web Apps: A Threat or a New Opportunity?

Are you on the fence about progressive web apps? Unsure if you should even consider building one? Let's look at whether or not it will be worth your time and money.

· Mobile Zone
Free Resource

Download this comprehensive Mobile Testing Reference Guide to help prioritize which mobile devices and OSs to test against, brought to you in partnership with Sauce Labs.

Progressive web apps are web apps that use the latest web standards to deliver a native-like user experience. They combine what we love most about the web and what we love about native apps. No installation is required, loading time is quite short and the app is accessible from an icon on the home screen.

What's So Good About Progressive Web Apps?

Progressive web apps combine a native user experience with the advantages of the web apps:

  • Discoverability: In fact, progressive web apps are the websites themselves, thus they are indexed by search engines.
  • Easy updating: New content and updates of your progressive web app will be downloaded instantly when you launch it.
  • Security: Since every network request will be processed by service workers, progressive web apps should be hosted over HTTPS to prevent security issues.
  • Offline work: Unlike ordinary internet links, you will be able to launch a progressive web app from your smartphone even without internet connection.
  • User experience: Progressive web apps offer a native-like experience and performance with minimal page refreshes. In addition, just like native apps, they can be added to the home screen.
  • Responsive design: A progressive web app will run smoothly on a smartphone, tablet and desktop as well.
  • Linkable: Progressive web apps can be shared like any other link to a website.

Let’s dive a bit further into the details of Progressive Web Apps.

Preconditions for the Emergence of Progressive Web Apps

The mobile app boom, which began with the emergence of iPhone and Android, is currently subsiding. An average user has formed a certain set of apps for their day-to-day use: WhatsApp, Facebook Messenger, Snapchat, Instagram, Spotify, and a mobile browser which serves as a sort of “one size fits all” solution from checking email to reading the news. The rest is just not necessary.

People don’t want to install any more apps, they are satisfied with what they already have.

A couple dozen of the most popular and well-established apps absolutely dominate the mobile app space. They have a very tight squeeze of the app market. They collect the majority of the revenue and don’t easily give way to others why are also trying to “get a piece of the pie”.

As this chart from Statista shows, in 2016 half of the smartphone users in the United States didn’t install any new apps, 13% installed only one app per month:

monthly-app-downloads-of-us-smartphone-users-2016-statistic

App loyalty is also suffering. The average retention rate for mobile applications is only 25% after 90 days, which means that 75% of the people who download an app end up deleting it. What does this mean? Is the era of mobile apps over?

Are there other ways to engage customers without the hassle and expense of developing a native application and submitting it to the app store that is already filled to the brim with more than 2 million apps? Are there any technological alternatives to mobile apps that won’t annoy people with downloading and installation? Let’s find out.

The Era of Mobile Applications

The launch of the iPhone in 2007 created a frenzy not only in the consumer sector but also in the manufacturing sector (Nokia lost its market share while Samsung gained a big slice of it). Apple had changed the paradigm of interaction between the user and their smartphone.

A small device became not just a means of communication with the outside world, but also something very personal. Today’s smartphone owners largely identify themselves with their devices. It’s hard to imagine a modern man without a smartphone. Technological innovations have significantly improved our lives: now it is much easier to get a sense of direction and orient oneself to the surrounding terrain thanks to Google Maps, keep in touch with loved ones via WhatsApp, find entertainment with funny YouTube videos, etc.

The advent of smartphones temporarily halted the rapid development of web technologies. The era of mobile apps and their marketplaces began, thus starting a full-scale war for customers between device manufacturers. Some of them have fallen (Goodbye Nokia), some emerged as victors (Long live Samsung). But platform vendors, in this case, Apple and Google, have benefited the most. Web applications could not compete with mobile apps which provided better usability, more features, and the best overall mobile experience.

At the beginning everyone was happy. Mobile data traffic was growing rapidly and technology experts proudly declared the imminent demise of the Web. Due to competition and a wide range of mobile devices, prices decreased significantly and even in developing countries most people could afford their own handsets.

For example, in Indonesia, with a population of 260 million people, it is projected that by 2018 there will be more than 100 million smartphone users. Already, most Internet users (80 million) in this country access the Internet via mobile devices.

Everything seemed to be going fine, but building mobile apps became harder and harder each time because of:

  1. Mobile device fragmentation. In the sphere of Android devices, there’s complete chaos. Manufacturers offer a whole range of devices, from small to large and from cheap to flagship, stuffed with advanced hardware and software. Until recently Apple had a strict policy in relation to its devices: fragmentation was much lower and iOS itself was closed. Developing for iOS was less painful than for Android. But the market dictates the rules, and to get the maximum profit it’s necessary to be flexible. Now Apple releases devices for almost all sectors of the population.
  2. Multiple operating systems. In today’s world Android holds a leading position among the mobile operating systems, followed by iOS, Windows Mobile, and others. From a business perspective, a product must be present on at least two of the above-mentioned platforms. This, in turn, carries certain costs for the development and support of both platforms.
  3. The relevance of information. Never before have we been confronted with so much information as in these days. Information is meaningless if it is not relevant. Competition is growing with every new day and it is essential to deliver a new product into the market and into the customers’ hands as soon, and as early as possible. From the viewpoint of a producer, the internet is nothing more than a cheap and effective means of delivering products and services to the end user. In this context, mobile apps are not the best means for disseminating information because of:
    • application development and maintenance takes a lot of time
    • deployment delays due to marketplace approvals
    • device fragmentation increases the occurrence of errors and non-standard behaviors on various devices
    • customers are reluctant to update applications

Cross-platform Alternative

If there wasn’t need for multiple platform support, such tools as ElectronReact Native, or Angular Mobile Toolkit wouldn’t have gained recognition and become widespread. It is not difficult for a good front-end developer to write a cross-platform mobile application that would run on all major platforms (Windows, Mac, Linux, Android, iOS) like a native app.

However, cross-platform apps could not compete with native apps due to their slow performance and limited access to the phone’s native APIs. In addition, they do not solve the problem of the oversaturated mobile apps market since they also have to be downloaded and installed just like their native companions.

The Wind of Change: Going for Progressive Standards

Time does not stand still. Web technologies become more and more mature offering innumerable capabilities for developing complex web applications which are in no way inferior to mobile apps.

For example, a modern web application like Google Docs by no aspects concedes to its desktop counterpart Microsoft Word, and this is just the beginning. Web app development is starting to push desktop applications into the abyss and it seems that in the near future we will only need a browser.

In 2015 Google introduced a new model for building web applications called Progressive Web Apps. It combines the best of web and mobile applications and takes advantage of the latest browser capabilities.

A progressive web app can be described as a hybrid between a web page and a mobile application. Actually the term “Progressive Web Apps” is just a buzzword. At its core they aren’t any different from ordinary web applications, they are made of HTML, CSS and Javascript and “live” in the browser but offer more capabilities and more access to the underlying operating system and hardware (more access to the phone’s native APIs).

Just like a native app, a PWA can be added to the home screen with a custom icon. A native app may be incompatible with some devices, because the OS, hardware or firmware may not be supported, which is not the case for PWAs.

The reason why they are called ‘progressive’ is because they will work regardless of the technical environment and will only be implemented if it’s available on the device without damaging or sacrificing the content. There’s nothing new about it, progressive enhancement has already been implemented in web apps for years now.

But they shouldn’t be confused with the aforementioned cross-platform mobile applications made with such tools like Cordova, React Native or Electron. All these technologies wrap the source code (HTML, CSS, and Javascript) into executable files (.apk, .exe) which then have to be downloaded and installed.

The main idea behind PWAs and what makes them really stand out from all the aforementioned technologies is that PWAs don’t require installation. To be able to use a PWA all you need to do is to visit its webpage and save it to the home screen. That’s it. All the source code and resources will be cached locally (saved in local storage) allowing the PWA to work offline.

Service Workers

The main workhorse that powers a PWA and allows it to function even if there’s no internet connection is a new technology called Service Workers. Once cached, a PWA will always load from the local storage. If there’s new content available or any new versions of the app, the service worker will automatically update it behind the scenes next time you connect to the Internet.

Another cool thing worth mentioning is that PWAs can send push notifications, a privilege which only native apps could use until recently.

Here’s just a small subset of the capabilities already available in PWAs (besides those mentioned above):

  • access to hardware features such as webcam, microphone, Bluetooth, battery status, accelerometer, gyroscope, compass and a whole bunch of sensors (ambient light sensor, proximity sensor, etc)
  • search engine indexing
  • full-screen mode
  • access to the file system
  • ability to add an icon to the home screen
  • clipboard access
  • hardware-accelerated 3D graphics using WebGL
  • PWAs can be easily shared via URL

Safari is a little behind in implementing progressive web apps, namely their core feature – Service Workers, but it’s only a matter of time before it will catch up with other browsers. All of the other new web APIs listed above, including push notifications, are available.

To learn more about PWAs and their capabilities visit the Google Developers website.

What This Means for Tomorrow's Startups

Again Google is ahead of the curve with its “Progressive Web Apps”. We can foresee huge demand for PWAs in the near future and they will certainly revive web application development. PWAs eliminate the need to download and install something onto your mobile device, which became a stumbling block during the proliferation of mobile applications. PWAs can do the job for most use cases and can also be a much better investment .There’s no need to develop and maintain three separate code bases for Android, iOS, and Web. There’s no need to compete for attention in app stores.  You can use good old SEO techniques to attract visitors and convert them into customers.

Does this mean that native apps are doomed? Not necessarily. There are still specific use cases where there is no alternative to native apps. Pursuing both strategies still remains the best option, at least for the time being. A win-win strategy would be building: PWA + iOS app since Apple doesn’t provide full support for Progressive web apps yet. Native apps that haven’t received widespread recognition on marketplaces could be rewritten as PWAs to get a “second breath”.

Analysts agree that a mix of emulators/simulators and real devices are necessary to optimize your mobile app testing - learn more in this white paper, brought to you in partnership with Sauce Labs.

Topics:
mobile ,android ,native

Published at DZone with permission of Valeriia Timokhina, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}