Over a million developers have joined DZone.

Building CTA Bus Tracker for WP7 – Part 1

DZone's Guide to

Building CTA Bus Tracker for WP7 – Part 1

· Mobile Zone ·
Free Resource

Lots of public transit users at Clarity, and we’ve been working on a WP7 bus tracking app for both CTA and BART (San Fran’s mass transit agency and home to Clarity’s west coast spread) for several months…several years if you count Steve Holstad’s excellent (and since retired) WhereTheEl crowd-sourced transit tracking app and numerous not-quite-ready-for-prime-time prototypes on the iPhone. We were saving up our latest effort as the basis of a multi-post guide to developing a WP7 app, what happens when the developers start before the designers but Matt Hidinger’s post about *his* cool WP7 bus tracking app pushed up our publication date! Looks like we’re playing Elisha Gray to his Alexander Bell. Fortunately, I think this town is big enough for the both of us…

So here’s post 1.

The “Design Last” Approach

Being a full service creative and engineering shop we have a myriad of projects and timelines to hit. We win projects that require engineers and designers to work independently and simultaneously.

In a perfect world, our team could go through a process of brainstorming, info-architecture, wire framing, user testing, skinning, iterating…etc. before executing on that vision. In reality, we almost never get to work within a timeline (or budget) that allows us to stretch the design process until every pixel is perfectly placed. Such is life.

Sometimes, the development staff – often as a part of learning new technology – start building apps against the latest API or platform and come to the design staff: “I have this great app,but it could use some design love”. This is what we call the “Design Last” approach. The team jumps into skinning/styling within the constraints of the app’s functionality. We don’t skip the usability/IA aspects,but we do them in the opposite order and with a different context.

I’m not necessarily promoting a “Design Last” philosophy, but it often helps getting prototypes and proof of concepts out the door, and all the design in the world can’t predict the “right” answers to some software problems. Fortunately, the Microsoft development stack makes this type of work relatively painless.

Bus Tracker v.00001

With the all the hype of the WP7 platform our engineers have been pumping out some really cool stuff.  Several months ago, the CTA released an official API. Some of our developers went to work, and we find ourselves in the “design last” approach. Below is a video showing an early release of a bus tracker proof of concept. In the following posts I’ll walk through the process of transforming this functional application into a WP7 app and how we meld in the Metro design, information architecture, usability concepts, etc.

Key Features

Some features we’ve been kicking around that will hopefully find their way into the final release of the app:

  • View all routes, or routes near your current location using WP7′s location API
  • Glance-view live tiles for saved stops arrival times (stops you use frequently)
  • “My Ends” – Find your way to a destination. Choosing “home” will find the nearest stop to your current location and find the fastest bus route(s) to your destination.
  • Ability to show all stops, or stops nearest you
  • Traffic and Transit alerts
  • A Compass to help you orient yourself

Sneak peak of Part 2

In my next post, I’ll highlight some of the key steps taken during the design phase and how they aligned with the heavily transit inspired “metro” design principals. And I’ll give my unbiased opinion on why I think WP7 is the BEST platform for the CTA bus tracker.

Below are a couple of images of some of the initial wire framing and flow documents that will eventually become the blueprint for the enhanced functionality and interaction.



CTA RIDERS:  What is one feature that you wish you had in your existing CTA app?  Your feedback could find its way into the next WP7 CTA app…


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}