- Counterparts. If it's there I can't find it. (Bonus points if it can do what Counterparts can't: jump-to-definition in the right pane puts the appropriate header in the left pane.)
- Xcode-style back/forward buttons. Coupled with Counterparts, this is really flexible and pleasant to use. I'm familiar with ctrl-tab switching in IDEA but I don't really like it as much.
- The debugger interface feels clunky. I'm used to it with Java/Scala in IDEA, but I feel like Xcode doesn't aggravate me as much. Perhaps it's just because it's more responsive in its presentation?
- Having to remember to hit "Debug" rather than just "Run" is annoying. I get why it exists, but the first time I went "wait, why are my breakpoints not firing?", the need to make that decision lost me.
- UI clutter everywhere. There's too much thrown at me, too fast. Opening AppCode's preferences pane is overwhelming even though I'm very familiar with IDEA (it's not good there either). There's too much crap thrown at me that I don't care about. I don't care about HTTP proxying. I don't care about XSLT files. I don't care about Live Templates. But they're taking up eye- and brain-space. I would strongly recommend that JetBrains figure out exactly what the 95% case actually use and find a way to progressively reveal remaining features for the 5%.
- Native widgets. Everything just feels wrong and it's competing against a really wonderful native UI and experience, to its detriment. I really like IDEA because it's head and shoulders above Eclipse and NetBeans, but going from native Cocoa widgets to AppCode is very unpleasant. I strongly feel that the native widgets in Xcode make it feel more responsive, with animations and transitions that lend a feeling of "snappiness"; I don't know if it actually is faster than AppCode, but it feels it.
- In this vein, making me go from the eye-shock that is AppCode to Xcode to use IB is probably not helping matters from a marketing perspective. Old-hotness/new-busted is reminding me of the pluses of Xcode, which probably isn't what JetBrains wants me to be thinking about.
There are some things that I really enjoy in it - I like that it Just Works with my Xcode projects, I love that, when I use liblogog, the file/line paths that are emitted by logging statements become hyperlinks in the output window - but overall it's like using Linux on the desktop: there are a thousand little frustrations that make it less pleasant and pleasurable to use.
I'm really glad that my friend introduced me to IDEA and it's what I use for nearly all of my work with code.
These guys make kickass products, and the fact that they really enjoy their work comes out in the quality of their stuff, and how they treat their customers.
And, too, I'm sympathetic with regards to most of the stuff I enumerated in my previous post - a lot of it comes down to being non-native, and trying to match that in Java is kind of like having your foot in a bucket.
AppCode has such nice navigation and completion.
It all makes me wonder how on earth anyone could say they enjoy xcode.
I very much like IDEA for Java or Scala, but I find myself frustrated when I use AppCode.
IMO AppCode has much better code generation, refactoring and navigation. For instance, I've yet to locate a way to find all references to a symbol in Xcode.
Xcode simply feels like it belongs. It acts as a Mac app should act. AppCode doesn't; it's unpredictable, lacking in basic features like Counterparts, and still kicks me out to Xcode just long enough to remind me how much nicer Xcode is to work with. Code generation and refactoring is very pleasant to have but not as important as being comfortable to work in for hours at a stretch (and AppCode isn't worth the price just to employ it for a couple features for a hobby project).