On Speed, Development & Design

Speed was an app that was developed in an amazingly short time, mainly as a learning experience for creating an app and distributing it on the App Store. It wasn’t the first app I’d created at all, but it was my first foray into official distribution. I’d looked around the Location APIs for the iPhone system and had quickly realised that one could create a simple speedometer application using the GPS data. In fact, I had found an unpublished API in iPhoneOS 2.0 that made it even simpler! CLLocation had a hidden property called ‘speed’ that could tell you the instantaneous speed that the GPS receiver registered when a location was found. I originally planned to only write the app up for my own use, but then I started hearing reports of applications using unpublished APIs being accepted into the App Store. I was intrigued, as this was clearly against the guidelines. I figured I might as well submit Speed; worst case scenario is they remove this unpublished API and I had to calculate the speed myself from the location data (no biggie at all, I had written a fallback method in the application should that occur so that the user wouldn’t be affected). [sidenote -- One thing I hadn’t counted on was Apple actually making the CLLocation.speed property a public API (which they did in iPhoneOS 2.2), BUT there was one major problem. They’d broken it! Even though the API was now officially available for use, it actually gives completely out-of-whack values for the speed (a rough 1/3.616 of the actual speed). This is the reason Speed was broken for a while on 2.2, but I pushed out a 1.0.5 update to try and fix that (absolutely) obscure bug. So, it just goes to show, if you use unpublished API and even if you write a fallback mechanism in case said API goes away, Apple will still find a way to make your app break =)] Since Speed was so simple to code (merely a few lines at the beginning!) I spent more of my time working on the UI and icon. I’d decided I wanted some sort of dial on the main screen that would display the speed in a large font, so I set to work! I normally do all of my own artwork (asides for Adam Betts’ incredible art for the upcoming Lights Off - yes it’s still coming!), so I launched myself into Photoshop and made a convincing-looking dial in a few minutes. Shortly after collaborating with Adam I was browsing his website and came across an awesome wallpaper that had a stitched leather look; I tested it out and found it made a lovely-looking dashboard background to my dial, so Adam let me use it and, with that, my UI was ‘complete’. I laboured over the application icon a bit more, and didn’t actually finalize the design until version 1.0.1 of the application. Originally I attempted to use the leather image, which seemed nice in theory but soon proved to look awful on the iPhone home screen. It was the needle that influenced the design going forward, and I played around with different layouts until I finally decided upon the centered black dial. The third icon from the left is what shipped with Speed 1.0, but I wasn’t happy with it and, looking around at the Apple icons for inspiration, I finally settled on the final icon as you see it here. I’m very proud of my icon, and, in fact, so are Apple it seems! It has appeared in an O2 UK print advert and is currently shown on http://www.apple.com/iphone/ in the main graphic on that page, and there are other big things a-comin’ but I don’t think I’m allowed tell you yet! [sidenote -- Icon rule #1: never use Apple’s built-in gloss if you want to stand out Icon rule #2: consider subtle texturing to your icon’s background; “Filter” -> “Add Noise” (monochromatic) in Photoshop leaves you with a rather pretty grain effect Icon rule #3: keep it simple, stupid!] All-in-all, I’m very happy with how Speed turned out, and I can’t wait to reveal the actual Speed 2.0 to you all in the new year! I'm really thankful for all the great feedback from users, and I do listen! Please mail me or comment on this blog to actually get me to see your feedback, as it's impossible to go checking the feedback on thirty different iTunes Stores.


  1. this guy is tooo good its fustrating at times. :P
    and believe me he listens to you guys feedback
    im gonna thank you as i have witnessed some of the feedback and how it is and has made Speed 2.0 phenomenal.
    steve mate your genius
    Merry Christmas ALL :)

  2. Do you have any tips on where to learn to whip up satisfying UI parts in a couple of minutes like you did with the dial?



  3. Not really Nik! I just try and reverse-engineer cool pieces of art in my head so I can attempt to recreate them.

    Though any Google tutorial might help!

  4. Hi Steven,

    Thanks for speed, I really like the app. I also very much liked the leather-and-stiching-background that has now disappeared! I mean; white plastic? Come on! I can't affort a full leather trim in my car so I want leather on my favorite spedometer.

    So get stiching steven! Thanks in advance!