Monday, May 24, 2010

IPhone Programming, where to start---REBOOT

I've previously posted a where to start before. This is when I had just started doing IPhone programming and I think the list of books would still stand today as being great books to learn from to start programming on the IDevices. Beginning iPhone 3 Development: Exploring the iPhone SDK, Programming in Objective-C 2.0 (2nd Edition), Cocoa(R) Programming for Mac(R) OS X (3rd Edition) are all great starting points to get to programming quickly on the IPhone SDK.

Since then, I've added many other books to my repertoire. Some that I didn't even have time to read yet :) I've always been a fan of the gems type books. They list concrete and sometimes more difficult examples than the normal "learning" type books. To this list I added iPhone Games Projects, iPhone Cool Projects, iPhone Advanced Projects. They are all great books, some of them helped me to work better in cocos2D and others gave me some good optimizing tips.

I'm afraid though, that the most important book that most of us indie type programmer can buy isn't a programming book at all. Let's face it, programming is rather easy for most of us. I've been programming in games for years, and sure there's new things to learn when switching to a new platform and language. But it's most likely not unlike anything you did in the past. So what is this important void of knowledge we need to fill? If you are on the Appstore trying to get noticed, you probably already know : Marketing. I've never really given marketing too much thoughts before going on the Appstore. Even while developing for our Zombie Planet game, marketing is something I was going to do at the end, once it's in the Appstore. Wrong! We were happy enough at first, but our numbers dropped quickly enough. Since we got good reviews from the users who did try it, I think our marketing effort (or lack of) is at fault.

So to refresh my list, here's the most important book you can buy BEFORE starting to program your application: The Business of iPhone App Development: Making and Marketing Apps that Succeed. There's simply no better book out there right now on this subject. Although the book makes it very clear that marketing should start before your game, it promises to also help the poor souls who are already released in the Appstore. I haven't yet tried to apply any of these tips to our game yet. I've been busy with our new bundle of joy the past few months (a baby, not a toy or a game). I hope to do all of this soon though, as I'm working on releasing our first update to our game (way overdue now).

I absolutely enjoyed this book. Because I lack any formal training in this domain, I've learned so much from it, which is absolutely thrilling. Imagine my surprised when I actually saw code in there to help you along for things like in-app purchase and in-app email. I've always wondered how some games are able to give mojo or credits of some sort (We rule, imob) by downloading other applications. This book covers how to do this too; mystery solved. It also gives good tips on the benefit of free, when to use in-app advertising and how to properly use in-app purchase.

If there is one part I didn't like about this book, it's chapter 3: Protecting your intellectual property. If you find yourself in the same boat, just skip it. The main point you should take from this chapter is to do your research to make sure you don't use any existing trademarks. As indie developers, the rest probably won't apply to you unless you are very successful. If you are aren't indie, chances are you have your own marketing and legal department. In any case, this chapter didn't speak to me but maybe there is someone out there that will like it. The question is: if Mobigame had read this chapter, would they have changed anything about how they went forward with their great game Edge? Probably not.

Beside that chapter, the rest is pure gold. It answers a ton of questions and what it can't answer due to space limitation it provides in links to online resources. From affiliate programs to how to setup an ad-hoc distribution to social media integration, this book is full of useful tips!


  1. Ha! Great list, I just created a list for a friend who emailed me with the question of 'where should he start'. I was actually in the middle of turning it in to a blog post and you picked the exact same 3 starting books. I'll still finish mine as I have a few more I wanted to add, but I can certainly confirm this is a good path. A good book on design patterns might be a nice addition...

  2. Thanks, it's good to know I'm not the only starting from this path. I do have Cocoa design patterns book, but that's one of those in my unread section right now. I've been familiar with the GOF book for years now and I give a bit less importance to design pattern as I once did. Seems like the patterns come out on their own throughout my code instead of me trying to force them in as I once did. I think that's a good thing.

    Once you are done your post, leave a comment and I'll update so I can link yours too!

  3. Good mention of the iOS programming books. I started with gamesalad to get my feet wet in iOS programming, but now I am working with AirPlay engine. I may go to cocos2d after this project, since it seems to be pretty popular and I know obj-c...


  4. i want to know that for learning iphone programming how many languages are important to learn ?
    and what should be the basic concept ?

    make a facebook application | get a facebook fan page

  5. Objective-C would be the main language to learn for IOS programming. The concept that threw me off the most was probably retain/release/autorelease. I have a lot of c++ experience and I have a good understanding of memory management, but for some reason objective-C gave me a hard time. It wasn't clear to me at first how this worked in Objective-C, and I still rely heavily on tools to make sure I'm not leaking memory.

    With IOS 5, you should take a look at ARC. It should make memory management easier for everyone :)

  6. We have some world class programmer. If you need any help please visit & learn more.