Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask YC Hackers: Best text for learning to develop apps for Mac OS X
6 points by pius on Oct 30, 2007 | hide | past | favorite | 12 comments
I know all of the cool kids (myself included) are doing web apps, only deigning to develop for the client side through AIR, Gears, etc.

That notwithstanding, I'd like to dip my toes into the water of OS X development. What's the best book for getting acquainted with it? Bonus points if you know of a book that's going to receive a Leopard-inspired update soon.



This is a nice web page for starting up with cocoa: http://andymatuschak.org/articles/2007/09/09/getting-started...


http://trolltech.com/

I can't comment on Cocoa. But if you know C++ Qt is a dream. They have amazing libraries that make up for the shortcomings of C++. It also makes native look and feel cross-platform development a snap. Google Earth is built in Qt. It has a dual license, documentation + community are great. Can't say enough good things about it.


If you want to create Mac OS X apps, forget about multi platform stuff - your customers do not care if your app runs on other platforms, and they will ignore your app if it does look and behave like a great Mac app.


It is a universal Gui API. So on OS X it api's to carbon (soon to be cocoa.) On windows it api's to mfc and on linux to xwin. So yes, it has exactly the same look and feel as a mac app or whatever platform you choose build on. Once it's compiled it's just a bunch of native system gui calls so there is no way to tell the difference. You've probably used Qt a million times and not known it. Opera and Google Earth are both Qt apps.

Even if I was only releasing on one platform I would still use it b/c it is so simple and powerful. And what's the harm in having your app available to the other 90% of computer users?


Opera and Google Earth are good examples of such apps - they suck. Both have non native and ugly user interface. So if you your app does more or less what other apps do, but looks like this, people will prefer the native cocoa apps.


Agreed, they have ugly Ui's but that's not Qt's fault. When you want an "Ok" button, a dialog or a check box in Qt, it's calling the EXACT SAME function that get's called when you do it without Qt. So by definition it is native. You should check it out. You might change your mind.


I am learning Obj-C and Cocoa right now and I'm using this book http://www.amazon.com/Cocoa-Programming-Mac-OS-X/dp/02017268...

It's excellent. I also found Apple's documentation quite good (Obj-C 2.0 stuff is great).


The second edition of that book is more relevant:

http://www.amazon.com/exec/obidos/ASIN/0321213149/bignerdran...

That being said, the third edition is coming out this spring.

On a completely separate note, I would be careful about relying on Obj-C 2.0. If you want to actually release something in the near future, you won't be able to rely on it if you want to include 10.4 users. And of course, there's the issue of how great garbage collection really is...


This is a great book to start with. After you finish it, this one is also good: http://www.amazon.com/Advanced-Mac-Programming-Core-Unix/dp/...


This is the book I'm currently reading to learn more about Cocoa.

Note that with the release of Leopard, Xcode 3.0 and the new Interface Builder, a lot of the things in this book (such as the diagrams and directions) are no longer relevant and might be hard to follow.

The third edition of the book (which covers all the new things) will be out in the spring, according to the author.


When I worked at the Apple Store, I was complaining to a customer that they didn't sell any books when it came to coding (everything had to do with using your ipod and beginners guides to the OS). Turns out this customer was from SV and worked for Apple, although he never mentioned what he really did. He suggested that if I "want to make money" to learn AppleScript. I taught myself by just reading tutorials online, and learned you can do some pretty cool stuff with AppleScript. However, I personally would say one should put more focus on Objective-C and Cocoa. I began doing that (many tutorials online), but soon after got into web apps and put my focus elsewhere.

So, in my opinion, get a feel for AppleScript, then move on to Objective-C and Cocoa.


AppleScript is nice tool for special jobs, but you do not like to write complete apps with it. It is too annoying to write, slow and hard to debug. Use it to script other apps.

If you are looking for easier development environment, try pyobjc: http://pyobjc.sourceforge.net/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: