Integrating with web apps
Call for Help and Ideas!
Everyone knows I love web apps. You have two extremes. Old school “native apps and in control of my data” and then the other which is basically ChromeOS; No local state, all web. Most people are in the middle. You might love Gmail but the thought of having a remote word processor might not work for you.
I want my cake and I want to eat it too. I want web apps integrated with my desktop, which is why I am a big fan of site specific browsers. Recently these have been popularized by Chrome applications in the Chrome App Store — which is just a pretty front-end to what Stuart and I have been yelling about for 3 years.
When people do it right (like Seesmic and Tweetdeck), it’s a great user experience. When people do it wrong, it’s just a stupid bookmark with no window chrome, meh. However, we can do little things to make it great.
One area where we can integrate is notifications. Chrome/Webkit has notifications, they look like this:

These are becoming more popular; Seesmic, Stack Overflow Chat, and irccloud to name a few. Well, why stop there? I asked Aq to hook up a prototype and then Marco Cepppi finished it.
Let’s chromify-osd:

A little bit of glue makes all the difference. To try it:
bzr branch lp:chromify-osd
cd chromify-osd
python chrome_notifyosd_server.py
Now, load the extension in Chrome. Wrench -> Tools -> Extensions, click on the developer mode link, and then choose Load unpacked extension and select the directory “chromify-osd”. Then use a webapp that uses extensions. Here’s an example one.
Aq passes along “Although remember that the best solution will still be to write a proper Chrome extension which intercepts notifications and uses D-Bus! An NPAPI extension. This is a hack.”
So what do we need? We need someone who can make a Chromium extension to connect web notifications to libnotify. I suspect that a proper extension will have to deal with sandboxing and a bunch of stuff Aq glazed over in order to give me hope that this is possible.
What else do we need? Well, we need Unity to decide to be the glue for the web. We can do this by connecting desktop services to the browsers. Wherever web app developers take this we need to connect it up for people. Here is the start of some plans Unity developers have for making this integration better.
Any takers on getting this started?
Where else can we do this? How about we make it so when people make the App Shortcut we “install it” for them?

Now we’re talking! I also what a nice high resolution icon on the launcher with little numbers for new emails, etc. fta pointed out the code where Chromium does the shortcut thing, maybe someone can take a crack at it once the Launcher gets closer to being finished.
(My examples use Chrome since it ships app shortcuts out of the box, the same should apply for Firefox/Prism)
Whether you agree with web apps or not isn’t the point. Some people like them and some people don’t, either way your desktop should give you the best possible experience if you use Evolution or Gmail or whatever. Thoughts?
Application Menu making it’s way to Firefox
Chris Coulson has been working on adding Application Menu support to Firefox for 11.04. Here’s the initial cut:
The reason you still see the old menu inside the window is that for testing developers will have both running so they can compare them side to side.
You can find the code to the extension here: https://launchpad.net/globalmenu-extension
Hackers and testers are welcome, but please remember that this is very young, so don’t expect ponies and unicorns.
Web apps, interact with me!
I love web apps. So I wanted to see how Chromium’s latest support for web apps is like. After all, they’re going to have an “app store” of web apps. Here’s what I saw:

I hate to be a downer, but a pinned tab with an icon on it and removing the browser chrome doesn’t make it an “application”, if I wanted that I’d browse in full screen all day! While I love Chrome’s app mode and Mozilla Prism I think people are missing the point. Look at this tutorial on Mashable on how to use Google Buzz as a desktop app. Searching for web apps for other sites gives you similar results. Take existing website, fullscreen it, and we’re done.
This isn’t what I had in mind when people told me about web applications! I was thinking more like this (thanks to Ken for the GIMP mockup):

I wish web app developers would take into account of how much better their “application” could be if it took advantage of being an actual application. We know you can drag and drop stuff on web apps, etc. One app that did this well (for it’s time) was the original Google Talk widget, when you throw it in app mode it looks pretty decent (ignore that it’s Flash):

Ok, not bad, unfortunately when you chat with a person it opens a tab in there instead of opening a window for you to chat with the person like a traditional app. But we’re getting closer! Now look at these two:


Now this is what I think of when people say “web applications”. The Google Buzz “desktop app” is really the mobile Buzz site wrapped in Chrome. It reflows text when you resize it, and works how you think it should work. Compare that to Mashable’s solution of just fullscreening Gmail. I can move this window around and do what I want to it. Google has basically already created a cross platform Buzz desktop client! (But you have to know how to wrap the mobile site in app mode, lame).
And look at the Zoho example! The skin is a knock off of the Office 2003 UI, but that’s an implementation detail; You’d have a hard time convincing people that was a web application at first glance. I think apps like Meebo could be so much more engaging if I could break them out of the browser and onto my desktop.
Make it so when I double click on documents in my file manager that it opens the word processor app already “prismed” up, when I “install Seesmic web” I get an icon on my desktop that I can interact with; I like to alt-tab, minimize and interact with web applications too. Otherwise, it’s just a bunch of tabs with web sites in them, and I already have that!
UPDATE: Bigger pics of my screenshots are here.
Clarifications around Ubuntu using “Google Chrome”
I’d like to clarify some things about our session on default applications and Chromium. I’m about to get on a plane so I will be short before the confusion spreads.
- Chrome and Chromium are not the same thing. Chrome is a non-free build of the Chromium project.
- It is impossible for us to ship Google Chrome as a default web browser without compromising our beliefs. You can read more about our licensing and how that relates here.
- However we have a section in the software center where people can opt-in to have things like Skype, Adobe Reader, and possibly Google Chrome.
- The distribution models of Chromium and Ubuntu/Debian couldn’t be more different, but since Evan Martin from upstream Chromium attended the Ubuntu Development Summit we have begun to identify how we can make this work. Expect more progress here in the future.
- The switch to Chromium has only been identified as possible choice on the Ubuntu Netbook Edition.
- WE LOVE FIREFOX. Mozilla is one of our most important upstreams and we will continue to work with them as we have in the past. Improving Chromium in Ubuntu helps Firefox because they both believe that competition is the best way to drive the web forward. For example we use CouchDB as our default for “sqlless databases”, but work (or plan to work) with MongoDB and Cassandra as well. We ship and integrate puppet by default but that doesn’t stop us from making sure Chef is well supported. No sane operating system vendor would want to artificially limit what developers can do on their platform.
- We should be celebrating the choice of excellent browsers pushing the web.
I hope that clears things up, you’ll be hearing more updates in the usual development channels from the Desktop team as the cycle progresses.

