Google and Mozilla are developing new processes that will make it easy for developers to enable people to use the functionality of one web app inside another web app. For example, a photo hosting site could make it so that people can use any favourite photo editor within their site. Sites won't even have to know about each other, and it takes only a few lines of code.
Simple examples of this behaviour exist already: social media buttons that enable you to promote a page on another site, say Digg or Twitter, are instances of performing an action on one site that carries across the web to another site. But this new work would provide an alternative to plastering your site with lots of social media buttons. Instead, there might be buttons for "share", "save" and other useful actions, and users would pre-define which services they wanted to use to carry out those actions: for example, Twitter and Tumblr for sharing and Instapaper for saving. Your site wouldn't need to know how to interface with the other services: this would be done via a standardised API.
At this early stage, different people are working on different variants of this concept, giving it different names and applying it in different ways.
Google is working on an API for Chrome that will enable people to connect their web apps to other services with as little as two lines of code, according to the Chromium blog. The blog uses the term "Web Intents", a name that comes from a facility within Android that enables apps to interact with each other. Happily, a note at the end of the post reads "We’re working closely with Mozilla engineers to unify our two proposals into one simple, useful API." There's a prototype up on GitHub that you can play with now.
Google developer Paul Kinlan summed it up with the words: “This project will fundamentally change and improve the way we build applications on the web today for our users."
Mozilla is using the term "Web Activities" and has unveiled a new version of the OpenWebApps add-on for Firefox. With this add-on, you can install various web apps and get them to interact with each other. There's an example on the blog that uses Web Activities to pass a photo taken with one web app onto Flickr with the Flickr Connector Web App.
Twitter's Web Intents enable you to make tweets on your site interactive, so people can retweet, reply, favourite and follow from within your site.
Web standards guru Tantek Celik is advocating the use of the term "Web Actions" rather than "Activities" or "Intents". On the term "Intents", Celik writes "The API-centric framing of web intents makes it difficult to discuss them from a user experience perspective. As user-centric technologists we must always deliberately think of the users first, and choose user-centric terms to guide our thinking accordingly. And users take actions, not intents." He also emphasised the importance of getting the user experience right before rushing ahead with standardisation, and expressed some concern that Mozilla's Web Activities might be trying to do too much, too soon.
Developer Peter Gasston compared the current state of affairs to the iOS apps model, and Web Actions to the Android model: "At the moment web apps work similarly to the iOS model where (most) apps are completely isolated from each other. Say you want to take a photo, then edit it, then upload it to the web. In most cases you open the camera, take the picture, close the camera, open the editing app, choose the photo from the gallery, edit it, close the editing app, open the upload app, choose the photo from the gallery, and upload it.
"In the Android model you open the camera, take the picture, share it with the editing app, edit it, share it with the upload app, and upload it; it's a much more integrated process.
"Web Actions is exciting is because it creates that integrated process on the web, meaning in many cases we can bypass the computer desktop completely. It's the next logical step in the 'browser as operating system' which many companies (not least Google) have been working towards.
"And it won't only be useful for moving files between applications; it could also mean, for example, a single Like button on web pages; click that and you get a list of websites with which you have an account, and you can choose which of these your Like is registered with. This is probably only scratching the surface of what a standardised interaction model is capable of."