Creating a “Smarter” Application with Xamarin, Azure Cognitive Services, and ML.NET

Data science, machine learning, and artificial intelligence are hot topics in the software engineering industry today.  The products data scientists and software engineers are creating with these tools are very innovative and in some verticals create true competitive advantages in the industries in which they are applied.  This next generation of software products is changing how software is utilized to solve common problems in society and with proper application is adding value in areas that have been difficult reach.

As a software engineer, I would consider myself somewhat late to the machine learning and artificial intelligence game.  So I though it would be a great idea to explore these tools by utilizing them with some of the technology that I’m passionate about.  The idea is pretty simple for this exercise.  I will attempt to create a “smarter” cross-platform RSS reader using Xamarin, Azure Cognitive Services, and ML.NET.  Why those tools?  Well, I’m a .NET developer that is really into Xamarin.  Xamarin is not my technology “daily driver” but I’m excited about the value it brings to the table for creating cross-platform applications.  I’m also an Azure fan and since ML.NET is a machine learning framework for .NET, it seems these tools will give me the best shot at creating something useful.

Here is how I plan to utilize the tools:


Xamarin Used to create a cross-platform application that runs on Android, iOS, and Windows desktop(UWP application)
Azure Cognitive Services Used for searching the web for RSS feeds and applying topics (tags) to subscribed RSS feeds
ML.NET Used to create/update models used to recommend new RSS feeds based to prior application usage


I’m sure as I continue to build out features there will be other tool and technology considerations.  The name of the reader is ViewPointReader, it is open source, and tracked here: ViewPointReader  I plan to create blog posts of the progress at each signification phase of the project.  Your comments on the project and code as it progresses is welcomed and greatly appreciated.