Web Application Coherence

One of the greatest things about Parallels is Coherence. The integration between the virtual machine and the host OS makes virtualized applications feel almost native. It’s a major win for users who don’t want to be locked into a mini-desktop.

I wonder if this concept could be brought to the web in a secure, but convenient method. There are many applications that could benefit. You could pull widgets off a page and onto your desktop as an application. For example you could take Meebo, an online IM service. In a matter of seconds it would feel as if you downloaded a new application, but your still using your browser. People love web applications, and hate downloads. This has been known for a while. Meebo is extremely popular because it feels somewhat like a desktop application, but it’s web based. Think of this as Apple’s Dashboard taken to a whole new level.

Take for example this psudocode (it’s just to make a point, not an API):

<div id="frame">
    <p>This is a window that can be brought to the desktop</p>
    <p id="test"></p>
</div>

var widget = document.getElementById(‘frame’);
 
// This would test if it’s currently coherent
if(!widget.coherence){
    // This would prompt the user to allow coherence on the page.  Typical extension-like install warning.
    widget.allowCoherence();
}
 
// When you first enter coherence mode
widget.coherence.oncoherence = function(){
    document.getElementById(‘test’).innerHTML = ‘I\’m in your OohS, integratin your web pagez’;
};
 
// When you focus (bring a window to the front)
widget.coherence.onfocus = function(){
    document.getElementById(‘test’).innerHTML = ‘Your in focus’;
};
 
// When you first enter coherence mode
widget.coherence.onminimize= function(){
     document.getElementById(‘test’).innerHTML = ‘I\’m idle right now.’;
};

The first time your browser would hit allowCoherence() you would be prompted to allow coherence for that domain. Other than the integrated look/feel it would adhere 100% to typical web sandboxing. This isn’t like building an XULRunner app where JS can write to the filesystem. It would just be a way to make web applications more usable for people. and breakout of the web browser feel.

There are other things that can be done as well. For example css theming could give the app a more native look/feel dependent on the host. Perhaps just an attribute in the <html/> would trigger the browser to render things to look like a native app by default (pinstripe background for page by default, etc). Another great thing to use with it would be offline support. A little more cleverness would allow you to create bookmarks that essentially “open the application”.

Ultimately this would still be about web applications, but making them live outside of the browser window. The user wouldn’t need to install anything more than a web browser. The applications would be as safe to use as browsing to a website.

So there’s my giant idea. Implementing this in something like Firefox would be a rather large task, and to be useful the API would need to be standardized across browsers, but much of the underlying stuff is there. Anyone interested in taking web applications to the next level?

Yahoo Dashboard

Ok, this is just asking for a lawsuit. Does the same thing with apparently the same name. Not sure if the article is just inaccurate with the term “Dashboard” or if that was accurate.

The only complexity is that Apple allegedly got the idea for Dashboard by stealing from Konfabulator.

This will be interesting.

XULrunner vs. Dashboard

Daniel Glazman says:

Forget Konfabulator, forget Dashboard, forget Tcl/Tk. XULrunner will kill them all. As usual, it’s not planned to kill them. It’ll be just a side effect of the existence of XULrunner.

I agree, but with an exception. Konfabulator, and Dashboard have much better management of widgets than XULrunner appears to have (I’ve yet to see any documentation planning something better). XULrunner manages widgets more like Java. It simply doesn’t. It relies on the OS to do so. It’s purely a runtime.

If XULrunner could be run in a Dashboard type mode (run multiple widgets, background, be rather graceful and beautiful), and good installation methods to add widgets and manage them. It would be a killer app. Especially since it’s so portable and powerful.

But as a runtime (which is essentially what XULrunner is at this time), it’s not quite a killer. It’s apple’s and oranges.

I’d personally love to see the ability to run XULrunner in a “Dashboard mode” so that it managed XUL based widgets similar to how one of those other products manage widgets. That really would be an impressive feat. Perhaps that would be a great XULrunner app for someone to write. A portable, fast, lean XUL based Dashboard app?