It's the apps. The iPhone and Android conquered the world because of the apps. More specifically, what keeps Android and iOS dominant is the utter lack of those apps on competing platforms. But today, the mobile landscape is significantly different from a year or two ago (let alone five). Today, apps aren't really necessary. In fact, it's easy to envision an excellent, software-rich mobile device that uses the Web instead of apps.

There's currently a litany of problems with apps. There is the platform lock-in and the space the apps take up on the device. Updating apps is a pain that users often ignore, leaving broken or vulnerable versions in use long after they've been allegedly patched. Apps are also a lot of work for developers—it's not easy to write native apps to run on both Android and iOS, never mind considering Windows Phone and BlackBerry.

What's the alternative? Well, perhaps the best answer is to go back to the future and do what we do on desktop computers: use the Web and the Web browser. Updates to HTML apps happen entirely on the server, so users get them immediately. There's no window of vulnerability between the release of a security fix and the user applying the update. So with a capable, HTML-based platform and a well-designed program that makes good use of CSS, one site could support phones, tablets, PCs, and just about anything else with one site.

From the user's standpoint, it would be far better to have access to all those apps through a browser. Most of the reasons are the same as for the developers—nothing to install and automatic updates. Because of this, Web apps take up next to no persistent storage, leaving more room for music, videos, other persistent data and cache.

Currently, standards are advancing rapidly in the area of mobile Web applications as part of the emerging HTML5 platform. The goal, backed strongly by Google and Mozilla, is for websites to be able to do anything that native apps can. If this happens, native apps may no longer be necessary or desirable—right? Would the considerable advantages of the mobile Web (its near-zero footprint, updates performed on the server, and support for all platforms) convince developers and users to target the Web instead of the iPhone and Android? And would Apple allow this to happen?

The current app gap

Historically, the problem with using Web applications on mobile devices is that webpages have not been able to do the things we expect of apps: features like pinch and zoom or leveraging local hardware features such as the compass, accelerometer, and camera. That's changing, however, as mobile browsers provide access to local features. Standards bodies have been hard at work developing interfaces to control graphics, device notifications, data storage, payments, GPS, compass, accelerometer and other sensors, forms, multimedia, and more, and the W3C maintains a roadmap of these standards efforts developed by the recently completed, EU-funded HTML5Apps project. Among the efforts jumpstarted by HTML5Apps was a future W3C Web payments API standard that would define how Web applications interact with mobile wallets and other payment systems.

Obviously, Web applications don't work when there is no network to connect to. A middle ground application model called "hybrid" addresses this, but at a cost. Hybrid apps use a native operating system Web browser control to open a full-screen window, but they look and behave like native apps—including requiring a download from an app store. Hybrid apps get access to the hardware features unavailable to the Web through third-party tools, mostly based on Apache Cordova. Hardware support in Cordova for iOS and Android is excellent but spotty elsewhere.

If there's one big impediment to this view of the future, it's Apple. Through its actions and inactions, Apple has shown itself hostile to the possibility of a competitive Web model for iOS. In January 2015, Apple announced that "[t]o date, App Store developers have earned a cumulative $25 billion from the sale of apps and games." Overall, 30 percent of that goes to Apple as does 30 percent of subscriptions and other in-app purchases.

At the same time, Apple has been slow to adopt the standards that make a powerful mobile Web possible. Three of these—Service Workers, the Vibration API, and the CSS touch-action property—are good examples of functions that programs need in order to give the full app experience on mobile.

Service Workers (a draft W3C specification) are arbitrarily complex JavaScript functions that enable browser tasks to run tasks in the background and react to events. They are a big part of any plan to make Web apps as sophisticated as native apps. As an example, Google provides a simple Service Worker that handles page requests when offline. Nobody implements Service Workers completely, but there is partial support in Chrome, Opera, and Firefox (Firefox support is turned off by default). Microsoft says it is considering it for Edge, but Apple does not support Service Workers and has not announced plans to add them.

The Vibration API provides access to the vibration mechanism of the hosting device. Firefox, Chrome, and Opera support it. Safari, IE, and Edge do not, although Microsoft says it is under consideration for Edge.

Touch-action is (quoting caniuse.com here) “…a CSS property that controls filtering of gesture events, providing developers with a declarative mechanism to selectively disable touch scrolling (in one or both axes), pinch-zooming or double-tap-zooming.” In other words, it allows webpages to control the behavior of the browser in reaction to touch events. (The spec does not support multi-touch.) Touch-action is supported in Chrome and Opera, even in Internet Explorer and Edge. It is supported by Firefox but disabled by default. Safari does not support it whether on OS X or iOS.

Apple did not reply to requests for comment for this story, but none of these three standards are in iOS Safari. There are also more features like this missing in iOS or implemented insufficiently. iOS is certainly not the only browser falling short, but it’s obviously the most important one on mobile. If you want to find out whether you can use specific features on particular mobile browsers, check caniuse.com.