RssReader is a sample Universal Windows Platform (UWP) app for retrieving RSS feeds and viewing articles. Users can specify the URL of a feed, launch articles for viewing in the browser, and save favorite articles to local storage. It is designed to run on multiple form factors and uses an MVVM architecture.
Note: Features in this app are subject to change.
RssReader demonstrates:
- The navigation menu (hamburger menu) pattern and screen-width adaptivity using the SplitView control and the AdaptiveTrigger class.
- The Syndication APIs (Windows.Web.Syndication) to retrieve RSS feed data.
- The DataContractSerializer class to save and restore app data from local storage.
- C# and XAML using the MVVM design pattern.
This update includes:
- A complete redesign of the UI to show effective use of color, type, images, and animated effects.
- Major improvements to layout, navigation, and window-size adaptivity to support small and large screens.
- Use of the WebView control to show articles within the app.
- The ability to rename feeds and to rearrange feeds and favorites.
We implemented the navigation and layout patterns in this sample using code from the XAML navigation menu and XAML master/detail samples in the Windows-universal-samples repo. These samples represent the current minimum recommendations for these patterns, and the RssReader sample will continue to reflect this guidance in future updates.
Please report any bugs or suggestions on the Issues list. All feedback is welcome!
If you're just interested in code snippets for certain API and don't want to browse or run the full sample, check out the following files for examples of some highlighted features:
- FeedView.xaml, AddFeedView.xaml,
EditFeedsView.xaml, and Styles.xaml
- Rich UI experiences and XAML resources for colors, templates, and animated effects.
- AppShell.xaml and AppShell.xaml.cs
- Use of the SplitView control to implement a navigation menu with a hamburger button.
- Use of AdaptiveTrigger with VisualState.Setters and VisualStateManager to adjust the navigation menu depending on the current window width.
- Code that adjusts header margins depending on the state of the navigation menu and hamburger button.
- Keyboard support and Frame navigation.
- MasterDetailPage.xaml, MasterDetailPage.xaml.cs,
DetailPage.xaml and DetailPage.xaml.cs
- Code that adjusts the display of the articles list, the WebView showing article content, and the title-bar back button depending on the current window width.
- FeedDataSource.cs and Serializer.cs
- Loading default feed data from the app package using StorageFile.GetFileFromApplicationUriAsync.
- Loading feed and article data from an RSS server using SyndicationClient.RetrieveFeedAsync.
- Loading and saving feed and favorites data to/from local storage using StorageFolder.TryGetItemAsync, StorageFolder.CreateFileAsync, and DataContractSerializer.
This sample requires Visual Studio 2015 and the Windows Software Development Kit (SDK) for Windows 10.
Additionally, to be informed of the latest updates to Windows and the development tools, join the Windows Insider Program.
The default project is RssReader and you can Start Debugging (F5) or Start Without Debugging (Ctrl+F5) to try it out. The app will run in the emulator or on physical devices.
Note: This sample assumes you have an internet connection. Also, the platform target currently defaults to ARM, so be sure to change that to x64 or x86 if you want to test on a non-ARM device.