Calculating App Store Spend

I like buying apps. Perhaps it comes from being an app developer myself, but I like to pay for apps that I enjoy and that I get value from. Designing and building an app takes a huge amount of work, and I hope that paying for an app means that it’s more likely to receive updates in the future.

I’ve recently had a couple of conversations with people who have never paid for an app, which made me curious about just how much I’ve spent over the years. Unfortunately Apple provides no easy way to see this information. but they do send out regular receipt emails when you make a purchase. I’ve always archived these emails in my Gmail account, so I put together a small script to parse them and produce some figures. I mentioned it on Twitter and a number of people showed interest in it, so I thought I’d reproduce it here.

The steps below outline how I retrieved my own emails and ran the numbers; of course, everybody’s setup is different but hopefully you’ll be able to adapt them to your needs. I use Gmail as my email provider and OS X as my operating system, so all of the instructions are specific to that setup.

  1. First of all, you’ll need to tag all of your iTunes receipts with a unique tag. I have a filter set up for the following search, which tags all matching emails with iTunesReceipts:

    from:(itunes store) subject:(your receipt no.*)

  2. Next, download all of your iTunes receipts as .eml files. I used Gmvault to download mine. Grab the tool and extract it. I used the following command to fetch the relevant emails:

    gmvault sync --type custom --gmail-req "in:iTunesReceipts" your_email_address@gmail.com --no-compression

    By default, Gmvault will download the emails into a directory named gmvault-db/db in your home directory.

  3. Nowcd into the Gmvault db directory. You can then either manually download my parser script from the [Github Gist] and run it, or download and run automatically in a single command:

ruby -e "$(curl -fsSL https://gist.githubusercontent.com/frosty/b6d1615dab5544fc22b0/raw/e4e3b48b032079e188c8d3f246b2609b83995558/parser.rb)"
  1. The script will first ask for the currency symbol your emails will use; it defaults to ‘£’ if you just press enter. It should then output a count and combined spend for iOS apps and in-app purchases. It’ll also create a tab-separated file named Apps.tsv, which will contain a list of all of your purchases. You can open this in a text editor or a spreadsheet app like Numbers if you want to.

Notes

  • The script could probably be much neater, but I don’t work with Ruby very often and I just threw it together in an evening!
  • I make no guarantees that this script catches everything or that it doesn’t pick up any false positives. The iTunes receipt format is quite awkward and inconsistent and has changed quite a lot throughout the years. Based on my own receipts, however, this seems to do a pretty good job.
  • If you have a suggestion for ways to improve the script, feel free to fork it on Github!

So how much have I spent on apps? Turns out, it’s rather a lot. But when I average my spend out over the life of the App Store, and consider the amount of value and enjoyment I get from the various apps and games I’ve bought over the years… I think it’s a pretty good deal.

Multitouch with Haxe NME

I’ve been getting really interested in Haxe NME recently. Haxe is an open source cross-platform language, and NME adds a display framework on top of that which is modelled very closely on Adobe’s Flash API. The beauty of it is that you can write one codebase and then compile it to native code for Flash, HTML5, Windows, Mac, Linux, iOS, Android and more.

Haxe NME screenshot

I was trying to get to grips last night with handling multitouch input using NME, and I struggled to find a decent example. I managed to get something working and so I put together an example myself which I’m sharing here. It’s a simple example which tracks each distinct touch point and displays a randomly coloured circle beneath that touch. I’ve tested it on iOS and Android.

Grab the source from Github

Windows Phone 7: Twitter Apps

The Lowdown

I recently picked up a Nokia Lumia 800 phone, running Windows Phone 7. In short: I’m a geek, I like trying out new tech, I’ve had an iPhone since mid-2008, and I really liked the look of what Microsoft has done with Windows Phone 7. I’m working on a full review, but as I’m getting to grips with the phone and the OS I figured I’d write up some of the issues I run up against.

Today: finding a Twitter app.

Continue reading “Windows Phone 7: Twitter Apps”

Ascension: Chronicle of the Godslayer

Ascension: Chronicle of the Godslayer is a card game that has some similarities to the popular Magic: The Gathering collectable card game. My first introduction to Ascension was through its well-received iOS version, which I liked so much that I went straight out and bought a copy of the physical game too1. This is primarily a review of the iOS version, but both versions play exactly the same and are equally enjoyable.

Ascension is a deckbuilding game designed by a former Magic Pro Tour champion. I’ve played a small amount of Magic in the past but was put off by the amount of pre-game preparation that is necessary and the sheer number of cards that are available (although I realise that it’s exactly these elements that draw many people to the game).2 I think Ascension struck a chord with me because it’s reminiscent of Magic but (in my opinion) improves upon it in a number of ways.

Continue reading “Ascension: Chronicle of the Godslayer”

Codify

I love the iPad. It’s casual, immediate, and more intimate than a laptop ever will be. There are wonderful apps available for most activities you could want to do on an iPad: reading, writing, drawing, listening, watching, playing; the list goes on. Much of the time when I want to perform some task (or just relax), I will now reach for my iPad instead of my laptop if possible. However, until now I have been unable to use the iPad for one of my favourite pasttimes: programming1.

Enter Codify. Codify is a new iPad app that lets you create simple games, prototypes and simulations directly on an iPad. You write code in the Lua language using a fantastic code editor (more on that later), with an API that’s very similar to Processing. You can then run that code straight away; play your game, experiment with your prototype, tweak your simulation. It’s fast, easy, impressive, and fun.

Codify project selection screen

Continue reading “Codify”

Bleep Beep Beep Bloop: A List of Great Videogame Music

I love videogame music. Rarely a day goes by where I don’t have some game tune stuck in my head (Mario and Mariokart being the worst offenders). I find a lot of game music is great to work / code to, as it’s generally upbeat and devoid of lyrics. I thought it’d be fun to put together a short list of my favourite albums and share it here. I’ve put in download / purchase links where possible. For those without a link, you should be able to find them easily enough with a quick google.

Continue reading “Bleep Beep Beep Bloop: A List of Great Videogame Music”

Frosty’s 2010 Awards: Books, Games and Movies

I thought I’d write a quick roundup of the movies I’ve seen, games I’ve played, and books I’ve read this year. Note that not everything on this list may have been released this year, but I experienced them for the first time this year. Feel free to just skim the headlines if you can’t be arsed to read the whole thing. Without further ado…

Continue reading “Frosty’s 2010 Awards: Books, Games and Movies”

Minecraft

I’ve recently become somewhat addicted to Minecraft – the hit indie game that’s currently earning its creator over £100,000 a day. I find it quite hard to summarise what I find so brilliant about Minecraft, so I’ve collected together a few links to articles or videos that give a good idea of why Minecraft is awesome, and why you should be playing it right now.

A lush new world in Minecraft. That grey pixelly bit at the front is a block of stone that I'm holding. But don't look at that - look at the incredible view and that awesome waterfall!

Continue reading “Minecraft”