PrEV
Thoughts from a NeXTStep Guy on Cocoa Development

Learning iPhone Development

Sep 30, 2008 by Bill Dudney

I have often heard it said by old time Cocoa folks that making the transition is not so much a steep learning curve as it is a steep un-learning curve. You have to retrain your intuition so that you think like Cocoa.

Being an old Cocoa developer (from NeXT 0.9 days) and a Java developer I totally get that and agree. The transition back for me was not as hard as it is for someone without prior knowledge but there were several things that hit me like 'duh that is how it should be, why did I not think of that' when I got back into Cocoa.

From what I have heard from folks (questions and such) the hardest part of moving to the iPhone has been groking Cocoa and retraining their intuition.

Another thing that has come up often in the last couple of days now that my Core Animation book has finally shipped sans the iPhone bits is the question 'hey how am I now supposed to grok CA on the iPhone?'. And my answer is the same as its always been, learn Cocoa (or Core Animation, Bonjour, Target/Action, Key Value Coding etc etc) on the Mac and you will be well suited to doing iPhone development.

While I said this to several people I did not have anything that did not break the NDA that was decisive to show. So I decided to do some research into the public data that I could use to support my claim that if you know Cocoa you can do iPhone. So I re-watched Scott Forestall's part of the SDK announcement and took some screen shots. While there are some major areas where Scott says 'we tweaked it', or 'we enhanced it' there are some even more major areas where he says 'hey its the same stuff that has been used for years on the mac, its proven, works great and is easy to use'.

Here are the screen shots with most of the time stamps from the SDK keynote.

The OS stack is the same except for Cocoa Touch (around 21:30 in the keynote)...

The Core OS is almost identical, power management was tweaked, but kernel, bonjour, certs, key chain, TCP/IP etc all the same (about 23:45)...

The Core Services are very similar, Collections - same, networking - same, file access - same, SQLite - same, net services - same, etc (about 24:30)...

Core Animation was released publicly on Leopard first but was written for iPhone (about 25:45)

Media, much the same, Core Audio, OpenAL Quartz 2D, Core Animation, Open GL ES, PDF etc

Cocoa Touch, 'we took everything we knew about doing great OO UI frameworks and built Cocoa Touch' (quote paraphrased from much earlier, about 21 min or so). Cocoa Touch - inspired by Cocoa, View Hierarchy - same, Localization - same, Web View the engine behind Safari now a control, based on WebKit (about 27:30)...

Tools, enhanced for iPhone, Xcode, IB, Instruments all the same but enhanced for iPhone (starts about 29:00 and ends around 33:31)...

So my assertion to the folks out there wanting to know how to do iPhone development is to learn Cocoa with one of the many resources available to do that and you will be very well suited to do iPhone work. And maybe that is a side benefit to the whole NDA thing, many folks will learn Cocoa that would not otherwise and the developer community will grow.

A few resources, but there are lots more;

I can't wait to see what you build!



Comments:

Thanks Bill this is some good stuff to help out with the iPhone learning curve :) Keep up the great work man.

Posted by Titus on October 01, 2008 at 08:09 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed