Archive for February, 2016

Next Metro Nexus Timetable for iOS and Apple Watch Features

Next Metro from Central to Monkseaton stations

Apart from actually wanting to have a Timetable App (download) that looked good and worked well for the Nexus Metro system in Newcastle, it was also a good excuse to try out some new technologies and test out features added to iOS9 and the Apple Watch. Here’s a breakdown of the some of those features and how they’ve been implemented.

Next Metro Main Features


Complications get their name from the traditional watch industry and mean anything on the face that isn’t the (main) time. I like to think of them as glances as you glance down at your watch to see them. Now Apple also has Glances, but they’re a forgotten, (at least miss-named) feature of the watch. It’s not a glance if you have to swipe through 5 screens to get to it. We do have a glance for Next Metro, but it’s not something that gets used much.

Despite their name, Apple watch Complications are supposed to be easy. In fact, they’re not. Well they are, but they aren’t at the same time. There’s a bit to understand to get them working in the way you intend and a fair few methods that need to implemented correctly to get them working. It would be a whole blog post in itself to explain, but the important stuff is:

  • The start time for the next complication is at the end time of the previous event, not the start time for the event, important to counting down to the Next Metro.
  • Implement every callback and request (there’s a lot) otherwise your complications will stop working after a period, like when the initial returned events run out
  • Complications can be updated based on users location and external events, so keep them current
  • There is a limit as to how often you can update a complication, although its undocumented, so update only when you have to. It’s also expensive, battery wise so think about the user too. We update the Next Metro complication when a location update triggers a jump to a new journey. It’s not as responsive as it should be, but works most of the time.
  • There’s nothing saying that each complication type has to show the same information, you can customise the amount and even what you show per complication style. That way two complications can be shown simultaneously on a watch face from your app showing different information
  • Use NSDate.distantFuture() for getTimelineEndDateForComplication if you have events that never end (like a Metro Timetable).
  • It’s not possible to combine TextProviders using Swift (as of writing). Use this Obj-C workaround for now if you want say a CLKRelativeDateTextProvider combined with CLKSimpleTextProvider.

3D Touch Shortcuts

The ability to jump to a place in an App from a shortcut on its icon is one of the best new features of the iPhone6S + iPhone6SPlus devices (just behind Live Photos). It can really speed up your access, from making a quick phone call to diving right into writing a new email. Next Metro has this feature implemented but takes it further. We order your journeys based on the distance from the start station and use this information to update the 3D Touch shortcuts to link you directly to your nearest journey. This feature is not something we’ve seen being used very often, or well, but used correctly it takes the shortcuts to the next level of immediacy and relevance. To do so, simply update UIApplication.sharedApplication().shortcutItems when you get an update (location or information). Here’s a full guide to how to get this working.


The final ‘cool’ feature of Next Metro is the ability to search for your journeys as they’ve all been indexed (CSSearchableIndex.defaultSearchableIndex().indexSearchableItems) and NSUserActivity when you are navigating the App so terms like ‘metro monument’ or ‘next central’ will show up in your search results and allow you to deep link directly to the journey within the Next Metro App. The next stage for this is to update the content with the next metro information in real time to make it even more useful.

Northumbrian Water Audience Award Prize Winners!

We’re chuffed to have been awarded the Northumbrian Water Audience Award for their Innovation Game challenge. The prize was fiercely contested by the region’s games and entertainment companies and Fluid Pixel’s entry ‘Water Jam’ won over the employees of Northumbria Water for it’s social and fun ideas.

Game Concept – Water Jam
Using familiar match-3 puzzle game mechanics employees are challenged with levels that have been created from situations colleagues will face during their daily work. Each level has a target to reach that is based around the roles within the organisation that were involved in solving a problem. At its most simple level a problem could be solved with one employee, which would make the level solvable by only matching one type of colour/shape that represents that job role. A more complex level would be created from say a water leak. The engineer who solved the final problem might also have had to rely on further engineers, but also call centre agents, support staff and a number of other roles. That level’s target will be reflected by this mix of colleagues involved and create more of a challenge to complete. Although the game will be seeded with some sample scenarios, each employee with be encouraged to add their own scenarios, which become levels for other colleagues to play and compete against each other.

How has the game been designed to help employees think about their colleagues contributions?
The game asks the employees to think about the total contribution of the whole organisation to do their job, rather than just their immediate role. Employees are given a simple tool to record any task they might perform, which includes attributing contributions by their colleagues, either by role, or by individuals if appropriate. These tasks are turned into procedurally created levels that use the mix of roles as the target points for the level. By creating ‘levels’ they have to use their on job experiences and consider how the contributions of others allow them to accurately carry out their roles.

How has the game been designed to highlights the scale of effort/ number of people involved in solving a problem?
The levels include information on the job/problem that it relates to. so that any employee who plays the level has this information. A short version of this is used as a preamble to the level, with the longer version, including more detail provided once the level has been completed. The difficulty of the level will be an indication of the scale of the problem that was solved including the amount of people involved. Comments can be made about the involved employees, whether any further people would have been involved so that this can add to the conversation and encourage thinking about the scale of the involvement of employees to solve any problem. Levels can be rated on their accuracy for the number and types of people involved by other players.