Dec 09

App Discover: An add-on that shows me when apps or user scripts are available for a site

Mozila, Tech, Web Browsing with tags: , 10 Comments »

Greasemonkey and Fluid userscripts. AIR and the new Titanium apps. Browser add-ons. When you go to a website do you know if you are getting the best experience for you? You could search for script on userscripts, or Google for apps, but what if the developers of the sites had a way of pointing out that there were enhanced experiences for you?

This is where App Discover comes in. It is a Firefox add-on that notifies you of these very items. All the developer has to do is add a simple link tag to their page, and the add-on will find it for you.

For example, if Twitter added the following tag, you would be notified of TweetDeck:

<link rel="application" 
  type="application/vnd.adobe.air-application-installer-package+zip" 
  title="TweetDeck Adobe AIR Twitter App" 
  href="http://www.tweetdeck.com/beta/TweetDeck_0_20.air" />

That line would mean you would see this in the browser:

Twitter App Discover Example

The type is a mime-type of course, and these are mapped into custom verbiage, but if you come up with something new… as long as the href is good, you should be golden.

I just added support for Appcelerator Titanium for example:

<link rel="application" 
  type="application/vnd.appcelerator-titanium-app-package+zip" 
  title="Tweetanium Appcelerator Titanium Twitter App" 
  href="http://tweetanium.com/tweetanium.zip" />

This is just a simple beginning of course. Where would we really want to go from here?

  • The current limitation is that it only really works well with one link tag (items get replaced)
  • I want to add preferences so the user can let the add-on know what they want to be alerted about (e.g. yes to Titanium apps and Greasemonkey scripts only!)
  • Be smart based on installation: E.g. if you don’t have Fluid (and especially if not on a Mac), don’t show it
  • Get social: “You have three friends who have installed TweetDeck”. This requires the browser being smarter about your social graph, which I think is a natural progression.
  • It should be smarter and not bug you when you go back to the same page. That can be fixed via the AnnotationService.

That leads me to XUL. I tweeted how it can feel a little strange to look up XUL docs and see dates in the lower 2000s. You have this nagging feeling of “has something really not changed since them? Is there an new better way of doing this?” As @mfinkle pointed out, “XUL is stable.”

I have to say thanks to the Ubiquity team who had done the lifting for me, which meant that this add-on took an hour to write!