Mar 24 '10

Retrieving iPhone Serial Numbers

I was recently asked to create a small application that would retrieve the serial number from a connected iPhone (or an iPod Touch for that matter). I thought it would be a trivial task until I realized that the UDID isn’t the same as the serial number. It didn’t take long to get the UDID from the device with IOKit but getting the serial number wasn’t an option. I told my client that it wasn’t ‘possible’, meaning it’s not possible unless you are willing to do some hacking and reverse engineering. However I usually don’t give up that easily so I started looking at the iPhone Configuration Utility from Apple and found out that it uses a framework called MobileConfigKit.framework. After poking around with class-dump I decided to try to use it in my own app. I was able to get it working by changing the @executable_path using install_name_tool and overwriting a few methods.

I would of course never ship an app using a private framework by Apple but since it was only for this particular client I didn’t feel too bad.

If anyone knows a better way to do this I’d love to hear about it and also if you’re interested I might be able give you some more hints.

Feb 18 '10

The New Platform of Choice

Regardless of people’s opinion on the App Store and the iPhone you can’t deny that it has had a huge impact on Mac development in general. When I started out roughly four years ago I was utterly frustrated when I found out how few people were doing Mac development. There were hardly any books (except for outdated ones) and very few good resources except for Apple’s own documentation.

Now however I see new books being published all the time and the internet is flooded with questions and answers about both Cocoa and Cocoa Touch development.

You can’t dislike that.

Feb 11 '10

Cleaning Up

When creating a game you are usually working with a lot of resources and often you’ll be using dummy resources until the illustrator or the sound guy finishes his assets. This is fine, but as time goes you might end up with a project full of unused crap that only takes up precious space in your final product.

Before we submitted our latest game, Soft Freak Fiesta, I went through the project and removed everything that wasn’t used anywhere in the game. I was able to reduce the size of the game from 27 MiB down to 16 MiB. As you can imagine this is not the most fun task to do not mentioning that you’ll be scared to death that you’re removing something that you really shouldn’t.

So as a lazy programmer I wrote a Ruby script that scans an Xcode project and tries to find those unused files.

The script is very basic and by no means something you should rely on but it should give you some pointers. Keep in mind that it does not scan your Nib/Xib files so if you’re using UIKit/AppKit it will output false positives for files that are only referenced from your nibs.

To use it you point it at your project file and it should spit out a list of all files that are included in the project but not referenced from any source file. At the moment it looks for wav, png, pvr and caf files and searches h, m, c and cpp source files but you can of course customize that.

If you improve it (e.g. to scan nibs as well) I’d love to hear about it.

Get it here.

Dec 16 '09

Soft Freak Fiesta

I’ve been quite busy working on our latest game. It’s called Soft Freak Fiesta and is a multiplayer game for the iPhone/iPod Touch. It’s out now and you can get it for free if you act quick.

Soft Freak Fiesta on the App Store

Mar 08 '09

Peel 2.0 Sneak Peak

I’ve been working very hard on the next version of Peel for the last few days. It’s been more than a year since I started a new fresh project for Peel 2.0 and unfortunately I haven’t focused enough on getting it done. I’m really feeling good about this now and I think it’s coming along strong this time. Here is a sneak peak of the current state of the app.

Peel 2.0

If you’ve used the current version of Peel, you should be able to see a lot of improvements.

Here is a list of few of my favorite new features:

  • RSS Support
  • The ‘web’ feature has now been replaced by a RSS-view displaying the post containing the song
  • Folder structure
  • Smart lists (two showed here, ‘Today’ and ‘Unplayed’)
  • Clicking a song in the RSS-view plays the song
  • Currently playing song is highlighted in the RSS-view
  • Refreshing blogs has been sped up a lot
  • Last.FM support

Hope you like it and don’t hesitate to leave a comment if you think something is missing.

Ps. It should be noted that this is not just a Photoshop mock-up and some of the interface elements will probably change.

Feb 12 '09

How We Created an iPhone Game

Interesting post describing the process we go through when creating a new game.

This means that ideas are very important to us. Polished game mechanics, innovative features and games that fit the intended platforms perfectly are all things that we look to incorporate in an initial idea. A lot of our time is spent on ideas. Everyone can participate and pitch their ideas. At any given time.

May 16 '08

Cocoa Programming For Mac OS X - Third Edition

I just received the updated version of Cocoa Programming For Mac OS X written by Aaron Hillegass. I already owned the 2nd edition so I’m quite familiar with the book. I strongly recommend this book for anyone wanting to start developing for the Mac.