What is this blog all about? *click here to find out*.

Monday, June 29, 2009

Step One: The Plan

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.

Genesis

Hello, I'm Sushiboy, and I write code for a living.

Last year when the iPhone SDK came out I was too busy with school to do much with it. This summer I have an 8 week window between semesters. Instead of wasting that time playing World of Warcraft, I'd like to program an iPhone game.

Here is what is on the agenda.

1. Learn objective C.
2. Learn Cocoa/Cocoa Touch.
3. Write an iPhone game or two.

I am not an iPhone SDK or Cocoa expert. I have five years of experience writing code for the Mac, but this has been mainly in C++, using Carbon and some of the other older development tools like QuickDraw. In fact, I do not even own an iPhone or iPod Touch. To start, I can use a simulator, but somewhere down the line I will probably need to pick up one of these devices.

I've always loved programming games. I made a lot of games for turbo pascal. (tetris, hangman etc...) I made a few games for my graphing calculator in high school, when I should have been learning calculus. It's been too many years since I've done a game and it is high time for me to program a new one. I can't wait to write a game with the powerful, modern, mostly-free tools at my disposal.

I'm an Objective C n00b. So I figured if I was going to program for the iPhone, I'd better start with the basics. I realize that there are a litany of iPhone/Cocoa development blogs, many of these are more thorough, entertaining and snazzy than my blog can ever be. My goal in starting this blog is not to be a "me too" blog. I am writing this blog expressly for my benefit. Writing down what I have learned has always helped me cement concepts into my memory. While I am at it, why not let anyone who is curious look in too?

Glad you are here. I hope you enjoy my journey into iPhone/iPod-Touch development.