Status
This is a draft, work-in-progress analysis derived from the “Closing the Gap with Native” Headlight task force.
Introduction
A regular debate animates the community of mobile developers: which of native or Web apps are the best option to provide content and services on mobile devices (such as phones and tablets)?
Indeed, whereas Web applications have taken an increasing share of tasks that use to be accomplished via native software on traditional computers, a reverse trend seems to have emerged on mobile devices, where services and content traditionally provided via Web applications (e.g. news) are now provided either complementarily or exclusively via native applications (see Review of application development approaches per category in appendix).
If quantifying these trends remain difficult, there is undeniably a lot more and much broader efforts devoted to the development of native apps on mobile than there ever was on desktop. This new investment in native technologies can only reasonably be attributed to strong differences in what native and Web technologies enable service and content providers to offer to their mobile users.
Why are Web apps so much more challenged on mobile devices than they have been on traditional computers?
The first obvious consideration is that mobile devices come with severe hardware and networking constraints, that the latest generation of Web technologies had increasingly ignored due to the rapid evolution of the hardware and networking capabilities of computers. Since the ability to access that content is a critical component of the value of the Web, there can only be marginal improvements that can be made on technologies that have suffered from that approach.
Another consideration is that the popular native frameworks for mobile devices were developed once the Web had already shown a lot of its potential, and thus integrate natively the hooks needed to benefit from that potential: streamline installation, streamlined network (and in particular HTTP) operations, easy access to Web formats interpreters, inclusions of Web views as software components. As a result, re-using part of the Web platform without some of its other characteristics has become a lot easier in native apps, and has conversely reduced some of the appeal of Web apps. Among other things, while running executables obtained from the Web has long been taught as a bad practice to users of traditional computers, mobile apps come within a much stronger security framework (with a sandboxing model that browsers have long used), and can be obtained from a curated and easily-accessible entry point.
The popularity among service and content providers of so-called hybrid applications (where Web technologies are used in complement of native ones) is another illustration of how Web technologies have been embraced by native development framework on mobile devices.
If Web technologies remain a popular development component of native apps, why does it matter if “pure” Web apps are challenged by native apps?
Native apps reduce or remove some of the benefits the Web had brought to our digital ecosystem:
- the ability to run on a wide variety of devices and operating systems,
- the ability to access content and operate on it without the cost of installing and managing software,
- the ability to access content and operate on it with strong insurances in terms of protection of one's local data and services,
- the ability to reference and share content in a uniform naming scheme (enabled by URIs).
This document make uses of the terms “Web applications”, “browser-based applications”, “Web-OS application” as defined in the taxonomy of mobile application platforms.
This document analyses in detail how the development approaches differ in terms of the experience that can be offered to the user, and the associated costs/benefits for the service and content provider, highlighting possible actions that would reduce the gap from which Web technologies sometimes suffer in that comparison.
2. User experience
In a world of many competing applications, service and content providers need to offer a user experience that reduces as much as possible the friction of using their applications. User experience considerations are particularly important on mobile devices since their hardware and network characteristics often exacerbate the difficulties that users face.
The parameters that influence the quality of the user experience for mobile apps include:
- Getting the app, Running the app, Using the app
- world contains apps Device contains apps App contains views View contains content
- Ease of discovery and acquisition
Before a user can use any app, she needs to know the app exists, how to get it, and she needs to actually get it.
This encompasses the following operations:
- Searching an app
- Reaching an app from physical artifacts (ads, paper magazines, TV screen, product labels)
- Reaching an app from on-line interactions (social networks, on-line reviews, etc.)
- Paying for an app
- Downloading an app
- Authorizing an app for special privileges
- Ease of finding on device and launching
Once acquired, the user should have easy access the application when she needs it; the shortest and simplest the task, the less time she will be ready to wait to start accomplishing it. For instance, looking up the weather or the time should be near instantaneous, while a slightly longer wait before starting to play a game might be acceptable.
This encompasses the following operations:
- Locating the app launcher
- Starting the app
- Waiting for the app to be ready to use
- Intuitiveness and ease of understanding
When using a new or rarely used application, the user needs to find her way easily to accomplish her task at hand; the more the app user interface resembles other apps she is used to and re-uses the same interaction patterns, the less effort she will need to feel at home.
This encompasses the following operations:
- Adopting familiar user interfaces
- Adopting familiar user interaction patterns
- Guiding the user
- Smoothness and responsiveness
Any glitch and slowness of the user interface creates a barrier to the accomplishment of the task the user started the app for.
This encompasses the following operations:
- Navigating through views provided by the app (e.g. different sections of a news app)
- Interacting within a given view of the app (e.g. content of a specific section of a news app)
- Obtaining content from the network
- Pushing content to the network
- Adaptability to user access requirements
Depending on her physical conditions (temporary or permanent) and on her environment (e.g. luminosity), the user may want to adapt the user interface to her particular needs (e.g. changing contrast, zooming).
This encompasses the following operations:
- Making the user interface flexible to different user requirements
- Integrating with the accessibility services on the device
- Sensitivity to context
The user installs some applications for their ability to help her in a given context: at a given location, a given time, or when a given event occurs.
This encompasses the following operations:
- Determining the context in which the user is
- Notifying the user of a context-relevant information
- Personalization and privacy
-
Some applications benefit from gaining knowledge about the user (e.g. her contacts, her calendar) to adapt what they provide her.
The user on the other hand is often wary of sharing more of her private information than she is aware of.
This encompasses the following operations:
- Gaining access to private data
- Protecting user privacy
- Immersivity and focus
On mobile device smaller screens, any part of the UI that distracts the user from her task is problematic. If the user needs focused attention on the app, interactions from or with other apps should be reduce-able to a minimum.
This encompasses the following operations:
- Managing the whole screen space
- Separating UI from other apps
- Ease of returning to once launched
Some apps (e.g. social apps) attract the user’s attention frequently and the user expects to be able to re-access them easily.
This encompasses the following operations:
- Finding quickly the list of already launched apps
- Waiting for the app to be re-activated
- Getting the app back in the state it was left
- Ease of obtaining additional features
Once a user starts using an app, she may want to obtain additional features the app provides as add-ons.
This encompasses the following operations:
- Paying for an add-on
- Downloading the add-on
- Authorizing the add-on for special privileges
- Ease of maintaining
Once a user has acquired an app, she will want to keep it up to date. She may also want to retrieve some or all of the data that the app is creating and managing, either to share it, transfer it, or back it up. When she no longer needs the app or if she needs to recover space for others apps on the device, she will want to remove it. She may also want to reset whatever configuration or data a given app has stored on her device.
This encompasses the following operations:
- Updating an app
- Retrieving locally stored app data
- Removing an app
- Purging an app configuration and stored data
- Ease of cross devices usage
Users have increasingly to manage multiple devices of various shapes, manufacturers and capabilities; a user is likely to want to find the apps she likes on as many of these devices as possible, and in some cases to have an app takes advantages of several devices at once (e.g. for second screen scenarios).
This encompasses the following operations:
- Locating a compatible version of the app on the various devices
- Acquiring (possibly with payment) the app on these devices
- Getting the content / configuration of the app synchronized across devices
- Making the app work on several devices at the same time
The critical factors that need to be optimized for a given app depend on the type of expected interactions. These factors are influenced by the service and content providers investment, but also (and sometimes primarily) by the chosen platform and its associated development approach.
User experience parameter | Strength | Weakness | Possible W3C actions |
---|---|---|---|
Discovery and acquisition | |||
Searching an app |
|
| Increase searchability of apps through better metadata |
Reaching an app from physical artifacts (ads, paper magazines, TV screen, product labels) | URLs make it easy (and can be turned into easier forms) | No good way to discover "over the air" | Enable over the air discovery for Just-in-time interactions |
Reaching an app from on-line interactions (social networks, on-line reviews, etc.) | Links and no-installation make it much easier | Pure client-side JavaScript don't necessarily deal well with URIs | Promote best practices of URI management for client-side apps |
Paying for an app | Users aren't constrained to a single payment processor | No easy way to integrate "one-click" payment | Enable simple payments on the Web |
Downloading an app | For simple apps, accessing an app is equivalent to downloading it |
|
|
Authorizing an app for special privileges |
|
|
|
Finding on device and launching | |||
Locating the app launcher | Bookmarks can serve as app launchers |
| Get browsers/OS vendors to simplify integration of Web apps in OS apps list |
Starting the app |
|
| |
Waiting for the app to be ready to use |
|
| |
Intuitiveness and ease of understanding | |||
Adopting familiar user interfaces |
|
| CSS should provide some level of system UI integration? |
Adopting familiar user interaction patterns | Users are broadly familiar with Web interactions patterns (back button, reload, links, etc) |
|
|
Guiding the user | |||
Smoothness and responsiveness | |||
Navigating through views provided by the app | 300ms for touch/click events make Web apps feel sluggish |
| |
Interacting within a given view of the app |
|
| |
Obtaining content from the network |
|
| |
Pushing content to the network |
|
| |
Adaptability to user access requirements | |||
Making the user interface flexible to different user requirements | Web browsers provide more flexibility by default | User interfaces are not often tested in a wide enough set of conditions to cater for that flexibility | Automated or semi-automated testing tools? |
Integrating with the accessibility services on the device | Web has a long history of accessibility integration | Mapping with on-device accessibility features is likely to be lesser than what can be obtained from platform-specific code? | [further analysis required] |
Sensitivity to context | |||
Determining the context in which the user is | Users are in control of what the app can determine | Browsers don't have access to all sensors available on a given device, and requires specific permissions to get it in some cases | Any critical sensor missing (indoor location via WiFi id? BT4?)? Can we build a more generic sensor API that doesn't work against the user privacy? |
Notifying the user of a context-relevant information |
|
| |
Personalization and privacy | |||
Gaining access to private data |
| Web Intents-like solution? | |
Protecting user privacy | Users are always in control before data is first shared |
|
|
Immersivity and focus | |||
Managing the whole screen space | Browser chrome by default prevents fullscreen | Fullscreen API to the rescue? | |
Separating UI from other apps |
| Make it possible run Web app fullscreen, in separate browser instance? | |
Ease of returning to once launched | |||
Finding quickly the list of already launched apps |
|
| |
Waiting for the app to be re-activated | if the browser is not running, overhead of browser start up (without app branding) | ||
Getting the app back in the state it was left | Restoring the state of the app (e.g. scrolling location) not always trivial? | [Investigate further which states are hard to restore] | |
Ease of obtaining additional features | |||
Paying for an add-on | Users aren't constrained to a single payment processor | No easy way to integrate "one-click" payment | Enable simple payments on the Web |
Downloading the add-on | If needs little additional content, this is more streamlined than having to go through an app store | for add-ons with larger needs, it is difficult to defer the download of larger assets to better network conditions | Enable large download optimizations |
Authorizing the add-on for special privileges | Since privileges are granted on usage (rather than up front), this is more streamlined in Web apps | Risks of storm of prompts | |
Ease of maintaining | |||
Updating an app | App automatically up-to-date when on-line | ||
Retrieving locally stored app data | Web app data is not easily retrieved outside of the browser (is it worse for encrypted storage?) | Filesystem API? | |
Removing an app | For apps without offline components, no action needed | Current UIs to manage offline Web apps are hard to get at, hard to use, and not integrated in OS apps management | |
Purging an app configuration and stored data | Browsers make it possible (not clear this is so for native apps) | Browsers make it hard | |
Ease of cross devices usage | |||
Locating a compatible version of the app on the various devices |
| Interop issues across devices might make experience of a given Web app very poor on some devices | Reduce incompatibilities across devices |
Acquiring (possibly with payment) the app on these devices |
| ||
Getting the content / configuration of the app synchronized across devices |
| Limited access to discovery-by-proximity systems |
|
Making the app work on several devices at the same time |
|
|
3. Provider perspective
To make it sustainable to provide a given application, content and service providers need an environment that reduces as much as possible the costs of developing, deploying and maintaining a given application, and maximizes the expected outcome, which can be, but is not necessarily, of monetary nature.
The following parameters are taken into account to assess the costs:
- Development cost
-
- Hiring / training developers
- Writing code
- Finding documentation and guidance
- Finding libraries
- Reporting platform bugs
- Debugging and diagnostics
- Testing
- Deployment cost
-
- Getting authorization to deploy
- Uploading the app
- Advertising the app
- Protecting the app code
- Maintenance cost
-
- Getting user input and feedback
- Keeping up to date with changes (in particular incompatible ones) in the platform
- Getting visibility into future evolutions of the platform
- Expected outcomes
-
- Reaching out to as many users as possible
- Getting paid
- Getting recognition
- Enabling social change
Provider experience parameter | Strength | Weakness | Possible W3C actions |
---|---|---|---|
Development cost | |||
Hiring / training developers | A lot of Web developers | Not many Web developers now how to develop good Web apps for mobile | Training? Best Practices? |
Writing code | Plenty of IDEs for the Web | Support for responsive approaches? | |
Finding documentation and guidance | Lots of Web-related sites and forums | Lack of authoritative content? | WebPlatform.org? |
Finding libraries | Lots of them | Hard to find the right one, esp. with mobile constraints | |
Reporting platform bugs | Technologies are developed in public |
|
|
Debugging and diagnostics | Same Web platform on desktop and mobile makes it somewhat easier to debug |
|
|
Testing | Lots of automated testing tools, incl. on mobile | Hard to test chrome-based user interactions (e.g. consent dialog) | Improve Web Driver API to include more chrome-based interactions |
Deployment cost | |||
Getting authorization to deploy | None required | ||
Uploading the app | Mostly seamless | ||
Advertising the app | As open as anything else on the Web |
| Promote searchability of apps and associated reviews? |
Protecting the app code and operations | Server-side component out of reach to client-side attackers | Hard to get as thorough protection of client-side as available to native apps | Relationship between Browsers and Trusted Environments? |
Maintenance cost | |||
Getting user input and feedback | Use the Web | No one-click infrastructure to share comments associated to a given identity (assuming reputation is an incentive) | Better identity management |
Keeping up with incompatible changes in the platform | Platform evolutions are decided in the open | Hard to keep track of these evolutions | |
Getting visibility into future new features of the platform | Platform evolutions are decided in the open | Hard to keep track of these evolutions | |
Expected outcomes | |||
Reaching out to as many users as possible |
| Hard to design apps that work well across many devices, browsers, culture, etc. | |
Getting paid | Each provider can pick its most appropriate payment system | No general one-click solution to payment | Standardize a payment API |
Getting recognition | Neutral? | ||
Enabling social change |
|
Appendix: Review of application development approaches per category
One way to assess the particular challenges that mobile represent for browser-based apps is to look at which kind of applications have been traditionally browser-based on the desktop and are now primarily used via OS applications on mobile.
The only limit a priori to what browser-based applications can be used for is set by security considerations: access to features that would be hard or impossible for the browser to give without compromising the user’s security.
In practice, there are areas where the benefits of browser-based apps are more directly relevant than others, and where it would be more logical to close the gap in priority.
Application category | Dominant approach on desktop | Dominant approach on mobile | Gaps for browser-based on mobile | Example of browser-based app | Example of hybrid app | |
---|---|---|---|---|---|---|
Feature gap | UX gap | |||||
Games | OS app, but rising trend of browser-based app | OS app | audio support, 3D support | Performance, payment, large upload/download | ||
News | Browser-based | Both | Offline support | Payment | Financial Times | |
Social | Browser-based | OS app | Push | Large upload/download | ||
Communication | OS app | OS app | Push, network capability | |||
Education and references | Browser-based | Both? | Offline | OS search integration, large download | Wikipedia | |
Multimedia consumption | Both | Both? | Offline, codecs, local media access, DRM | Large download | YouTube | |
Multimedia production | OS app | OS app | Access to camera | performance for media processing, large upload | ||
Day-to-day helpers (weather, calculator, timer, etc) | Both | OS app | Offline | Ease of access | forecast.io | Many? |
Productivity | Both | OS app | Offline, network capability | Ease of access | GMail | |
Enterprise | Browser-based | Browser-based? | Security, control | |||
Shopping | Browser-based | Browser-based? | ? | Ease of access | ||
Travel and local | Browser-based | Both | Offline | payment | Google Maps |