ricodued wrote:
Xcode is not that bad, I just prefer the way Visual Studio is laid out.
Cocoa though.. Oh, man. It'd be one thing if it was just the obj-c, but it's the API. And why isn't the toolbar part of the control palette? That'd be so much simpler than writing fifty classes and such for each item. Ugh.
Where/how did you learn Cocoa? I can't find many tutorials that aren't condescending to Windows users or well-written.
Well, I think I've got to agree with you on the toolbar bit. That's perhaps the main thing in Cocoa that I still don't understand the reasoning of. Other things have made sense after I've spent time thinking about them.
Just as a quick example before I get to your question, at first I thought it odd that all controls had doubleValue, intValue, stringValue, and other such methods. Not all controls have values that can logically be represented in those forms, so why have those methods? I got my answer after doing a currency conversion tutorial app where you plug in an amount of money and an exchange rate, then hit a convert button to get the converted amount of money. That tutorial app had one line of code, and this was it:
[result setDoubleValue: [amount doubleValue] * [rate doubleValue]];
I just stared at that line of code and thought of how I would've gotten the same effect in Java or C#:
try {
double x = Double.parseDouble(amount.getText());
double y = Double.parseDouble(rate.getText());
result.setText((x * y).toString());
} catch (Exception e) {
result.setText("0");
}
The difference between the two just blew me away. It was like seeing
Quicksort in Haskell for the first time.
Anywho, where did I learn Cocoa? I use three main sources. First, I use
Apple's own documentation. It can take awhile to figure out how to find what you want with it (I mostly just use the search box), but it's proven very helpful.
Second, I often refer to
CocoaDev. It's a wiki, and while it contains a lot of information, I find it incredibly difficult to find anything without using its search feature.
Finally, I also use
MacDevCenter from time to time. It's more of a collection of tutorials than it is an API reference, and most tutorials are somewhat out of date, but it's good at pointing you in the right direction.
I haven't found much insulting of Windows on any of those sites (which is important to me. While I'm enjoying Mac OS X and developing on it, I still really love Windows.)