What are some good resources for learning how to develop for OS X?

17 Comments

So I’ve been doing web development for almost a decade now, but I’ve never even come close to even thinking about developing for an operating system. I’m very interested in jumping in and getting my hands dirty with developing for OS X but honestly don’t have the slightest clue where to start.

What are some good resources for learning this sort of thing?

*Full disclosure: I’ll most likely take the “best-of” from your comments and wrap them up in a new post.

17 Comments

Aaron Brethorst

Scratch an itch! Seriously. This is how my Mac shareware application, iRooster, came into being. During my last year of college I had trouble waking up for class in time. My clock radio just wasn’t cutting it. So, I created a barebones alarm clock for my Powerbook G4, plugged external speakers (with a subwoofer ;-) into my Mac, stuffed the sub underneath my bed, and never had trouble waking up again. This had the unfortunate side-effect of waking up my roommates, as well, but such is life :)

The hardest part is coming up with something you want to create. Everything else is pretty easy in comparison. As far as languages, tools, and frameworks go? Meh, take your pick. Since you’ve been doing web development for years, I doubt you’ll have too much trouble learning another language or framework, so you may as well dabble in all of them for starters.

Go install Xcode and start playing around with basic Objective C tutorials (skip the Java stuff if you want to build a Mac application). Read Aaron Hillegass’s book, too.

Go play around with REALBasic, too. Harass Aaron Ballman at aaronballman.com if you have any trouble or questions.

Cheers,
Aaron

Chuck

In addition to Aaron Hillegass’s book, which is indispensible, I highly recommend Step Into Xcode by Fritz Anderson.

I spent months going through Hillegass’ book and while I understood what I was doing while I was following the examples, I still felt like I didn’t get how everything fits together or how it would apply to my own apps. After reading Andrson’s book, I finally understood how it all ties together and why the process is like it is.

Jerry

John, Rich:

Thanks for the tips. I’ll check out the Apple tutorials and the Hillegrass book.

Rich

@Jerry:

I also bought the book “Programming in Objective-C” by Stephen G. Kochan. It looks a pretty good book but as someone who already knows C I was a bit disappointed as most of the book covers C.

If I was you I wouldn’t bother buying any book on ObjC. ObjC, like C++, is a superset of C. If you know C you know a lot of ObjC. Obviously the OO stuff you will need to learn but the tutorials on apple.com should be enough.

I recommend getting a book on cocoa such as Aaron Hillegass’ book (see above).

Jon Crosby

@Jerry:

I was in the same boat, having many years of experience writing software under my belt, Java included. The Hillegass book was ideal in this regard as it even compares similar structures between the two languages. There is one chapter, if I recall correctly, covering the details of Obj-C but I don’t remember having to suffer through tutorial examples of looping and variable assignment. The chapters are also fairly self contained so that you can just jump to something that you are working on in your own app, read a short example, check the Apple docs in Xcode, and go.

Jerry

Great thread! I recently bought my first Mac and have been wanting to do some development on it so I needed this. I am a professional C++ programmer with professional Java experience so I don’t need any “how to program” resources. I really just want to get down and dirty with Cocoa/Obj-C. Can anyone suggest a good place to start for someone like me?

Rich

Aaron Hillegass’ book just arrived a few days ago from amazon. I have not had a chance to dive into it but it looks pretty good. A mac developer recommended it to me.

Chris Howard

Python is a great place to start. They have some great tutorials for newbie and experienced programmers. http://www.python.org

I’ve got my 11yo learning Python, but that doesn’t mean it’s simplistic. If you want to know what you can do with Python, check out a little game called Civilization IV…

Once you learn programming, you’ll find it easier to then expand to learn the full kit of what you can do with an OS and other more challenging languages.

Nick

A month back I was in the same situation. The following I found useful:

Beginning Mac Development (from MacZealots)
Cocoa Programming for Mac OS X: I’ve looked at several Cocoa books and this is by far the best. Let me qualify that though. If you know how to program and are moving to Cocoa, this is the right book for you. However, it won’t teach you C or Objective C from scratch.
CocoaDev Wiki: When I first started out, this was the main site I referred to when I had some questions.

I’ve got a few more links in my article: Diving into Mac Development

Jon Crosby

Without a doubt, “Cocoa Programming for Mac OS X” by Hillegass is a great start. I would second the CocoaDev and CocoaDevCentral recommendations as well as adding http://www.cocoabuilder.com as an essential source of detailed info from the trenches.

Also, be sure to add each blog listed on CocoaDevCentral to your RSS feeds.

Eric Richie

Cocoa Programming for Mac OS X by Aaron Hillegass. Very good one.

Michael Marmarou

First, you’ll want to decide if you want to learn Cocoa/Obj-C or use another language (i.e. Python or Ruby). This really depends on what you plan on making, and how serious you are going to be about it. Learning Objective-C (or C) can be very challenging. If going with Obj-C, I recommend going here:
http://developer.apple.com/documentation/Cocoa/index.html

And read both the “Getting Started” and “Fundementals.” You’ll also want to find a tutorial on Objective-C, and may even consider learning a little C first (but not necessary).

You’ll also learn that Cocoadev.com is your new best friend. Read this
http://cocoadev.com/index.pl?HowToProgramInOSX

Then, you’ll want to just start reading and playing around with all the sample code Apple provides. The greatest challenge will be understanding Objective-C, and OO-Style programming.

There are a number of books that are very good, and I highly recommend Cocoa programming for Mac OS X by Hillegass (http://cocoadev.com/index.pl?BookCocoaProgMacOSX). I would recommend Obj-C highly over others, if only because there is such a vast set of documentation and resources available. You won’t find that Python or Ruby actually help you learn any faster, and the programs won’t be much, if at all, simpler.

Michael

Adam

I second you there Josh, I’ve done a bit of Visual Basic in the dark days of my Microsoft life, but I would really like to do something on the Mac.

This is one of the entries you really are glad for the “Feed for this Entry Trackback” link!

Comments are closed.