Agreed. With the removal of the scripts menu, your eyes no longer need to be assaulted by 2 iconic menu bar titles, and you get to practice your typing. Furthermore, the lack of any even-remotely-useful disassembly window means that people who argue that it's impossible to debug an optimised build can now be right ;)
These two features (or lack thereof) sent me running straight back to Xcode 3. Took about 5 minutes, 3 minutes of which was searching for any way of getting at the disassembly window. I suppose I could have worked around the scripts thing if push came to shove.
Anyway, there appears to me to be every reason to stick with Xcode 3 rather than Xcode 4, though maybe Xcode 4 might be OK if you're not some kind of freak, as I appear to be.
Something I ran into recently was the removal of remote debugging in Xcode 4. The facilities to do it are there, as that is how debugging iOS devices is run, but the ability to debug remote OS X clients is gone.
XCode 4... where do I start? It's slow, buggy, unstable, slow, bloated, slow, and Apple yanked a lot of useful features, like plugins. So now there is no easy way to get rid of the trailing whitespace XCode loves to insert. External editor support is also missing, so vim users like me are SOL. It's really slow too.
Enough grumbling for now... back to work. In XCode 4.
Edit: to qualify my claims.
Slow -- Need I say more? I'm on a MacBook, 4GB of ram, pretty standard hardware. I can't even scroll without stuttering. Apple: at least support your own damn baseline.
Buggy -- The split view is so broken. And tab titles aren't always updated when switching files, which hugely hinders usability. And it sets CC=llvm-gcc... why, why, why, why?!?! There's more but I don't feel like getting into it.
Unstable -- crashes about once a day, more if I'm swapping devices or using Instruments.
Bloated -- 10GB? Really? I didn't realize rounded corners and a compiler took up so much space.
Given that nearly every item, gesture, etc. in Xcode has a shortcut and you can modify these shortcuts to whatever you like, I'm inclined to believe you are just trolling for AppCode.
You're correct, you can bind keyboard shortcuts to most actions in Xcode. The problem is that the UI seems to have been built with the mouse in mind, with keyboard navigation as an afterthought. Is it really all that useful that I can pull up a dropdown menu with a shortcut if I still have to arrow up/down to pick my file? AppCode allows me to pull up a list of recent files with a shortcut and has the last file edited as the top option. This allows me to quickly switch between two files. In Xcode I can pull up the recent files menu, but it's not ordered in terms of recent usage, so I'm constantly having to find my place in it.
And there are some functions I couldn't find a way to bind. Can I bind a key to 'jump to definition'? Or how about 'find usages' or 'rename variable'? I tried to make Xcode work for me, but I just felt like I was having to fight against how Apple wanted me to use it.
It could be that coming from the Java world and using IDEA I was just more used to the default shortcuts. But I really think that IntelliJ puts a lot of thought into keyboard navigation and builds the UI to be more conducive to keyboard navigation.
You are correct in that some shortcuts do require a click, and I suggest you file bug reports with Apple (I've filed a few). I believe that since Xcode 4 is quite new, they just haven't gotten this far yet. I, for one, would love a keyboard shortcut to jump to the definition of the symbol my insertion pointer is in; but I've gotten so used to cmd-clicking the symbol that at this point, I probably wouldn't use it.
It would be nice if I could set shortcuts that don't include the command button. I'm trying to set next/previous tab to be ctrl+tab and ctrl+shift+tab, but I'm required to use the command button so it breaks the standard shortcut keys that pretty much every other tabbed application use.
Safari uses Cmd-Shift-{ and Cmd-Shift-} to switch between tabs, as does Xcode. However, you can change them to whatever you like by selecting Preferences->Key Bindings and searching for "tab"
I've done that, and unfortunately attempting to switch those to ctrl+tab and ctrl+shift+tab instead changes them to cmd+ctrl+tab and cmd+ctrl+shift+tab with no way to not use the command button.
Long time ago I played around XCode 3.2 on my co-workers mac pro and found scm control(tried svn) is very bad. Repository browser just shows commit logs, no way to see which files are changed in a commit. How much has changed in XCode 4?(I am just curious. I do web developing for living.)
Well, Mac OS X exists, so it applies to those developers as well.
I use 4 but I don't think it's particularly good. It improved over 3 in a lot of ways, but it also had some huge steps backwards (why can't I have the debugger in a separate window so it can be on my other monitor?)
I'm also not sure why Interface Builder being integrated is considered a good thing. Designing interfaces is different than writing code, in adherence with the Unix philosophy they really should be separate applications.
You can open new windows and even tabs. I recommend a new window for your other monitor. Here you can open the debugger and even other things if you want.
I guess that would work, but before it was just the debugger, so it could fit on the other monitor with a terminal, Adium, and iTunes fine. With all the extra chrome for a full window it will still take up a lot more space.
So I took an android development class last year and am now dabbling in some iOS development. In doing so I have noticed something of great importance: Apple's developer tools rock (comparatively). Visual Studio is also great and one of the reasons for Windows' sucess.
XCode 4, no matter if its slow or buggy is 10x better than the slowness of Eclipse and having to use the Android device simulator.
Developing for iOS is a dream compared to developing for android. The key? A native IDE which produces native apps.
Not having everything in a JVM of sorts is a huge productivity booster. Google should learn from this.
3.2 for my app that needs interface builder plug-ins, and 4.whatever-the-latest-is for my other stuff. My general rule with all things Apple is to keep at the forefront of what's available, unless you have a very good reason not to. Apple isn't sentimental about dropping support for older products.
Firstly, if, as you say, you are curious what people prefer, why do you ask what they use? The answers could be widely different.
Secondly, what is the "If you're not an iOS developer, this poll doesn't really apply." about? I (occasionally) use Xcode to build command-line tools. Do you want me to vote or not?
Xcode 4 on one monitor, AppCode on the other. Xcode has a great debugger and build process, but it seriously sucks for refactoring code and editing text. AppCode is a bit slow and weak in some areas (namely obj-c analysis), but running both side-by-side gets one the best of both worlds.
36 comments
[ 3.3 ms ] story [ 50.1 ms ] threadThese two features (or lack thereof) sent me running straight back to Xcode 3. Took about 5 minutes, 3 minutes of which was searching for any way of getting at the disassembly window. I suppose I could have worked around the scripts thing if push came to shove.
Anyway, there appears to me to be every reason to stick with Xcode 3 rather than Xcode 4, though maybe Xcode 4 might be OK if you're not some kind of freak, as I appear to be.
Enough grumbling for now... back to work. In XCode 4.
Edit: to qualify my claims.
Slow -- Need I say more? I'm on a MacBook, 4GB of ram, pretty standard hardware. I can't even scroll without stuttering. Apple: at least support your own damn baseline.
Buggy -- The split view is so broken. And tab titles aren't always updated when switching files, which hugely hinders usability. And it sets CC=llvm-gcc... why, why, why, why?!?! There's more but I don't feel like getting into it.
Unstable -- crashes about once a day, more if I'm swapping devices or using Instruments.
Bloated -- 10GB? Really? I didn't realize rounded corners and a compiler took up so much space.
You're correct, you can bind keyboard shortcuts to most actions in Xcode. The problem is that the UI seems to have been built with the mouse in mind, with keyboard navigation as an afterthought. Is it really all that useful that I can pull up a dropdown menu with a shortcut if I still have to arrow up/down to pick my file? AppCode allows me to pull up a list of recent files with a shortcut and has the last file edited as the top option. This allows me to quickly switch between two files. In Xcode I can pull up the recent files menu, but it's not ordered in terms of recent usage, so I'm constantly having to find my place in it.
And there are some functions I couldn't find a way to bind. Can I bind a key to 'jump to definition'? Or how about 'find usages' or 'rename variable'? I tried to make Xcode work for me, but I just felt like I was having to fight against how Apple wanted me to use it.
It could be that coming from the Java world and using IDEA I was just more used to the default shortcuts. But I really think that IntelliJ puts a lot of thought into keyboard navigation and builds the UI to be more conducive to keyboard navigation.
I need to be able to build/test for OSX 10.3.9, which isn't something that I can do on xcode 4.
Though, for my company, the production building is done with xcode 2.something.
For my personal projects, I love xcode 4, so much of an improvement over 3.x.
4.0 on iMac.
I use 4 but I don't think it's particularly good. It improved over 3 in a lot of ways, but it also had some huge steps backwards (why can't I have the debugger in a separate window so it can be on my other monitor?)
I'm also not sure why Interface Builder being integrated is considered a good thing. Designing interfaces is different than writing code, in adherence with the Unix philosophy they really should be separate applications.
XCode 4, no matter if its slow or buggy is 10x better than the slowness of Eclipse and having to use the Android device simulator.
Developing for iOS is a dream compared to developing for android. The key? A native IDE which produces native apps.
Not having everything in a JVM of sorts is a huge productivity booster. Google should learn from this.
Secondly, what is the "If you're not an iOS developer, this poll doesn't really apply." about? I (occasionally) use Xcode to build command-line tools. Do you want me to vote or not?