Building the Feed headlines gadget using the Windows Feeds Platform

The final RSS gadget, “Feed Headlines” is done and available with Windows Vista! This gadget is featured on the Vista Sidebar by default and allows users to see new headlines peripherally. We built the gadget using the Windows Feeds Platform, which greatly reduced the complexity of getting and storing of feed data so that we could focus more on the user experience.

 

Initially, the gadget was prototyped using an http request to handle the xml files from each feed, similar to other AJAX development. Designing and developing the prototype quickly revealed that managing feeds was going to be very consuming to develop due to how much code would need to be written for feed download, storage, and user management not to mention the bugs introduced due to the extra code.

 

We started prototyping a gadget to be a full-fledged feed aggregator for all types of syndicated formats. As part of this development process we took a look at the Internet Explorer 7 feed reading experience and realized that our experience with a Sidebar gadget had to interact with Vista’s new feed platform. We ended up building a gadget that essentially became a face to the feed platform. Because we chose to build the gadget on top of the feed platform the job became a lot less complex, and a more usable gadget emerged. It was more usable in that the user doesn’t need to maintain another RSS list specific to the “feed headlines” gadget and read/unread data is synchronized.

 

In hindsight, it becomes quite clear that managing feeds in one location accessible to all applications is “how feed management on the OS should work”. Sure you can be savy and have your opml list and import it to all your RSS apps, but I personally am just not that organized, and isn’t that a lot of the reason we use computers - to do our mundane tasks for us?

 

By choosing to build our gadget on top of the feed platform, we introduced a dependency on the feed platform. If it breaks we break. This is not a bad thing, because if it does break we know where things went wrong and can be fixed from one point instead of several.

 

In conclusion, I don’t believe this would be a viable gadget without the feed platform. As an independent feed aggregator, there is just too much set-up to ask of the user. Gadgets are quick glance mini-applications. I don’t believe users will want to spend a great deal of time interacting with them, and API’s like the feed platform will make gadgets extremely robust.

 

Notes on the gadget’s usage of the Feed Platform APIs:

 

The RSS gadget uses a number of the APIs from the feed platform in ways that may not be obvious on the surface. Helpfully, the feed platform exposes its APIs through a scriptable ActiveX object, so it was simple to access these APIs in a Sidebar gadget using JavaScript.

 

By default, the RSS gadget displays all feeds in the feed platform, including subfolders. Because the feeds can be organized into folders, it’s possible through the settings dialog to select an individual feed or a folder of feeds.

 

The gadget also displays only the unread items from the selected feeds, making it more relevant to the user as a gadget. Further, if the user opens a feed item from the gadget’s flyout that particular item will be marked as read.

 

-John Moscarillo, Sidebar Gadget Developer