Rebuilding CommuterPal with Azure Functions and CosmosDB

A few years ago I built an iOS called Commuter Pal. I never actually launched the app, since I tried to do *way* too much in terms of route planning and intelligent alerting. Since I didn’t actually commute myself, it was not something I could field test.

Fast forward to 2017 and I’ve been commuting for about six months now. I’ve tried a few different apps to help keep me ahead of delays, but most of the apps are aimed at the entire network and have loads of bells and whistles, so I gave up using them as they just didn’t help. Most of the time I’m already on the platform before I learn of a signal failure or ill passenger.

To coincide with the fact I’ve started wearing my Apple Watch again, I’ve decided to try and bring Commuter Pal back to life with a more simple goal; a watch complication that tells me if my route is clear or blocked.

My choice of tech is predictable – iOS (Objective-C) and .Net. This time, instead of my usual WebAPI approach, I’m going to try and build the whole thing with CosmosDB and Azure Functions. I’m not really sure how it will work, but I think that all phone interactions can be powered by HTTP bound Functions and calls to TFL for updates can be done using Timer based Functions. Throw in a queue here or there and an Azure Notification hub and we should be in business.

I’ll try and document the process as I go along.

If you’re an iOS user and commute using the London Underground, I’ll be making this app available for beta testing, so if you’re interested in taking a look, let me know!

Introducing Commuter Pal

Commuter Pal is a new iOS app that is aiming to take a different approach to a Londoner’s commute than other existing London Underground iOS apps.


Most of the current iOS apps that provide information for the London Underground are all pretty much the same. They have a status board, departure information, route planning and the a map of the tube. I’m not saying that these apps aren’t useful. In fact, some of them are really useful and I’ve relied upon one of them in particular for years. My problem with these apps is that they provide too much information.

The reality is that most commuters in London follow a pretty consistent route. In the morning they enter the network at one station, use the same two or three lines and exist the network at another location. In the evening they perform the same journey in reverse. I’d be willing to wager that this pattern applies to > 90% of London’s commuters.


Rather than overload the user with information about the entire London underground network, Commuter Pal aims to provide them only with information relevant to their commute. In addition to just the line information, Commuter Pal will also give you the status of the stations you use. Here is an example.


Only the information pertinent to the route you take is shown. The button in the bottom right will let you reverse your route, so you can see the status for your journey home.

Swiping a cell to the right will give you more detailed status information about the line or station in question.


I’m also planning on adding departure information to the app, which can be access by swiping to the left. This will give you the departure times of the next trains from your chosen station.

I also want to add detailed push notifications of delays, as well as including buses, overground and National Rail trains into your journey.

The app is in beta at the moment, but I’m looking for more people to test it out. If you’re interested in taking a look, please visit or sign up here

Location Services in Commuter Pal–thanks to iOS 6

As part of my overhaul of “I May Be Late” (now known as Commuter Pal), I’m adding in some location based services to the app. The idea is that when you move within range of a tube station, you’ll get quick access to the status of the lines and current departure times. I’m working my way slowly through the code, but this is what I’ve got so far. It’s not very impressive to see….


The bar at the bottom will slide into view when you’re near a tube station and tapping view will show you more information.

I’m also hoping to make some basic information available from the lock-screen, so you can quickly access station status with a swipe. More coming soon!