Hipster is a Windows Phone application that hooks into a topic trending aggregation service which uses top trending keywords in social network websites to display current, socially-driven news. The idea is that you want news that is relevant to you and is “popular knowledge” at the time. I basically thought of it as a tool to keep good current conversation topics on hand and to keep a general knowledge of popular culture.
I chose to work on this project primarily for the experience of creating a web service and messing around with some social network APIs. The phone application accepts either coordinates using the Windows Phone geolocation API or a place name in the form of a string (examples: California, Saudi Arabia, France). When the service gets this request it converts either the latitude and longitude of the user or the place name into a Yahoo Where on Earth ID (WOEID). This is then fed into the Twitter Top Trending API to get trends for a certain region. The service then uses the Bing API to search for sites regarding these trends. It sends this info in a structured XML back to the Windows Phone application.
Windows Phone Application
I created the service in php due to my experience with designing plugins for WordPress. I am currently not using any type of persistent database structure, but if I planned to make this publicly available I would definitely pre-aggregate trends for all of the Yahoo WOEID locales. Currently it is querying each API every time a request is made. This is obviously not the most performant, but I have found the wait time to be very bearable. I used Aptana Studio 3 to make the service. As far as IDEs go, I am a huge fan of Aptana.
I have been a big fan of the Windows Phone development experience since I started messing around with mobile development. This is primarily because of the amount of supplementary examples and elements that the team has provided on MSDN and Codeplex. For this project I used the Windows Phone toolkit (available ), as well as the static map that Jeff Wilcox designed for his 4th and Mayor app(his site is ). Windows Phone uses Visual Studio and they have a free express version with the emulator. I like Visual Studio a lot. I had a little difficulty at first with loading some of the modules from Jeff’s stuff, but that was easily remedied by looking at his documentation. I found all kinds of examples at MSDN for the GeoCoordinateWatcher and XML parser.
Web API Use Experience
I used the Yahoo geocode API to convert latitude and longitude or place name into the WOEID. Info on this API can be found at http://developer.yahoo.com/geo/placefinder/guide/examples.html. You have to set up an account with them and get a custom app ID so they can track your use. The returned xml also gives you some other useful data, so I use the city name that they return as the display name for the list of local trends. The Bing API was also very easy to use. I had to set the safesearch on as I was getting some pretty dirty responses, which I thought would hamper the marketplace submission process somewhat. This was very helpful. I was very happy with how capable PHP was in parsing the JSON and XML responses. I had no problems with the Twitter API either. Info on that is available on their .
I chose to not submit this to the Windows Phone Marketplace due to the monetization of the Bing API. With the number of queries done per request (up to twenty) it would not be cost effective as I would definitely not make that back in ad revenue. Like I said above, in order to make it publicly available I would want to add the pre-aggregation functionality, a database structure to hold that info and migrate it to a more robust hosting location. I like the app though, so I use it regularly. It was a fun project and I’m glad I had such a great experience working on it. I had this larger concept of creating clients for it on Windows 8, Android, as a website and on iOS, so I may choose to revisit this project later.