Johan Sørensen

"Trafikanten" for the iPhone

Looking over my rather stale archives I realize I never wrote about the fact that I started a company together with three other guys back in march, called Shortcut.

So far, we’ve mostly spent our time on consulting and it’s still a bigger part of our core business. But we’ve also struck out into some product development, including acquiring a company that provides white-label mobile services such as SMS/MMS integration solutions. Good fun all around, including having a few employees now and a really exiting next year ahead of us. But enough of that.

Ever since the iPhone SDK was released, we’ve all been playing around with it. One of the most useful apps that we could think up for ourselves was something that combined the GPS, network connection and realtime information of some sort.

We all use public transportation between home, work and pubs. All the busses, tram-lines and subways in Oslo is equipped with a GPS that transmits information on whether they’re on time or not. This information is then in turn displayed on betabrite-like signs on various stops. However, what we really wanted is being able to get this information regardless on whether you’re waiting at the actual stop or not.

Enter the “Trafikanten” iPhone app. Using either CoreLocation, searching by name or the recently used list it fetches realtime departure info for the greater Oslo area. Being able decide whether or not to wait another five minutes before walking out into Scandinavia’s notoriously bad weather is turning out to be pretty damn useful.
Next to MobileMail, Trafikanten has turned out to be one of the most used applications I have on my iPhone.

Developing the application was a lot fun, the Cocoa Touch API quickly became familiar from when I dabbled with Cocoa on the desktop, and the framework is overall well thought out.
But there’s still a few things that turned out to be slightly non-trivial which I hope to blog some more about. Things such as how UITableView really deals with touches and how to work around it. In the case of the Trafikanten app, each UITableViewCell has information that can be slided sideways to mimic the way the public betabrite-style signs scrolls their departure info across (turns out most users we’ve tested this on understands the metaphor perfectly) as well as how we did custom font rendering, but had to cut it from the initial release due to unsatisfactional results.

But to be honest, the most important lesson I’ve learned developing for the iPhone is how much UI matters. Most, if not all, of the slightly “heated” discussions we’ve had internally has been about the UI and interaction, not the actual implementation in code. The device already looks and feels so polished that you’d feel like a fool pushing out something that looks and feels unpolished.

After release the application jumped to the number one spot in the “Top Free Apps” category of the norwegian App Store, after less than a day out in the wild.

The application is in Norwegian, and only useful in the general Oslo area. But if you’re in this area, you now as the chance to always appear superhuman by always arriving exactly when the bus arrives!

iTunes link


  1. Carl Youngblood Says:

    Congrats on a great iphone app Johan! We are also starting to develop iphone apps in addition to our Rails work here at Surgeworks. There are even rumors that iphone development in Ruby will someday be possible. Right now it’s definitely more painful than it needs to be, despite Apple’s nice SDK.

  2. Wevah Says:

    Nice job!