Bridging the gap between Web and native apps

Native applications have always been better at engaging consumers, but a new approach, called progressive app development, promises to make the browser more engaging than ever.

Mobile applications and websites have traditionally embraced different paradigms in terms of user experience. It's much easier to get users to visit a website than install an application. But mobile apps tend to promote a more engaging user experience. A new paradigm in omnichannel app delivery, called progressive Web apps, promises to provide the best of both worlds and was a hot topic at the O'Reilly Fluent Conference in San Francisco.

Alex Russell, a staff software engineer on the Chrome team at Google, said they chose the term progressive Web apps because they can start life in a tab and progressively become app-like. Several factors are driving this trend, including better caching technologies and new techniques for making Web apps behave more like mobile apps.

A few pioneering enterprises are already demonstrating the value of increased user visits and time spent on sites using the new paradigm. Flipkart began implementing progressive apps and is seeing the amount of time spent on the new website triple, with 40% growth in visitors each week. They are also seeing a 63% conversion from home screen visitors, and they have not even launched push notifications yet.

Solving the distribution problem

"I submit that distribution is the single hardest problem in software," Russell said. In the early days, users would have to install apps from floppy disks. Now, it is much easier to get users to install applications, but there is still a lot of friction in getting users to go through the effort and sacrifice a little more real estate on their home screens. The Web is the most friction-free platform for distribution, but it is surprising we have not made the shift to distributing mobile apps via URLs. Web applications can be updated on a more regular basis, or by clicking on a link, and developers don't have to jump through an app store approval process.

Distribution is the single hardest problem in software.

Alex Russell,
a staff software engineer on the Chrome team at Google

But users tend to spend about 87% of their time on mobile apps versus 13% on mobile Web apps on smartphones, according to comScore Inc.'s research. On the flip side, most users spend the majority of their time on the top applications, while the others just sit dormant. As a result of these trends, enterprises end up spending a lot of money to get users to install the mobile app version of their software. Many of these applications end up being zombie applications that never get used. This can cost a lot, since many of these applications don't make it to the top tier.

At the same time, mobile sites get many unique visitors who don't install the application. This is important for enterprises with less widely used apps, such as retailers. The average user uses 27 apps per month, but visits over 100 mobile sites. Russell said users report anxiety of space, bandwidth and time around downloading native mobile apps.

Getting past the technology

A few processing-intensive applications are likely to perform better as native mobile. But Russell said he believes mobile Web platforms are sufficient for most apps today. He said the three main factors holding back the use of mobile Web apps are the lack of home screen access, the lack of access to the push notification tray and lack of offline access.

Home screen access

The Chrome team recently published a spec for the Web App Manifest. An early version runs on all Android platforms. This provides a framework for telling the mobile browser that a particular link is actually a mobile application. This makes it easier to relaunch the site as a separate window, which looks and behaves like other native apps.

Developers simply include a manifest file on the site that includes a link to an icon and application name. Russell said this is necessary, because the Web has not had the notion of an application structure. Intuitively, people understand that a blog is different than items in the blog. The manifest provides a way of explicitly declaring this distinction to the browser.

Pushing new limits

Last year, the Chrome team launched push notifications on Chrome for desktop and Android. This makes it easier for Web applications to direct updates into the push notification tray. This feature is also available on Samsung and Firefox browsers, and generates notifications that behave much like native apps -- even when the browser is closed. Users have to supply permissions to receive notifications from a particular site.

This strategy could work well for retailers' sites, for example, which might want to push coupons out to users visiting a store. It would allow users to receive these updates without having to install any app on their home screens. Retailer Beyond The Rack now reports that 50% of its visitors are coming from launching push notifications. They are also seeing an increase in time spent on the site and conversions.

Better caching with service workers

The last threshold is support for offline functionality that works. Google has been working on this problem for years. Initially, Google Gears allowed a narrow set of ways to think about crafting an offline experience. Application cache is the same design now being baked into the HTML5 spec.

Google is now introducing a notion of service workers. This approach allows developers to specify how the service worker behaves when the mobile device is offline or online. Russell said offline is just a special case of a flaky network connection. This approach allows the app to deliver a satisfying user experience, regardless of its connectivity. The application shell can be cached and loaded instantly on repeated visits. "Now, with service workers, you can put pixels on the screen without DNS, http or the TLS dance," Russell said.

Is it possible to make the mobile browser as engaging as native apps? Let us know.

Next Steps:

How open source is used for cloud-native apps

Getting to know an app startup

Accelerate mobile app testing

Dig Deeper on Software development best practices and processes

App Architecture
Software Quality
Cloud Computing