Speaking of Cocoa, it's you providing with API for system to use. Well, your implementation of system objects (NSView, NSApplicationDelegate, etc.), so that the SYSTEM, can DO THINGS on YOUR WILL.
That's just my advice. I myself think that drawing things on the screen is the most difficult part, so I suggest that you may take CoreGraphic as start point. The UI, the buttons the 'widgets' (GTK users might call it), are easy. (I think)