As I mentioned in my last post, I am completely new to Objective C. Since I don't have much time to learn it and the Cocoa API, I figured I had better come up with some plan so I could fit it all in. A syllabus. I know, I've been in school too long.
My friend and co-worker, DadGuy has already successfully developed an iPhone app (and blogged about it). He was nice enough to let me borrow a book he picked up, Beginning iPhone Development : Exploring the iPhone SDK. This book got my feet wet, and I used the first 2 chapters to compile list of things that I would like to know before I actually start into developing my first game.
From there I followed a paper/reference trail and decided on a few books and documents which I think will give me a good, if not great foundation in Objective C, Cocoa, and the iPhone APIs.
Below is a list of the Documents/Books I have read and plan to read and the order I plan to read them in.
1. Object-Oriented Programming with Objective-C. With out a doubt the best place to start. Sometimes theory is worthless, but not this time. Knowing what Objective C does differently (and better) than C++ is pure gold. This is "big picture" type stuff and, as far as technical manuals go, a fairly easy read. If you are thinking about taking the iPhone SDK plunge, I would definitely recommend starting here first.
2. The Objective-C 2.0 Programming Language. More in depth theory about the structure of Objective C. Good reading. Originally I planned to read this by-itself. But I started getting bored, I had just read 40 pages of theory (above) and this document is another 100+ pages of mostly theory. The reading is worth it, but I wanted to get into some code so I also started on the book below.
2. Cocoa Programming for Mac OSX. This is a great book to go through while reading the document above. I've been following the examples in the book, they help to re-iterate the theory in the above documents, while giving some fun, hands-on, experience with Objective C, and Cocoa. Doing is Learning.
3. Beginning iPhone Development: Exploring the iPhone SDK. As I mentioned I read the first two chapters of this book before I did anything else. This proved two things to me. The first, Objective C is a completely different animal than anything I've dealt with before. Second, to write a good iPhone application I needed to have a solid grounding in both Objective C and Cocoa. An iPhone application is not something you want to write under the C++ paradigm, only using just enough Objective C to get by. To do so would be a HUGE mistake and would end up costing more effort than just learning the new language and API's.
This is why I chose to get a good grounding in Objective C and Cocoa, I could see that is where the firsts step lay. To ignore these steps would gimp any further efforts I put into learning the iPhone APIs. After I have this knowledge I feel it will be a natural step to jump right in to the iPhone environment. This book is where the iPhone dev begins!
4. iPhone Games Projects. Let the games begin. I probably won't read this book cover to cover like I'm on track to do with the other material. At this point I'd like to start development of my game and use this book as a resource to help me solve game related issues: Events, gameplay, graphics and optimization...
5. Objective-C 2.0 Runtime Programming Guide. THIS looks really cool. One of the main strengths of Objective C (according to everything I have read, no personal experience... yet) is the how many things Objective C handles at runtime. I'll bet there is a ton of nifty stuff you can do if you know how to use the runtime tools. I can't wait to learn.
6. Core Data Tutorial for iPhone OS At some point I'm going to need to save some sort of game data to the device. The iPhone looks to be a lot more restrictive on how things are saved to the file system than what I am used to on the Mac. I'll have to learn this stuff, but Core Data doesn't really interest me as much as the other nifty things I want to do. I'll learn this when I have to.
Well that seems to be enough to be getting on with. Time to go. I've got a lot of work ahead of me.