I spent a good amount of time yesterday creating a mobile Inversion client for iPhone. The funny thing is, most of my time was spent on some really stupid things not really related to the new material I'm working on. And there is, in fact, a lot of new material I'm working with. For example:
- iPhone Framework
- Interface Builder
- Socket programming
All in all I'm pleasantly surprised by the dev experience. Objective-C 2.0 is actually quite nice (properties in particular), and Cocoa works beautifully (keep in mind I've never done any GUI programming before). In under 200 lines of code, I basically have a "blind" client, in that I can register with a game server and send new GPS coordinates any times the phone detects a change. Our other client, using Windows 5, probably uses that much just to register with the server.
As a note, one thing that really killed a lot of time for me involved Interface Builder. For some reason, the default gui file (nib file for those with Cocoa experience) already had a control layer in it, which was blocking all gui events from reaching my app. It was quite surprising for me to find out that just deleting the base layer fixed my gui code, something I had been trying to do for a few hours saturday.