Phillip Caudell

Project Transporter

For those out there who use public transportation, you’ve at some point experienced the pain of answering the simple question of:

“Blimey, when’s the next bus?”

There are apps out there at the moment that help with this, but they all have one fatal flaw: they make you choose a bus stop first.

This may seem like a trivial detail, but if you’re in a town centre with 20 stops nearby, and you’re unsure which one your bus calls at, you have to resort to pecking around the map loading up each stops departures. It’s less than ideal.

Enter Transporter

Transporter works differently. It uses your current location to return bus routes, not stops. This means you can open it up and immediately get a list of departures from your location, regardless of the stop it’s at. No need to hunt around for the stop. No tapping to select things. Just departures.

You also get a preview of the route the bus will take, as well as alternative departure times.

And what iPhone app in 2015 would be complete without an Apple Watch extension (courtesy of Justin Bieber look-alike Sam Houghton).

Transporter has been a project I’ve been working on periodically for the past 3 years, but thanks to HackBMTH this weekend I’ve finally had a good enough excuse to push forward with it, and get something in a state to actually demo.


Whining about busses with Sam Houghton at HackBMTH, Saturday 7th February, 2015

So why haven’t you released this already?

Public transportation is hard. Privatisation of the industry has meant data is hard to come by. There are services out there such as Transport API which do a fantastic job of collating multiple data sources and making one API out of it. However, the API works on a stop by stop basis - it can’t return nearby routes like Transporter requires.

Thankfully Traveline do provide a central repository of UK bus data, though there is a catch - there’s no API. The data is made available through an FTP dump of several gigabytes of TransXChange XML files. TransXChange whilst comprehensive is tricky to parse and even trickier to understand.

To work around this I created a TransXChange to GTFS conversion tool. GTFS ( General Transit Feed Specification) was originally developed by Google, and is a CSV based transit format which is much easier to parse and query. Most American transit agencies are now using this format, and it’s my hope the UK will follow suit.

I’m no TransXChange expert - far from it - which means there are likely errors in the conversion process. The UK is big, and busses do weird and quirky things that I may not have accounted for. Combined with the fact I don’t have much time to work on this project anymore only compounds the problem. I also don’t want to be running a big complicated API.

I’m open sourcing Transporter

So instead of Transporter collecting dust and being another project I start and never finish, I invite the community to work on Transporter with me. I would love to see bus data open and freely available for everyone.

The project will be available on GitHub, and will consist of the API, the conversion tool, and the app itself. There’s still some work I need to do to make it ready to publish, but I’m hoping to get that done in the next couple of days.

I’m excited to see what everyone can do with Transporter!

UITableView is dead, long live UITableView