Tuesday 15 January 2013

M25: My First WP8 App - Part IV

Concurrent with my UI experiments, I began researching sources of data.  This work ended up consuming the most amount of time.  I had a number of potential candidates, including the RAC and Twitter, as well as the Highways Agency and Transport for London.

In recent years, the UK government has invested in opening up transportation data to the public.  This may explain why we see a growing number of public transportation (bus, tube, National Rail,etc) mobile applications.  I spent several days exploring all the data feeds and schema, looking for something suitable.  In addition to wanting to keep my app small and lightweight, I did not want to be forced to pull down unnecessary data and process it on the mobile device.  This was a case of too much information.  Certainly forcing a mobile app to pull down 25MB of unfiltered data was out of the question.

Twitter feeds were also on the table.  However, Twitter has recently announced upcoming changes to its usage policy, such as deprecating RSS feeds.  As well, relying on a Twitter feed puts me at the mercy of a third-party, which could change its privacy settings, effectively putting me out of business.  I also did not want to dive into the whole oAuth area at this time.  So, I backburnered Twitter for version 1 and ended up going with the Highways Agency RSS feeds.

Highways Agency (HA) RSS feeds were ideal for my requirements, offering:

  • Easy to ready XML schema
  • Small, lightweight payloads
  • Offered feeds specific to the M25

I ended up using three HA RSS feeds:

http://hatrafficinfo.dft.gov.uk/feeds/rss/CurrentAndFutureEvents/M25.xml
http://hatrafficinfo.dft.gov.uk/feeds/rss/UnplannedEvents.xml
http://api.hatrafficinfo.dft.gov.uk/RSSFeeds/BreakingNewsRSSFeed.aspx

A combination of these three feeds gives me all of the planned events for the M25, as well as unplanned (e.g. accidents, congestion, emergencies, etc).  So all I had to do is pull this data down, parse and process and update my UI.   In the end, a relatively straightforward operation.

In sticking with my original core functional goals, I had my reliable source of data.  I can still introduce other data sources in future versions, including images, enhancing the app and its usefulness.



2 comments:

Rimu said...

Great app idea. I like small, clearly focussed apps that do one thing well.

If the amount of data is an issue, perhaps you could have a server download & filter the data, making a subset of it available to your mobile app via a web service of some kind?

rgramann said...

Hi Rimu, good to hear from you. Hope you are doing well. Regarding the data issue, yes, and at one stage I started putting together some REST services to do just that. Fortunately it was not necessary, the three RSS feeds I use average about 10-15k each, which is smaller than most web pages.

Send me an email with an update...

Cheers

Ron