October 11, 2006

The Appify Button

A Slashdot story crossed by RSS reader tonight: Google "Office" Released. I was about to move on to the next article, but I kept ruminating over CmdrTaco's kicker:

from the you-got-web-all-over-my-desktop dept. The more "applications" I try forcing into a tabbed web MDI model under a Mac, the more clumsy it gets. They aren't in my Dock, they can't be apple-tabbed through. Issues like this really frustrate me as I find myself wanting to use more web2.0 ajaxy fancy pants programs.

Since Taco was a nice enough chap when I've met him in the past, not to mention that this is something that bugs me fairly regularly, I've been thinking about how the browser can improve this situation. What follows is a fairly rough sketch of a solution that I'm calling the "appify" button.

Web applications would have a mechanism to identify themselves as potential applications through a meta tag, similar to microformats. This triggers the browser to display a subtle notification to the user that they may choose to appify the site. Potentially, if the site appears frequently in history, a more obvious notification could be given. When a web app is appified, several things would happen:

  • Easy access is provided to the application. This could include (in a platform-appropriate way and depending on the wishes of the user: desktop shortcut icon, application kept in the Dock, Start Menu placement, bookmark toolbar, etc...
  • First-Class Application Status - when an application is launched from one of these access mechanisms, it is treated as a first-class app by the OS. This means that it appears in the Taskbar/Dock as a running application, and alt/cmd+tab shifts between app and other applications.
  • Streamlined Application UI - The UI should obviously be extremely similar to the normal browser interface. To do otherwise would provoke confusion.That being said, applications can, in my opinion, benefit from having extraneous non-application UI removed (bookmark toolbar, search bar, etc...). The URL bar should always be visible for phishing protection, but an application specific icon could appear along side.

Future implementations could include provisions for notification events, similar to the Gmail Notifier, and for document management, integrated with mozStorage.

This protocol has one nice advantage over previous solutions to this problem, such as Java Web Start: users can interact with content as either a site or an application, and the user experience of actually using the content is precisely the same. This is important because some people may want to treat a site as a commonly used application that needs to be easily accessed, while others may not. For example, I sign into Online Banking only occasionally, and do not mind typing the URL. Others may access their bank information multiple times a day and want this access on a first-class basis, the same way they launch Word or any other app. Appifying a site provides a different way to access it, but it does not change the way the site is used.

Appifying a web application is also a first step towards providing offline access. This is another problem all together, and this margin of the internet is entirely too small to contain its solution.

This is a pretty rough sketch right now, and I welcome constructive feedback. Certainly, it doesn't make sense to implement all of this in one go, and I'd say that the order of implementation should be the application access problem first, then first-class application status, and then any UI streamlining.

It might be interesting to do parts of this as an extension (though the platform-specific parts would pose some challenges), or perhaps through the Mozilla Labs program.

Posted by zach at 3:40 PM | Comments (13)

Litmus Is Up

In the interest of completeness, I'll report that Litmus has been back up for some time now, and is currently running on a spiffy dedicated VM under mod_perl.

This past weekend was our fall break, so I took advantage of the time off to travel around and see some good friends, met an interesting fellow along the way, and crashed at various institutions of higher learning. All and all, it was great fun. Of course, the work tends to pile up when you're away. After a certain exam is over with, regular service should return to normal.

I'm setting aside a short block of time in the next few days to work on improving some of the installation infrastructure and documentation around Litmus. While this may seem like a little bit of a waste of time, after all, Litmus is only being used by Mozilla right now, and we already have it installed! However, I've heard a good amount of interest from several groups in using Litmus for other projects, and the lack of a reasonable installation process makes it pretty much impossible for them to get started. Ideally, new users will result in more patches getting folded back into the main Litmus codebase, improving things for everybody. In reality, the result will probably just be more support questions and maintenance headaches, but it's a nice thought.

Posted by zach at 3:24 PM | Comments (2)