Déjà – a quiz you’ve seen before

I’ve just launched a new app! It’s called Déjà, and it’s a quiz game with a twist. The basic gist is that instead of answering the question you see on-screen, you have to answer the previous one. It’s a good memory challenge, and I hope strikes the fun-infuriating balance well. It’s also pretty hilarious to watch someone play it.

If you fancy giving it a shot, you can download it here: http://playdeja.com. Or you can click here to go straight to the App Store page.

I’m always keen to hear thoughts and feedback, so do give me a buzz if you enjoy it!

Finally, here’s a quick trailer of the game in action.

iPad Smart Trackpad

On the most recent episode of The Talk Show, John Gruber mentioned his desire for a trackpad to feature on the next version of Apple’s Smart Keyboard. A while back I had an idea for how such a thing might work, without requiring the addition of a laptop-style trackpad area. My idea is analogous to ‘trackpad mode’ on the iOS software keyboard (accessed via two fingers on the iPad, or via 3D Touch on the iPhone).

Continue reading “iPad Smart Trackpad”

My sync and backup setup

It goes without saying that data backup is important. I think most people are aware of this in some way, regardless of whether they actually do it or not. With the advent of Dropbox, Google Drive et al., backup and folder syncing have become synonymous for many. For the latter, I think its key advantage is that it happens automatically — as long as a user develops the habit of putting important files into the right folder, they can trust that the helper app for whatever service they use will dispatch it to the cloud.

Continue reading “My sync and backup setup”

How much I’ve earned on the App Store


Tapt was released on 27 May, 2016, almost a year ago now. It was the first piece of software I wrote, and the first thing I released on the App Store.1 I like to regularly take stock of projects and their progress, so I think now is a good time to reflect on the experience that it’s been. If you’re a developer, or an aspiring one, with no experience, budget, industry contacts, or knowledge of marketing, I hope this might be a useful inside perspective. If you’re not, it might just be an interesting read for curiosity’s sake.

Continue reading “How much I’ve earned on the App Store”

I have been a programmer for many years

I started learning to program when I was about ten years old. For a long time I used quite an old, archaic language exclusively. This language has more than its fair share of quirks, and even now, fifteen years later, I feel as though I’m only just getting a good handle on it. One of the main reasons for this is its age. It’s been around for quite some time, and that brings with it a reassuring stability and maturity. However, it also brings legacy and cruft, which means it can take many years of experience to gain a full understanding of it. In addition to age, there are several other factors which contribute to its general eccentricity.

Continue reading “I have been a programmer for many years”

One Year In

I started learning to program in January 2016. Prior to that, I had a rough idea of some required concepts and things like basic terminal scripts, but I’d never written an actual program. I had made a few stabs at learning before, but these attempts usually ended somewhere during the first few tutorials. Now that I’ve actually stuck at it, I thought it would be good to reflect on the past year, and examine what was different this time. This is something that will be useful to me going forward, but might also be helpful to someone in the position I was in a year ago.

Continue reading “One Year In”

AirPods Latency

A few months ago, I discussed situations where Bluetooth audio latency can be a problem for users. In short, for media playback it seems to be a mostly-solved problem1, but it’s not great for realtime feedback. The Bluetooth devices I tested last time had roughly 3x the latency of a wired connection (~80ms vs ~230ms). For realtime sounds like keyboard clicks, VoiceOver prompts and game sound effects, whose entire point is to be concurrent with visuals, this really detracts from the user experience. As before, I also have a personal interest in this issue. My app Tapt relies on low audio latency; it involves tapping the rhythm of a song, and high audio latency makes it a much less pleasant experience. My hope was AirPods would be the first sign that this issue was beginning to improve.

Continue reading “AirPods Latency”

Tapt v1.5 and Ads

Tapt has been updated to v1.5! The biggest change this brings is that the game now gives you access to all level packs for free. There’s now no need to purchase anything (unless you want to, of course…). Another big change is that level data is now loaded from a server. This means I can add new content without having to update the entire app, submit, and wait for App Review. Much faster!

Continue reading “Tapt v1.5 and Ads”