views:

5860

answers:

20

What are the recommended online or offline resources for Objective-C and Cocoa programming?

My online resources:

My offline resources:

  • None, I have no books on my shelf

I need some help finding a good book, any suggestions?

+1  A: 

Does this help? Or, this?

@Tao: I know. I never would have searched for iPhone too. Just that I remembered reading that thread! :) And, edit tags requires 1000 points I believe. So, I too am far far away! :)

Adhip Gupta
+9  A: 

@adhip Gupta:

I did see the Understanding reference counting with Cocoa / Objective C. Matt Dillard gives an excellent answer.

I did not see Howto articles for iphone development. I never thought of searching for iPhone. Well, not really interested in programming for the iPhone. Someone should edit that tags for that question to include objectivec. I do not have the ability yet.

Resources from that question:

Tao Zhyn
+27  A: 

Alright, let's start with the obvious Apple resources:

Mac Dev Center

Introduction to The Objective-C 2.0 Programming Language

Introduction to Cocoa Application Tutorial

For books, these two are generally considered must-haves:

Programming in Objective-C by Stephen Kochan

Cocoa Programming for Mac OS X by Aaron Hillegass

Programming in Objective-C was last updated in November 2008 to cover Objective-C 2.0 topics. Cocoa Programming for Mac OS X was updated in May 2008 (3rd edition).

Mike McMaster
+2  A: 

Get one good book, learn some of the basics, then Google as needed when you have questions for your project. You'll eventually find the online resources that are most helpful for your needs - remember Cocoa and Objective-C cover a great many areas and different sites often have a specific focus.

If you're working on something for Mac/iPhone be sure to download relevant sample code from Apples site. Many samples that may seem unrelated will often provide valuable information about different areas. If you have XCode the documentation should be integrated.

I'd strongly recommend Cocoa Programming For Mac OSX. This is a great book that happens to also be highly-readable. It has tips for configuring XCode which being new to the IDE I found very helpful.

Andrew Grant
+1  A: 

As others have mentioned Cocoa Programming for Mac OSX is a very good choice for a book. Make sure that you get the third edition if you're using Leopard and Xcode 3.0 or later. There were some changes to interface builder that can be a bit confusing if it is your first time through and you're using the older book.

The third edition also accounts for some useful features from Objective-C 2.0

crackity_jones
+2  A: 

Don't forget the CocoaDev wiki. Pretty much any API/object/etc. has its own article with often useful advice on good and bad practices, etc.

Sören Kuklau
+1  A: 

Also, don't forget to check out the mailing list at Cocoabuilder. It's definitely one of the first places I check for answers.

There is also a screencast tutorial website that's been around for awhile; Cocoacast. Most of the content follows the 2nd Ed. of Cocoa Programming for Mac OS X, but they have some newer screencasts going over some of the new features and differences since the release of Leopard. Hopefully they'll start posting screencasts again regularly.

Adam
+1  A: 

All the "no brainer" links and books have been presented and I strongly recommend them as well. One thing that really helped me (and motivated me) to get started is the online sessions from WWDC (available on iTunes). It is not free if you are not registered (and a paying dev) but it is well worth the money IMO if you are serious about learning Obj-C/Cocoa.

Nicolas Girard
+2  A: 

Aaron Hillegass's book Cocoa Programming for Mac OS X (Current version is the third addition) is more than enough for someone who has a passing understanding of C.

This book reminds me of the original K&R book in that it starts simply and then does an excellent job of building on previous chapters.

Another thing to bare in mind is that the Objective-C 2.0 reference from apple is an excellent reference but remember that there are quire a few limitations when it comes to its use against the iPhone SDK.

Clokey
+5  A: 

Cocoa Programming for Mac OS X by Aaron Hillegass is a great introduction for someone who's already familiar with C. Once you know the basics of how everything fits together, I recommend reading Apple's Cocoa-Dev mailing list and Omni's MacOSX-dev mailing list. Cocoabuilder is useful for searching these lists to answer questions, but I recommend actually reading the list archives sequentially. In the long run that will save you time, as you'll be aware of the different areas of functionality and potential gotchas before you go down the wrong path or run into trouble.

Language references are also useful. For Objective-C, I like the PDF of Apple's The Objective-C 2.0 Programming Language. A great book on C is C: A Reference Manual.

Michael Tsai
+1  A: 

OO Philosophy and Design Patterns

The Objective-C 2.0 Programming Language is certainly a good reference, however by way of introduction you should also read Object-Oriented Programming with Objective-C. This is likely to be useful even if you have used other object-oriented environments -- Cocoa's perspective on OOP is sometimes rather different from what you may be used to.

In addition, you should also read Cocoa Fundamentals Guide -- in particular the chapter on design patterns.

mmalc
+10  A: 

Apple's Developer web site has some good Objective-C resources - primarily The Objective-C 2.0 Programming Language, which gives an overview of the entire language. As long as you are fluent reading C, that should probably get you started.

If you want to learn Mac programming, then I would recommend picking up Cocoa Programming for Mac OS X. That's what I used and it was a great intro (much better than Apple's docs when starting out, IMO). Make sure that you get the 3rd edition, since Apple's tools have changed dramatically since the 2nd edition was released.

Andy
+1  A: 

Oh boy are you about to be surprised. I recently took a run at ObjC and was shocked at how different it was from what I'd seen before. It's not hard exactly--just different.

If you're doing iPhone apps and are already familiar with MVC, then the transition should be smoother.

Some resources:

  • Pragmatic Programmers - not very advanced but if you want a decent overview with examples, buy a couple videos
  • Youtube. For iPhone development, Youtube is full of examples
  • Apple's Dev site
  • Google
Michael Haren
+3  A: 

The Apple documentation is a great place to start.

ObjC.pdf is wonderful. Read it straight through. Save it to your desktop and flop it open whenever you have a language question. Do the same with Memory Management Programming Guide. There are many more specific documents on Apple's site, depending on what you want to do.

This Cocoa Literature List is another great aggregation of Cocoa articles around the web, organized by task/subject.

David Grant
+1 for HyperJeff's Cocoa Literature list.
Quinn Taylor
A: 

There are a few blogs and podcasts that are great places to start. Tim Isted has written some tutorials that will get you a long way into developing a Cocoa application using Core Data (http://www.timisted.net/blog/archive/category/programming/). Following that searching the archives of CocoaWithLove (http://cocoawithlove.com/) is well worth the effort.

Core Intution and CocoaFusion are fairly regular podcasts available for free covering cocoa development with CocoaFusion being more technical and Core Intuition being more general.

Finally I'd have a look at the Mac Developer Network (www.macdevnet.com). There are a good few free things on the site including links to blogs, podcasts, cocoa related news and some free podcasts. Upgrading to a paid membership is well worth the effort though because the screen casts and the Late Night Cocoa podcast are exceptional and you can regularly here from some of the best cocoa developers.

Ian Turner
+1  A: 

Cocoa Dev Central has some excellent tutorials. I'd start with Learn Objective-C and Learn Cocoa.

dvenema
A: 

In case you don't have a Mac, you can use GNUstep to get a free implementation of the Objective-C development environment in Windows or Linux. Of course, it doesn't have everything that Cocoa does. Still, it's a good way to get your feet wet in Objective-C for those who lack a Mac with the full Cocoa API.

Jeff
Very cool. Thanks for the link!
Kevin Babcock
+1  A: 

By far the most helpful resource I've found is an online course available for free in iTunes (iTunes U). It's a Stanford University course entitled 'iPhone Application Development'. The course instructors include both Stanford faculty members and Apple developers, with guest lectures by the creators of several prominent iPhone applications. The course is top-notch and provides an insider's view on iPhone application development.

Mike Hickman
+1  A: 

I just started a series of free Cocoa Screencasts, I thought it was worth sharing here. The first episodes explain in details how I developed my first iPhone app (whose code is open source). The screencasts are available on my website. Hope this helps!

Thomas Balthazar
A: 

I wrote a blog post on this very topic recently. My favorite resources are the API documentation (particulary the Memory Management info) and a book called Cocoa Design Patterns which helps you understand why iOS code works like it does.

Ross
A URL to the book here does wonders - though I can sympathize with the desire to have traffic go to your blog.
Jonathan Leffler
Yeah - I tried to add a link to the book too, but stack overflow wouldn't let me put more than one. I figured the link to all the resources is more valuable than just the one. Thanks!
Ross