Xcode (& Interface Builder, since the two are tightly integrated) is an enormously flexible tool, and is rapidly evolving. However, the learning curve for any developer - particularly if you're new to Cocoa/Objective C - is pretty harsh.
Even after using it for several months now, I still find it frustrating the way the project/target/executable settings are set in several places, and the way build settings override target settings etc. so you have to be *very* careful your settings aren't being over-ridden elsewhere, and the way there are four separate settings you need to check to decide the built application's location, etc.
On the positive side, having a tool which integrated design, code editor, help viewer, complete reference tool, UI builder and debugger, supporting several languages and with a huge array of templates is a vast improvement on other IDEs I've used.