Edit AllPages

The title is pretty self explanatory, but would you guys help people like me (newbies) by creating a list of projects you think would be both simple and yet still complicated enough to broaden our cocoa horizons? Maybe projects you have done and found interesting? Basically a list of projects that will help us ignorant folk become cocoa masters. –JohnDevor

== Beginner ==

== Intermediate ==

== Advanced ==

If you’re a newbie, try this link for basic tips on HowToProgramInOSX. Please feel free to change and add to the explanations to make them more clear and complete.

If you figure out how to do any of these projects, please post solutions here… NewbieProjectSolutions (warning spoilers await you!)

This is great, thanks a lot. If anyone wants to keep adding to this list that would be swell. :) – JohnDevor No problem. – AlexanderD

* Write an app that gets a certain Project Builder project directory, moves the build folder, compresses the project directory, backs it up to another part of the computer, replaces the build directory and removes any resulting mess. *

I am using the following script to do a tar + gzip of all files in the current directory (recursively) except the build directory and the IB backup files (~.nib). The resulting archive is named after the current date and time (YY.MM.DD to get proper sorting).


find . ! ( -regex ‘./build/.’ \ -or -regex ‘..tgz’ \ -or -regex ‘./.~.nib/.’ \ -or -regex ‘./.~.nib’ ) >/tmp/files

tar -zcf date +"%Y.%m.%d_%H_%M"_backup.tgz –no-recursion –files-from /tmp/files


Hmm… that completely fails to work for me at the moment, and I’m not enough of a UNIX-head to know why or how to fix it. Still, I like the idea of automating it…

– RobRix

*You need to put the 6 lines in a script (e.g. and set the x bit ( chmod u+x ), then you can execute the script ( ./ and it will create a compressed tar file with current date as prefix.*

Hope it helps…

I added a bunch of fractal variants – all of which I ended up writing in 1994 on my Centris 650. I remember it as if it were yesterday – writing a few thousand lines of Pascal to do my Julia Set animation. (for you CornFedRaverNewbies out there, Pascal is a programming language. No, it’s not at all like Python. Sure it is. They both start with ‘P’, for instance.) Later I would get a PPC upgrade card and switch everything to C. Sigh … that was back before I discovered the coding power of beer. … Anyhow, this is a lot easier now with Cocoa. Go for it. – MikeTrent

I’ve always found that one of the hardest steps of programming is releasing your product to the wild for the first time. In that regard doing some of the above projects once, then redoing them again to fix mistakes, make it more efficient and apply new ideas you have learned works wonders.

Anyone have an example of rendezvous implementation?

Mathematica 5 has been available for a little while now, so most people are familiar with the newer features as well as Wolfram’s obvious use of it within his recent book, for simulations and the whole “small-simple-programs-to-elaborate-behavior-programs.” I use Mathematica quite a bit more than I thought I would, it’s just a lot faster than doing stuff by hand, and the visuals are decent. So, here’s my newbie project idea (which might be overkill as a newbie project) for people who can’t afford, or understand how to use, Mathematica—- knock-off simulators akin to the simulators used in Wolfram’s book that demonstrate how simple programs can adapt/evolve/create/etc. to become elaborate programs. Admittedly, there are plenty of Tesselation Simulators, plenty of “Game of Life” simulators out there, but what about “Game of Life” type simulators bred with “Genetic Algorithm” simulators. Now, that would be interesting, using genetic algorithms to create a more realistic Game of Life application. I think there are a few that exist, and I admit, I started working on something similar a few weeks ago, but maybe someone with more imagination should take the idea. I know I’m not necessarily proposing anything new, but I just thought I might add to the discussion. (Sorry if this is overkill for this particular page) –TriLateral