SocialViewerIf you’ve been thinking about building a Windows Phone app but weren’t sure where to start, how about this for an idea? Nick Randolph of Built to Roam has created a customizable Social Viewer app template for Visual Studio. The template is the core of an application that allows you to aggregate multiple feed such as RSS, Atom, Twitter and Facebook. It also supports Bit.ly for sharing links, caching for offline reading, trials and even advertising.

I threw together a very quick test with a few of the RSS feeds from the blogs of people on my team. Everything is configured through XML (in App.xaml). You can define a number of sources (RSS, Atom, Twitter etc) and also how those sources should be combined (or not) for display. My configuration is below – I’ve defined 4 sources and displayed these as individual blogs, combiner Dev / ITPro blogs and all together as an aggregated “all” list.

<sr:ReaderConfiguration.Sources>
  <!-- Source: Facebook, Twitter, RSS or Atom -->
  <sr:SocialSource Name="MikeO's Blog (Dev)" 
                   Source="RSS" 
                   Id="http://feeds.feedburner.com/mikeormond" />
  <sr:SocialSource Name="MikeT's Blog (Dev)" 
                   Source="RSS" 
                   Id="http://feeds.feedburner.com/mtaulty" />
  <sr:SocialSource Name="Simon's Blog (ITPro)" 
                   Source="RSS" 
                   Id="http://feeds.feedburner.com/simon-may" />
  <sr:SocialSource Name="Andrew's Blog (ITPro)" 
                   Source="RSS" 
                   Id="http://feeds.feedburner.com/technet/DeepFat" />
</sr:ReaderConfiguration.Sources>
<sr:ReaderConfiguration.Lists>
  <Social_Viewer2:ExtendedActivityFilter>
    <Social_Viewer2:ExtendedActivityFilter.Filters>
      <Lists:FilterByNameContainsString ListName="Developer" 
                                        SearchString="Dev" />
      <Lists:FilterByNameContainsString ListName="IT Professional" 
                                        SearchString="ITPro" />
      <Lists:FilterByNameContainsString ListName="MikeO" 
                                        SearchString="MikeO" />
      <Lists:FilterByNameContainsString ListName="MikeT" 
                                        SearchString="MikeT" />
      <Lists:FilterByNameContainsString ListName="Simon" 
                                        SearchString="Simon" />
      <Lists:FilterByNameContainsString ListName="Andrew" 
                                        SearchString="Andrew" />
      <Lists:FilterBySource ListName="All" >
        <Lists:FilterBySource.Sources>
          <sys:String>RSS</sys:String>
          <sys:String>Atom</sys:String>
        </Lists:FilterBySource.Sources>
      </Lists:FilterBySource>
    </Social_Viewer2:ExtendedActivityFilter.Filters>
  </Social_Viewer2:ExtendedActivityFilter>

  <!-- Optional (Advanced) - custom activity filter. Comment out previous ActivityListFilter element-->
  <!--<Social_Viewer2:CustomActivityFilter />-->
</sr:ReaderConfiguration.Lists>

It’s clever stuff and very easy to use. There’s also a comprehensive “getting started” document as part of the download. You can find it all at: http://socialviewer.codeplex.com/