Question

I'm interested in learning Objective C for iPhone development. This is a topic which I realize has been covered to death. The qualifying difference is: I'd like to start learning beginning with the latest version (the most recent iPhone OS as of May, 2010 is ver. 3.2 and 4 beta is also out). I'd like to not have to wade through or unlearn legacy information.

Using the links I've found throughout related topics on Stack Overflow, I'll read a blog post or tutorial which will say one thing, but then the comments will say, "this is different now in version xyz." For example, I've found this a few times regarding memory management/garbage collection. (Edit: Johannes Rudolph corrected me below on this. It changed in Objective-C 2.0 -- not in anything iPhone specific. I must have been reading info on Objective C at the time.)

I assume that Apple's "getting started" doc.s will have the most recent info but many SO posts have said that those are not the most clear.

The Stanford iPhone course looks great, but how do I know if it still applies to the most recent versions?

Where should one start learning Objective C for iPhone development starting with version 3.2 or later without having as much exposure to legacy information?

Was it helpful?

Solution

Memory management has not changed in iPhone. There is still no garbage collection in 3.2. That's a Mac development issue when moving from 10.4 to 10.5. I'd still recommend the Stanford course. Nothing has dramatically changed from 3.0 until 3.2 that would impact a new learner that I can think of. There were major changes from 2.0 to 3.0 in UITableView that would impact a new learner, but most tutorials are post-3.0. Stanford's definitely is. I don't see anything in there that is going to cause you trouble learning 3.2. Stanford's course I think is still the best resource.

I also have posted the syllabus I use when teaching Mac and iPhone.

OTHER TIPS

For example, I've found this a few times regarding memory management/garbage collection.

Sorry, this is plain wrong. Memory management has always worked the same, the conventions around it haven't changed either.

You'll find the major differences between the iPhone OS versions are new APIs (sometimes rendering old APIs obsolete but that doesn't happen very often), minor changes to the APIs and bug fixes.

Given what I said above, almost any iPhone tutorial should get you started. Only when looking into a particular API you should try to look for the latest versions. On the other hand the SDK documentation is very good in terms of marking obsolete items and directing you towards "the new way to do xyz", so there shouldn't be much of a problem.

You're not going to find a pure 3.2 resource because (A) 3.2 is too new and (B) apps for iPhone are still released under the 3.1.3 sdk.

Dealing with old reference material is a pain but it is unavoidable in a fast moving business such software. Technically, virtually everything written becomes somewhat obsolete within six months. You have to constantly pay attention to notices of changes and revisions. There is just no way around it.

However, the core of the language and API for iPhoneOS hasn't changed radically in 3+ years. The only major shift has been the support for the iPad hardware e.g. popups and that is clearly distinct.

In my experience free resources age worse than paid ones for the simple reason that updating a reference to keep it current is tedious and most people who aren't being paid don't have an interest in engaging in that drudgery. If you want relatively current and updated info, you have to pay for it.

I recommend O'Reilly's Safari Online to my clients. For cost of a hardcopy book or two a month you can get unlimited access to a huge library. The books publication dates as well as the version they cover are readily available. Many of the books are updated fairly continuously. You have access to articles and video which are even more current.

In the end, however, its just a slog. The perfect resource isn't going to fall into your lap. Really, the only way to get only perfectly up to date info is to hire someone experienced enough to know whats new and what's old.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top