Issues with Online Journey Planner

There have recently been issues with how the app is accessing TFL’s online journey planner, which is why it’s constantly giving alerts about “invalid arguments.” To remedy this, I’m trying to change how I access the Journey Planner API; I had previously just used TFL’s own subdomain to serve XML results, but I’ve now had to switch over to using my own web server to access the results. This process will take more than a week (I think), because I not only have to wait for TFL to get back to me, but also have a lot of other work to do.

Please be patient! I understand how important the online journey planner is, so I’ll try to patch this up as soon as I can.

Version 2.2.4 Waiting for Review

A new version of LBB will be out soon – hopefully within a week if Apple is fast with its review process! I believe I’ve finally solved the “Display Route” issue mentioned before, although I’m not sure why V2.2.3’s route display was working fine on device before I submitted the app for review.

I’ve also fixed a few bugs related to the table data not being properly loaded, as this was causing a few crashes for one or two users.

A Strange Bug => Version 2.2.3

This is kind of weird. One of the data arrays used by LBB ended up somehow being null in Version 2.2.1. As a result, route displays in V2.2.1 are not working correctly at all; they always show “Abbey Lane” instead of the stops on that route. What makes this bug really strange is that I tested every aspect of the app before submitting it to the App Store yesterday, and route displays were working fine both on device and in the iOS Simulator. However, when I downloaded the new update just a few hours ago, I noticed something was off and submitted a bug fix ASAP.

In Version 2.2.3 (I had to skip a version because of issues with iTunes Connect), I’ve added a safeguard against data files being null. This was never an issue in the past since, on startup, the app would always know when it had to update stop lists and would instantiate everything properly. Once again, I have no idea how this bug could’ve occurred since I didn’t make any changes to the update-handling code. But everything should now be fine with this new check.

I’ve also fixed bugs related to the “Near Me” and “Next Bus” features, where the app would crash instead of displaying alerts when a search/refresh failed on a background thread.

I’ve asked for the Version 2.2.3 update to be expedited by the App Review team since I think this counts as a fairly “critical bug fix.” Let’s see if they allow that.

Version 2.2.1 Coming Out Soon!

This new version of London Bus Buddy includes major bug fixes and a few other minor changes. If you continue to encounter strange crashing issues, please do send me an e-mail me at Hopefully, though, I should find out about these before you do from now on.

Major Bug Fixes

  • Fixed a bug where the app crashed on startup. I understand that this had to do with the app trying to unregister itself from iCloud backups.
  • Searching for stops should no longer cause any crashes. I’ve gotten rid of the “live search” feature where the search results would update as you typed. This seemed to be causing memory issues and general slowness, so this fix should make the typing experience more pleasant.

Minor Bug Fixes

  • Updates to route and stop data
  • Route 246 in the timetable now actually gives timetable information on Route 246 (not Route 264). The timetable website I use had made an oopsie.

Miscellaneous Features

  • Crashlytics has been added to the app. This will let me know where things went wrong in my code, how many people a specific bug affected, etc. I hope this makes bug fixing much easier for me in the future.
  • The existence of favorites has now been made more clear with the addition of an unfilled yellow star. Tap on that unfilled star to favorite a stop/route.
  • Other minor things that improve usability (table data persisting after you look at a stop on a map, additions to the “Near Address” feature to make address lookup more accurate, etc).

Version 2.2 Coming Out Soon!

A new version of LBB is now making its way through the iOS app review process! This update contains some new features, a few fixes to malfunctioning components, and an improved user interface (UI) that conforms with iOS 7 standards. I’ve shared a few screenshots of the updated UI below. Read on after the slideshow for more specifics!

This slideshow requires JavaScript.

Major (Non-UI) Changes

  • Allowed users to save both online and offline journeys for easy access and offline retrieval. Simply tap the floppy disk icon while viewing a trip’s details!
  • Allowed for integration with Google Maps app due to popular demand. If installed, all external (i.e. outside of the app) direction-finding and point-viewing will be forwarded to this app over Apple Maps.
  • Fixed an error where favoriting a route would cause the app to crash. Users can now favorite routes (through the blue detail arrow button (or info button in iOS 7)) as before.
  • Changed the “Near Postcode” stop finder to a “Near Address” stop finder (which allows for postcodes too of course). Also made this feature work once again by updating geocoding APIs.
  • Updated routes and stops to match current state of TFL network.

Major UI Changes

  • Tweaked various aspects of UI to conform to iOS 7 design guidelines.
  • Added accommodations for iPhone 5 screen size.
  • Added retina support for each image in the app.
  • Added some help options (i.e. the “?” icon in the “Alarm” and “Journey” tabs).

Minor (Non-UI) Changes

  • Removed unnecessary GPS requirement to improve device (including iPad) compatibility.
  • Added “directions” button for convenience when viewing a stop’s details (its address, etc).
  • Fixed error in offline journey caching regarding name confusion.
  • Removed non-physical bus stops such as “Hail and Ride” sections.
  • Fixed an error where tapping repeatedly on a detail disclosure button for a stop in a map view (to view its details (e.g. address)) would result in an inconsistent state.

Minor UI Changes

  • Changed the route selection search keyboard to prioritize number entry.
  • “Cancel” labels have been renamed as “Back” labels and are always in the top left corner for consistency.
  • Removed lines connecting between stops in “Display Route” option. These were often found to be inaccurate and not useful.

Once again, I’d like to thank all of my users who patiently left feedback and helped identify bugs. I haven’t had much time over the past year to work on the app, and I’m glad I’ve finally been able to address most concerns. As always, if you encounter any issues with this upcoming release or have any other questions/suggestions, please be sure to e-mail me at

Version 2.1.2 To be Reviewed!!

I thought I should change up my post titles to make things interesting. This update contains a few (relatively) minor fixes to v2.1.1, as well as other small changes. Note that many other changes were made in v2.1.1. If you’re just updating now, please see this previous post on v2.1.1 changes.

Major General Fix

  • App now starts up noticeably faster (both on first start-up and subsequent start-ups). Less data now has to be stored in memory on start-up.

Display Feature

  • Now displays multiple runs with differently-colored pins (e.g. Route 1 towards Canada Water Bus Station and Route 1 towards Tottenham Court Road are both shown while viewing Route 1 on a map).
  • You can hide and show different runs too.

Online Journey Planner

  • Fixed error with planning journeys to/from stops with “&” in their name (e.g. “Elephant & Castle”)

Offline Journey Planner

  • Cleaned up data in the offline journey planner so it actually works more often with new stop names.
  • Stop picking “by name” is now quicker on the offline journey planner

Minor General Fixes

  • Fixed bug where music in the background would stop playing when the app was used.
  • Changed default alarm sound to an alarm clock “beeping” sound that lasts 24 seconds. This applies to the “Next Bus” alarm and the “Wake me up when I reach my stop” alarm (though the latter alarm sound can be changed).

Thank you to everyone who left feedback and helped me find bugs. I very much appreciate having a helpful and constructive user base. If I missed your e-mail (i.e. I didn’t reply), please e-mail me at .

Version 2.1.1 Waiting for Review!

August 7 22:00 BST: Version 2.1.1 is out!

Don’t let the seemingly-unchanged, period-separated name of this update fool you. While version 2.1.1 seems fairly similar to version 2.1 features-wise, I have made some new, neat changes. The gallery below shows some of these changes, which I go into more detail about in the following sub-sections:

This slideshow requires JavaScript.

Next Bus

  • You can now add alarms that will go off X minutes before a bus is scheduled to arrive. While viewing a stop, simply tap on a bus to set an alarm. After setting an alarm, you can tap on that same bus again to remove or change it. Alarm times update themselves according to traffic as long you have an Internet connection. Works in background.
  • Now powered by TFL’s Countdown API. This should make this feature faster and more reliable.
  • The bus information for a stop is now automatically refreshed every 30 seconds.


  • You can now add favorite routes and stops by just pressing the blue arrow button next to a route or stop. Favorite routes and stops appear at the top of route/stop lists for easy access.
  • You can unfavorite a route or stop by tapping on the yellow star that shows up next to it.
  • Note that you cannot favorite postcodes or addresses for the Online Journey Planner.

Online Journey Planner

  • Fixed an error with clarifying stops. Now, if one of your arguments is “invalid,” you’ll be able to clarify what you meant by picking from a list of locations.
  • Changed UI for picking a stop. You can now pick a stop from a list, enter an address/postcode/POI, choose a favorite stop, choose a recent point (a point can be an address, stop, whatever), or use your location.


  • As requested, static timetables have been re-added as a tab. Require Internet connection. See the second set of tabs by clicking the right arrow along the bottom of the app.

General (Significant)

  • Lowered battery consumption by having the app completely stop monitoring the user’s location when it’s in the background (except in the case of the Alarm feature, which needs your location in the background).
  • For each stop, you can now see where buses are heading “towards.” This removes confusion among stops of the same name.
  • Stops and routes have been updated.

General (Less Significant)

  • Various UI changes for niceness.
  • Route lists have been reordered. Now, they are sorted numerically and then alphabetically.
  • Various under-the-hood changes to make stop data more consistent throughout the app.
  • Got rid of “Find Stop by Route” option since it caused inconsistencies with different data sets.
  • Connecting lines are now shown between stops in the “Display” feature (note: these take a while to load and require an Internet connection to be seen).

As always, you can contact me at if you have any questions or suggestions.