Building A Feed Reader: Episode One
I depend heavily on RSS. To find out what’s going on in general and in the technology sector. I have subscribed literally to hundreds of feeds. Needless to say, I need a tool to better help me manage all this information.
For a very long time I have been looking for a good RSS Feed reader. What do I mean by a good RSS Feed Reader?
- Desktop application. Google Reader / Bloglines / NewsGator need not apply!
- Stable. ‘Nuff said.
- Fast. ‘Nuff said.
- Portable. Can carry around on my flash disk. And no, synchronization with NewsGator/Bloglines will not do
- Lightweight.
- Newspaper View AND Item View
- Offline Reading.
- Quick Search, integrated right into the main UI.
- Smart/Search Folders.
- Support for downloading enclosures.
- Filters to allow view of Read/Unread/All messages
- Groups items by custom groups — Day, Month, Category, etc
- Allows me to flag articles to return to later
- Allows me to tag articles with my own tags.
- Can easily customize display with styles and themes.
- Exports content to PDF.
- Works quietly in the background and notifies me via desktop alerts.
- Can discover feeds on web pages.
- Keeps track of update frequency, allowing me to purge feeds that are rarely updated.
- Allows me to have custom folders to store feeds.
- Allows me to nest the custom folders.
- Displays links to comments (where available)
- Differentiates read from unread items
- Offers various reports and charts.
- Feeds per folder
- Subscribed Feeds
- Most recently updated feeds
- Most popular generator software (blogger / wordpress / movable type / feed burner / etc.)
- Tags per feed
- Tags for all feeds
- Saves bandwidth by making use of conditional get.
- Imports and exports to OPML
Believe you me I have looked high and looked low. I have tried them all out. FeedDemon, FeedReader, Snarfware, RSSOwl, GreatNews, SharpReader, RSSBandit, RSS Reader, BottomFeeder, Outlook, Omea, Internet Explorer, Firefox, Thunderbird, Opera and countless others I forget right now.
They all have something or the other missing from the list, and every time I button down and pick one, after a while I come to resent what it is that I have sacrificed.
And so I did the only logical thing.
I started writing my own.
It has been much easier than I thought, to tell the truth. The .NET Framework is very powerful and Visual Studio 2005 is an excellent tool for development and debugging. In a couple of days I’ve been able to put together the skeleton of the application. Here are some screen shots of what is currently working so far
Main Screen
Subscribing To A Feed
Discovering Feeds
Folder Management
Feed Properties
Not too bad for a couple of day’s work. Hopefully with some free time I can put in all the features I want in a fortnight or so and eventually share it for like minded individuals to find the bugs.
Note that I’ve not paid too much attention to the look and feel. That, naturally will be a distant last.
In the process of writing this application I have had to consult MSDN and Google heavily to overcome some of the problems that i have run into. I have also learnt quite a bit, which is the purpose of this series.
I hope to share with you, dear reader, some of the challenges I have run into and how I have solved them. A great man said we see far because we stand on the shoulders of great men. Hopefully after I have shared some of my problems and thoughts, we will all be the wiser for it.
I hope to also capture my logic in moving from an idea to a design to a working application. Ideas, as ever, are most welcome.
Stay tuned for Episode Two: Understanding The Problem(s)
NB: Those about to start being outraged at my re-inventing the wheel, hold your horses until we get to Episode Two!














Modified

ragundo says:
Added on November 1st, 2007 at 9:38 amLooks very promising.
If you are using “standard” winforms controls, surely it will be run in a Linux/Mono environment, that will be great.
Rad! (blog author) says:
Added on November 1st, 2007 at 10:49 am@Ragundo: Yes, one of the goals is to use standard controls wherever possible. So far I’ve not seen a need to get any off the shelf component