Speed v2 & Heads-Up-Display

A review on the Australian App Store by user 'willnick' sparked my imagination:
Can you please add the feature to reverse the display so you can leave it on the dash and use the reflection in the windscreen as a "heads up" style display. Then it would become the perfect addition to the car.
You know… that's not half bad. I had planned to have this feature hit as a surprise with 2.0, but it's Christmas, so what the hell! Here's a sneak peek: In testing it's proved very legible and usable, and silently floats on the windscreen without being distracting. I'm currently thinking about different ways to make other subtle HUD-style mirrored applications for people who use their iPhone in the car, so watch this space! If you have any good requests, feel free to comment on this post.

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.

Lights Off - Android

Spent a spare hour or two wrestling with learning Java, but eventually got Lights Off up and running (minus the animations so far) on Android, fully playable.

We'll see where this takes me when I get my actual G1. =)

Just one pixel!

Just had a major breakthrough with a stupid API on iPhone. You see, if you set an image on a UIButton, and then rotate said button, you end up with a nasty jagged edge along the top only! This had been bothering me ever since Stack 1.0, and I'd never thought to investigate. The actual problem is the clipping rect used by the system is sharp and aliased. However, if you move your images down just a single pixel in Y, you fix it! An albeit verbose way of setting an image to a button, I used: As a result, I now have smooth icons =) NB: Jailbreak developers: For the record, do *not* use the [UIImage drawAtPoint:] API, it leaves garbage at the side of the image. Use the official drawAtPoint:blendMode:alpha: and you'll be alright. This is officially my favourite new feature in Stack v2.1.

Android Dev Phone 1

As no doubt many of you have seen, Google have released a developer version of the HTC G1 phone available to all Android developers completely unlocked and allowing unsigned firmware. I tried to order one this morning, but Ireland isn't a supported shipping country. What gives! Luckily Dallas Brown was kind enough to order one for me, so hopefully I'll get my Android Dev Hat on really soon! I gotta say, I am *really* looking forward to it.

Doom / TV-Out / Nostalgia =)

I had been watching Erica Sadun's awesome TV-Out work on the iPhone with great interest, and in my testing I decided I should have some fun. So, without further ado, here's Doom running with TV-Out enabled on an authentic monochrome Apple II monitor (yes, this is what passes for 'fun' around me). I have no idea if/when actual working TV-Out will be added to the public Doom build, but I'll see what we can come up with! -S

Speed Featured in O2-UK Print Ad

I woke up this morning to find a message in my inbox telling me one of my app icons was in the newspaper! After an afternoon of searching, I found it in The Metro on page 6. It's there, just to the left of the SMS icon on the home screen =) What tickles me is that my icon has greater prominence than Twinkle, which is one of the tiniest. Boo-yah! (I should *really* get Speed fixed for iPhone 2.2) Update: O2 have added a scan of the ad to their Flickr pool.