CocoaDev

Edit AllPages

I don’t know how many of you have done any .NET programming, but Microsoft provides many useful “Starter Kits” that are full fledged well architecture applications that you can model yours after and copy or extend. It would be cool if Apple or someone else would create some CocoaStarterKits that served the same purpose. Apple has a lot of theory on their site but very little concrete examples other than the over simplified Currency Converter.


Are you aware of /Developer/Examples/AppKit on your hard drive? Lots and lots of good, working apps that can be studied or changed.

Yes I am, but none of those examples are full apps. They are all little demos of specific appkit things. What I would love to see is the source to a well architectured and typical application that actually does something useful. That would help answer real world questions that go beyond theory and demos which are too simple. It doesn’t have to be the source to iTunes, but something above “MenuMadness” would be nice.

The TextEdit source is there; Sketch.app is a reasonably full-featured drawing application; there’s plenty of 3rd-party CocoaSampleCode out there…


There are also templates that you can use, and it wouldn’t be too difficult for a person to extend one of these with more functionality, though I’m not sure what more functionality would be useful. I have personally used the project templates for e.g. Cocoa+GLUT applications.

What templates are you talking about?

The ones inside ~/Library/Application Support/Apple/Developer Tools/ - as a for instance, the File and Project Templates folders contain them.

Funny, I don’t have any.


Don’t forget you can look at open-source applications too. Fire is a multi-client IM app that is programmed in Cocoa. (Well, it is a cocoa wrapper for a series of other projects that actually handle the communications) http://fire.sourceforge.net

http://sourceforge.net has a lot of projects you can use for examples. Make sure you know the rules for each license, before you start using code from the project though. -DerekCramer