I spent most of today giving a training course on iPhone development at FullSail. I think the presentations and tutorials I put together were fairly useful. The purpose of the class was to take someone from never touching iPhone development, and some of them never touching a Mac, to getting a few simple applications up and running in a short amount of time. I covered just the absolutely required objective-C constructs and explained more about how memory allocation works as I went along. The whole alloc/init/retain/release thing is difficult for people just starting out to really grasp.
As nervous as I was going into this, I feel it came off pretty well. Now to get back to my comfy zone with DirectX =^..^=
Today my latest project went live, Cat Calls. An adorable little application that will both annoy your pets, entertain your friends and look cute doing it.

You can find more information at my company website.
I’m moving all my new handheld development away from the iPhone. The app store is too flooded with junk applications causing consumers to lose any confidence in the quality of software they find there. No matter how much time and effort you spend, the drive for a lower price point makes development difficult to justify. There are also instances of some “developers” flooding certain app store categories with fifty of the same application. This is what happens when you get that gold rush mentality.
Microsoft announced their application store the other day and so far I like what I’m seeing. Microsoft restricts the number of applications a developer can release in a given year with each additional application requireing more of a financial investment. I’m hoping this will eliminate the overpopulation of poor quality seen on the Apple app store.
I’ve been spending this evening getting multithreading asset loading working. I’ve converted a lot of my iPhone code to C++ and keeping certain things as Objective-C objects only when I absolutely have to. This of course came back to bite me when trying to spawn off loading in a separate thread. Since the NSThread code expects a class object inherited from NSObject(id), it crashed everytime I passed it one of my C++ objects. I finally realized this and created a class wrapper whose only job is to be called by the thread and initiate the loading of the regular objects. Sure, it’s another layer, but now things are playing nice with one another and I can get on to the actual fun bits of the code.