The universal back button

Brent proposed a very sensible idea today on his blog which I would like to take a tangent from and run with.

I read a lot on the web and increasingly it’s becoming a social activity. Links come from all directions: Email, Twitter, RSS feeds, IM, Facebook and surprise surprise, other webpages. These links are the stuff of many of conversations we share, and a great thing about the web is the friction for the conversation to move across the various internet technologies is minimal. The URL breaks all the boundaries. In theory anyway.

On my Mac when I click a button to pass a link from one application to another, it’s up to me to remember where it came from, which conversation it was central to and who and where I should direct my response to regarding it. This mental load heavier on an iPad [or iPod Touch in my case] when you can’t leave the window of the first application visibly open as a reminder.

The popular response to this problem is to design the application around the conversation activity. Build the browser into the feed reader, integrate the twitter posting widget into the photo software, add the email app into the bookmarking do-dad. This approach will bring glee to those who it fits nicely, but tends to become less useful, or worse, heavy and bloated for those with slightly different needs.

The web has an answer to this I would love to see some analogy of on my Mac - the HTTP referrer. When you click a link on a web page, simplistically your browser will send a request for that page to the server hosting it; Along with that request, it carries a note of where the link came from. This information will appear in the visitor logs or Google Analytics reports for that site. It goes a long way to connect the participants of online conversations.

The closest thing to it in practice on my computer is the history in my browser that enables the back button to work. I am web developer so here is my question to those who know about this stuff: Is it possible for the back button escape the browser?

On a Mac maybe something like Choosy could form the basis for the background app that Brent speaks of?

Imagine clicking the normally greyed out back button and have your twitter application launch – displaying the tweet you clicked to load that page. That would fill this particular software user with glee, at least until I quickly forgot there was a time when I couldn’t do such a thing.

Further thoughts

25 May 2010

In response to Brent’s post, Rainer Brockerhoff also writes he’s been thinking about a HTTP referrer like approach to this problem: Re: Apps that work together — on iPad

Unlike me, Rainer knows a little about OSX development and goes on to explain how it might be possible, before concluding:

All this needs filing enhancement requests and Apple would have to do the required twiddling inside their code base – or rather, bases, as this would be useful to have both on the iPhone/iPad and the Mac side. It would take a long time, if it’s done at all.

The alternative would be to developers to, informally, establish a convention for incorporating this into the URL itself. So we’d have something like: calledscheme:///the/url/parameters&?REF=callingscheme://some/url/to/return

Probably the second part would have to be suitable encoded/escaped, too. Maybe this would be a good topic for discussion at WWDC?

I have faith that the Mac dev community can get together to make this work.

27 May 2010

Daniel Stødle has done some clever work. He has released a working menu bar app that infers the previous application from debugging information already available in Apple events.

Quoting Daniel’s blog post, Universal Back Button released for Mac OS X

By continuously analyzing the output from the console log, UBB can infer which app caused a different app to open a file or link, and thus create a “back relation” to the app.

For instance, when I click a link in iChat, a “GURL” Apple Event is sent to my default web browser (Safari, FIrefox, etc.). UBB notices this, and when you click the universal back button in your menubar, UBB switches you right back to iChat.

Of course, the mechanism has some drawbacks. For instance, there is no association between different windows – the association only exists between different apps. So if you have several windows open in iChat, the UBB won’t necessarily bring you back to the window that sent you to Safari in the first place. But, we have to start somewhere, and this is as good a starting point as any.

This is a bigger step in than I could have imagined possible in such a small time. Daniel includes a link in this blog post to his source code for others to build upon. I’m looking forward to more looking back on my Mac!

28 May 2010

Billy Gray adds his support for Brent’s suggestion and expands on the need for a service discovery mechanism.

Such functionality would be an incentive to uninstall apps from our devices to keep the list of apps jostling to accept that URL to a minimum. I have a lot of Twitter apps on my iPod! For example, the number of apps my Mac offers when I hover the ‘Open with’ contextual menu item on a .html file is well out of control. An interesting problem.