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.

DOOM hits the iPhone

Zodttd and I officially declare DOOM for iPhone to be released! From zodttd.com:
Doom on the iPhone and iPod Touch, while still a work in progress, is shaping up well. It supports the retail/commercial WAD (game data) files for Doom 1 and Doom 2, assuming you provide them. Constructive feedback is greatly welcome. More detailed instructions and videos of it in action coming soon! Meanwhile, hop on Cydia and grab the "Doom" package in the "Games" section!
I've been working hard on this since March and have recently been graced in having Zodttd help out in getting the audio and final details ready for the release. We'll keep at it, so if you have any feedback feel free to contact either of us directly. -S

How to enable Emoji systemwide

As an addendum to my last post, I decided to figure out how to enable Emoji systemwide. My findings were first posted on Twitter, but I'm putting them here for persistence. You need to edit the file /User/Library/Preferences/com.apple.Preferences.plist on the device -> whether you use a jailbreak to achieve this or merely some iTunes backup editor is up to you. Add the following boolean key as 'true': KeyboardEmojiEverywhere 
Then merely go to the Keyboards section of the Settings app, hit Japanese, and turn on Emoji. Will work for any text field/view in the OS, including on websites, AND including the titles of items on SpringBoard (e.g. if you save a bookmark to the home screen).
Have fun!

Emoji in iPhone 2.2

In iPhoneOS 2.2 Apple added a feature for Japanese devices called 'Emoji' -> basically unicode smilies that can be used in SMS. The only catch is it's soft-locked to those using Softbank as a carrier. Doh! Well, if you as a developer just wanna try out the Emoji keyboard and see what they look like, try this in your code (you must already have a keyboard visible or it wont work):
UIView *_emojiKB =[[NSClassFromString(@"UIKeyboardLayoutEmoji") alloc] initWithFrame:[[NSClassFromString(@"UIKeyboard") activeKeyboard] bounds]]; [[NSClassFromString(@"UIKeyboard") activeKeyboard] addSubview:_emojiKB];

OpeniBoot

Just last night I checked out the OpeniBoot project to see how it was getting along (OpeniBoot is an open-source bootloader for iPhone whose goal is to replace the Apple-made 'iBoot' as the first thing the device boots; this will allow the booting of custom OSes like Linux in the future).
After toying around for a bit setting up the cross-compiler and hacking at the sources to build properly for me, I managed to get it running. Major props to planetbeing for his awesome work on this.
But, the default boot menu I didn't like ;-) I decided to one-up it, so this is what I came up with. If you want the source to my edit (only), it's attached here.

TC - a new Twitter application for iPhone and MacOS

Announcing TC, the ultra-simple Twitter client, inspired by Tapulous' Twinkle, for Mac and iPhone. iPhone version coming soon to an App Store near you!

Preliminary Sales Data for App Store Month 1

These aren't the official numbers yet by any means, but this is the sales data for the first 28 since I started selling on iTunes. Speed has been available for 28 days, SameGame 21, and Nuker has only been up a single day so far; total sales for each app are shown on chart: Both Speed 2.0 and an updated SameGame are getting closer to release, and I think they will offer things to please many more users. Nuker also has an upgrade path which should see it steadily improved over the next few months, so keep grabbing the apps from iTunes and show your support! Lights Off is my next major target, and I've been very slow as regards progress on it, but it's squarely in my iron sight for now and I'll try and get it finished as soon as possible. Forget what you know about the original, the new game will have some nice improvements and extras while still keeping as lean as possible. Watch this space! Those following me on Twitter will have also been subjected to many in-development screenshots of two more iPhone applications which will hopefully see the light of day soon. Both, (a Twitter client and a Tumblr client), are very simple, single-function apps like the rest of my range. SameGame's 99c sale will be ending in four days, sometime next Thursday (GMT) so if you were thinking about getting it, now is the time to do it. SameGame has *many* new things coming along the pipeline as free updates, even if it looks a little bare right now, and its regular price will be $2.99. Hope you're all enjoying, and thanks for your custom! -S

Nuker hits the App Store

Well folks, it spent many moons in review, but Nuker has finally been approved for the App Store! Go grab it now for only 99¢/79c/59p/1.19AUD, and tell your friends! In the pipeline for next update: Windows 3.x, 95, NT 3.x and NT 4.0 support. (App Store Link)