After about 20 hours, we went from very little knowledge of the iPhone platform to a pretty impressive prototype running on the device (as seen above). Now I’m taking stock of how exactly that happened.
I’m not only new to iPhone development, but also to Mac development. Xcode is completely new to me and so is Objective-C. Until now I have mainly developed on Windows using Visual Studio or web apps on IIS/LAMP servers.
I have to say I am really impressed that an IDE the quality of Xcode is included in the price of the Mac hardware. It is a solid tool. That being said, I have been spoiled with IntelliSense in VS. Xcode’s CodeSense just doesn’t match up. Auto-complete is good, but it isn’t quite enough.
Compared to other object-oriented languages, the differences of Objective-C are only skin-deep. The syntax took some getting used to. I mainly had problems with access issues of class member variables and methods. But being able to switch between that and standard C syntax is a life-saver.
We have chosen cocos2d for iPhone as our game engine. It is well documented, well supported by an active community and the price is right (read: it’s open source). It makes it very easy to set up a game structure: menu screen, game loop, frame-rate independent logic. The plethora of sample projects that they distribute give you examples of just about any functionality you could want in a 2D game. Our decision to use cocos2d was, in my opinion, the prime reason why we were able to get so much running so soon.
On the whole, at this early stage, I am very impressed with the iPhone development experience. The learning curve was not as steep as others have made it out to be. The device performs better than I expected it to under stress tests. The communities (both cocos2d and the Apple iPhone Developer communities) are active and enthusiastic. At this point I couldn’t be more pleased with our prospects.