“My RSS Reader” was built from the ground up to be easily extended.

One of the ways in which this can be seen is to look into the SyndicationFeedImpl.pas file. A post belongs to a blog, also known as a feed. A feed, then, belongs to a category. A post is defined as an entry on a particular feed. A category can contain many feeds.

A feed can be parsed by a registered parser. Each time a click happens on a feed in the feeds treeview, a call to FindFeedParser is made. FindFeedParser iterates through all the registered parsers, and asks each parser whether it can handle the given feed. If it can, then that particular parser is used to parse that feed from then onwards.

How do the parsers register themselves? Each parser is isolated in a file of it's own. All parsers descend from the TSyndicationFeedParser base class located in the SyndicationFeedImpl.pas file. When “My RSS Reader” starts up, all parsers register themselves with the feed parser factory.

This modular design allows “My RSS Reader” to subsequently gain a plug-in architecture for feed parsers, which will be examined in a future entry.