Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Poll: How do you use XCode?
44 points by stephth on Aug 7, 2011 | hide | past | favorite | 67 comments
I'd like to get an idea about if there's a substantial space to innovate in developer tools that target iOS/OSX, or if XCode is seen as the canonical all-in-one tool by most.
Project management and editor.
228 points
I develop for iOS/Mac but rarely use it.
45 points
Project management only. I use an external editor.
22 points
As an editor. No project management, no iOS/Mac development. (late addition)
3 points


Doing professional iOS development (and hobby projects with the platform), I've been spending a minimum of 8 hours a day in XCode 4 and there are a lot of really big issues. My foremost grievances:

- A bizarre tab design that, despite the ~month I've had to get accustomed to it, is still compromising my efficiency

- An inability to cope with external modification of project files (e.g. update/merge will often break your project configuration unless you quit the app beforehand)

- Project files maintain their own fake directory structure (groups) when in nearly all cases you just want a 1-1 mapping to what you've got on disk.

- There are an abundance of pretty conspicuous UI bugs the Interface Builder component/panel (e.g. UI elements failing to draw)

That said, I'm a big fan of the humorous error dialog I get to see every couple of hours asking me if, after the application's encountered a critical exception, I'd like to "continue" or "crash".


Project files maintain their own fake directory structure (groups) when in nearly all cases you just want a 1-1 mapping to what you've got on disk.

I've been using IntellJ for the last few days and was shocked when I tried dragging a file from one folder to another and it just merrily moved it for me. I can also just drop a .png in the right directory and IntelliJ not only adds it to the project, it also registers it as a resource I can refer to directly in code by ID. XCode makes this kind of thing such a pain in the ass.

I've also forgotten how useful a refactoring tool that actually works can be.

XCode is a perfect example of the strengths and weaknesses of the Apple approach. It's more consistent and requires less setup than third-party IDEs, but if you want to bend it a little beyond its comfort point you're SOL and you have no recourse because nobody is dumb enough to challenge Apple on its home turf.


It's definitely buggy (ver. 4.1). In general, save often and you should be OK. It tends to crash on me about once every other day. Apple will probably squash the bugs in due time, but it's definitely less stable than Xcode 3.x was.


Cocoa without first-class autocomplete is too horrible to contemplate. Unfortunately my 2010 MBP, which ran XCode 3 quite well, doesn't seem to be up to the task of running XCode 4. You know something is wrong when XCode makes Java IDEs look lean & snappy.


I'm on a 2009 MBP and have no such problems. Don't know where they could originate from, though.


On my 2009 MBP I noticed a significant performance decrease going from Xcode 3 to Xcode 4. It's not unusable, but Xcode 3 was quite snappy by comparison.

You can improve performance slightly in the code editor by turning off the code folding and live issues (which I didn't really care for anyway), but the integrated interface builder is horribly slower than the one in Xcode 3.

Of course now I've upgraded to a 2011 Macbook Air and Xcode 4 performance is now...acceptable.


Do you mean that you find XCode 4 responsive? Compared to XCode 3? This isn't stopping me from getting work done but it's very sluggish compared to XCode 3 or even IntelliJ.

Running it as a 32-bit app seems to have helped a bit.


Personally had no Xcode4 performance issues on 2010 MBP. Seems quite snappy to me (not running filevault though so YMMV...)


I'm on a 2007 MBP and have no such problems.


I think there's something wrong with your system... I was running XCode 4 on a 2006 Macbook (the one with a Core Duo processor), and it worked fairly well. Not as well as my 2011 MBP but it was still usable.


It's usable. It's just annoyingly slow. I'm still getting work done but it feels like swimming upstream.


I too run it on a 2006 MacBookPro1,1, and while it may not be lightning fast, it certainly is not slow. I've heard reports that running in 64bit mode also adds a bit of overhead, which may be impairing his performance, and which we cannot experience because we don't have 64bit processors.


Are you using the new disk-wide FileVault in Lion? I had to turn that off because it was making MacVim and XCode both run horribly slow (apparently they both write to disk constantly).


I am using Lion's whole-disk encryption but it was also really slow in Snow Leopard for me without FileVault.


This might be a long shot, but try deleting the project.xcworkspace directory for your project. I've heard doing that can speed things up.


You really need 8 GB of RAM to make it dealable.


It runs fine on my Mac mini with 2GB of ram. I guess my projects are not very large. I only do iPhone dev on it.


Jetbrains is making a go at it:

http://www.jetbrains.com/objc/

The killer app for this will be that you can install their VIM plugin, so you get VIM bindings inside of a first-class Obj-C IDE.


These guys will be a great indicator of whether there is room for innovation or not. Jetbrains make great stuff.


Their VIM plugin crashes using RubyMine for me so often that it is very hard to use. When it crashes, you have to restart the entire program or disable it. If you choose to ignore the error and continue, you may be unable to enter text at some point.


Man, I'd be really wary of trying this, even if I knew most programmers hated Xcode. I don't think you could find a worse platform to build dev tools for than Apple's.

For one thing, it's awfully complicated: think about stuff like the iPhone simulator. For another, Mac users are notoriously finicky. Personally, if you came up with an alternative that was great in almost every way, but was as graphically ugly as Eclipse, then I wouldn't switch. I'm kind of sad that years of Mac use has made me care about this kind of thing, but there you go.

Finally: Codewarrior. When Apple made the switch to x86, the Codewarrior guys decided that was one sea change too many, and gave up the fight. On the other hand, you could argue that that project was mismanaged for many years before that, and was likely to topple sooner or later.


I think it MIGHT be worth it for some specialized niche that isn't covered yet, but yeah I've tried several Rails-oriented IDEs like RubyMine, etc. and nothing really "feels" right compared to XCode. For some reason, using Eclipse doesn't really bug me that much on Windows, but on OS X it's just really frustrating.

I'd argue that it would be very difficult to make a better XCode or a better vim, but there's probably room for a better TextMate or "XCode for ____".


Regarding CodeWarrior, the project was definitely on life support for years beforehand, as they never really put their weight behind the transition to OS X. Regarding the x86 transition, they probably wanted out by that point but they really had no choice, as they had sold their x86 compiler tech (IIRC to Nokia) just a couple of months before.


Yeah I think this is a losing proposition, just like trying to compete with iTunes on the Mac. The Jetbrains guys may find a niche here with their Objective-C IDE, but they've already done so much of the groundwork that it's much less risky for them.


I tried for awhile to get a workflow going with Xcode and Emacs, but came to the conclusion that I just have to suck it up and use Apple's tools front-to-back to build Cocoa stuff (that may just be me; for instance, I think Marco Arment uses TextMate alongside Xcode).

I don't use Xcode for anything but that; notably, if I'm writing C code, even C code that I might end up calling from Cocoa stuff, I'm doing it in Emacs.


I wish there were third party tools that handled cocoa properly. I can't stand Xcode 4, the whole thing is atrociously bad, especially with limited screen real-estate (I do all my iOS coding on a 13" MBP). With Lion, animations in Xcode now chug and choke.

It really is one of the worst development environments I've ever used. Of course, I'm also spoiled, having used Visual Studio for most of my development career. And though that has its warts, it rarely gets in the way of letting you develop, and when it does, someone, somewhere, has written an extension that fixes it.


I have a 13" MBP but I also have a 23" external monitor. I love Xcode 4. Much better than 3. I have used Visual Studio and currently use Eclipse at work.


Totally agreed. Xcode 3 was fine, but Xcode 4 feels like they just changed it up for the sake of change without actually adding any improvements. The integrated interface builder is particularly awful.


I'll take Xcode 4 over the abomination that is VS 2010. It's like VS 2008 but slower and purple.

I do hate the way Xcode 4 does tabs though and it's the one thing that I wish it did like Visual Studio.


i am still using a 13 inch 2009 mbp. up-ed the RAM to 8gb and it works great with Xcode4!


I'm not sure how this poll is intended to inform your plans. I use Xcode for everything, but I would also be willing to pay large quantities of your currency of preference for something better. Xcode is the canonical all-in-one tool for me, but this is not because it's good, only because there's no real alternative.


I find myself trying to do vim keystrokes in XCode, but I've tried using vim for editing iOS code and it's just not as enjoyable as using XCode. I use vim for everything else, though.


I'm forced to download and install all seventy gajillion gigabytes of it in order to get OS X to build anything in different languages like Ruby and Python.

I'd love it if I could just download build tools from the App Store rather than installing all of Xcode itself.



I tried to avoid the XCode 4 download when I upgraded to Lion and I used this, but it didn't solve my problem. Imagemagick wasn't working after the upgrade (installed using homebrew and it kept linking to an old version of libpng). I had to bite the bullet and download XCode 4 and everything worked.


> https://github.com/kennethreitz/osx-gcc-installer

That looks very good, especially for my disk space constrained 128GB 11" Air. I don't need XCode on it, but I do need gcc and friends if I want to build things with homebrew for development on the road.

Saving 4GB+ of disk space is of huge benefit to me.


... mother of god.


Begrudgingly. But, I've probably just turned into a curmudgeon who prefers the now-deprecated Xcode 3.

I don't dislike Xcode 4 enough to start using TextMate and xcodebuild/xcrun, though.

(In case my choice wasn't clear, "Project management and editor".)


Xcode 4 is so incredibly slow for me, I edit my code in TextWrangler and limit myself to testing with Xcode.


I've got no issues with xcode4 as such, however it has made some significant changes under the hood from xcode3.

My problem is it seems quite a few libs & frameworks I use for iOS are designed for xcode3 & tend to be break in xcode4 without significant tweaking & hair-pulling.

But hey, plugin frameworks & project templates are for wimps anyway ;)


Actually, I use XCode solely as an editor. No project management, no iOS/Mac development.

Sadly, your poll didn't consider all permutations.


You're totally right. Just added. You're the first to note it, so I'm hoping the late addition won't be too prejudicial for that option.


If I could find an easy way to ditch XCode and still do productive iOS development, I'd abandon it in a heartbeat. The one saving grace of it is that it supports a decent number of Emacs style text editing shortcuts (a side effect of OSX using Command rather than Control for normal shortcuts).


I think a good place to start would be making a vim binding for xcode. Realistically its very difficult to escape the xcode ecosystem, however vim bindings would probably be enough to make it great.


This would make me _so_ happy. There used to be an InputManager hack that could give you Vim bindings in all Cocoa apps, but alas that no longer works. Sometimes I wished I'd learned EMACS instead so that I could reasonable expect key-bindings in non-console apps.


Try KeyRemap4MacBook. It's not a perfect solution but get you somewhere there.


Xcode is broken beyond repair. There are too many horrible problems with it to mention, but some pet peeves:

* The tabs. Xcode 3's file switching was terrible, but it felt impoverished, not dysfunctional. Tabs should not work like a web browser, it just doesn't make sense. (Oh, closing the last tab closes the entire project! WTF!)

* The lack of correspondence between the files/folders in the project and the file system.

* The project settings. They were awful and incomprehensible in Xcode 3, they got even worse in 4.

* Some colours are not overridable. For example, the background colour given to lines that have warnings make it near-impossible to read the text in themes with dark backgrounds. Example: http://dl.dropbox.com/u/12091499/xcode_screenshot.png

* The navigator/utility/assistant editor system is broken. Why can't I have the symbol navigator visible at the same time as the project navigator, like in Eclipse? Why not generalize the different panes/subwindows into a consistent system where I can drag stuff around to create a layout of my choice?

* Toolbar is not editable, unlike most Mac apps.


"to meet macports dependencies" has gotta be on the list!


If I could, I would answer "As little as possible". If there's anyone building towards scripts that will, say, build an app and run it in the iOS simulator without using Xcode, I'd love to dive in and help out. Otherwise, someday I'll get to writing them.


Emacs, xcodebuild, and makefiles for me.


I develop for iOS/Mac but rarely use it.

I'm surprised to see this one with (currently) almost twice the votes compared to Project management only. If that's your case, what's your workflow?


Yes, at the very least you need to use XCode to install the app to a real device and run it. If someone's figured out how to do that from the command-line, I'd be really happy...


How about, for homebrew?


heh, exactly. I said macports, but yeah. http://news.ycombinator.com/item?id=2858413


I wouldn't call that using XCode.


True, more like XCode using me to increase its install base.


I have to use XCode for iOS development, but hate may not be strong enough a word for what I feel toward it.

Autocomplete works correctly MAYBE 50% of the time. It works 0% of the time on brand new files. Takes maybe an hour or two to get up to that vaunted 50% success rate.

I'd imagine it may have something to do with XCode's horrendous parsing of preprocessor macros.

Also It either crashes or balloons up above 4GB of ram usage at least once or twice a day.

Can't wait for Jetbrains to get their stuff to stable.


I use it like a boss. That's how.

(But seriously. I love the Xcode workflow, and now that it's better integrated with its own tools and git, I love it more than ever.)


Loved it before Xcode 4, not hate it with a passion. Sure, I am willing to get used to the different way it works, but the fact I can no longer drag files from other projects makes it almost worthless to me.


I use XCode for iOS/Mac development, but not really all too happy with it. I use Vim for everything else, and I too find myself trying to use Vim keybinds in XCode.

My first iOS application (for iOS 2) was done on a Linux machine in vim and makefiles, because my iBook G4 wasn't good enough to run gcc, apparently.

Might switch back to that (or maybe replace makefiles with cmake)


This is the reason I've never become a Vim user. My emacs muscle memory can translate directly into almost any other editor with five minutes of configuration (less on a Mac). But hacking modality into a non-Vim editor is serious work.


Only IB is lacking in useful I find. Xcode, overall, is quite a formidable IDE.

I also use Eclipse for my Java development but it feels like a shell with plug-ins carrying it whereas Xcode feels.... whole, all on its own. It still has room to grow and if the past is any indication it will.


I am still using XCode3. Version 4 is pretty buggy and unstable to me. And the transition is not seamless. Once I tried to put a project on dropbox and worked alternatively with version 3 and 4. A mess. I will stick to 3 until 4 gets more stable.


* Only use it for the iOS simulator (I'm doing some HTML5-type development, and I want to see what it looks like on an iPad ...)


I use it as the bootstrap step for Homebrew and RVM and other things that depend on GCC then I ignore it.


I have it because I have to, and I close it whenever it opens.


^ Option 4: "I don't"




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: