XCode VS Visual Studio
In general, my experience with XCode has been fairly positive. I’m going to give my honest opinion coming from a Visual Studio background. Please note: I don’t proclaim to be an XCode expert and there may be solutions to some of the complaints I have listed. However, the goal of this post is to provide an insight regarding into the “out of box” development experience for anyone who is considering iPhone/Mac OS development. Whilst significant improvements have been made in the last few releases, I still think it is not quite up to scratch when compared to Visual Studio. Perhaps this can be explained by the fact that Microsoft has a much bigger share of developers than Apple and has spent more time and effort evolving their IDE. Here are some of the things I found frustrating with XCode, compared to Visual Studio:
Window Layout
XCode’s default windows layout opens a thousand windows for debugging and source editing. The first thing I did when I started using XCode was enable the “All In One” window layout. Coming from Visual Studio, this was the only layout I could work with. When you work in “All In One” mode, you can only have one source file open at a time. It would be nice to have tabs for the files you have opened, so you could quickly switch between them without having to scan the project tree to find the relevant file you are after.Code Sense
XCode’s code completion (aka Code Sense) does not seem to be as smart or fast as IntelliSense. There are some constructs that should be auto-completed but aren’t (at least not to my knowledge), such as property declaration.Debugging
XCode’s uses GDB as its debugger and provides fairly decent debugging capabilities. However, some debugging features can only be accessed by typing GDB commands in a debugging console. The visual debugger has a few minor annoyances. When inspecting classes from external frameworks (such as Foundation, UIKit etc), sometimes you can see the members and sometimes you can’t. The members are also shown hierarchically, requiring you to drill down to see members of superclasses. Also, expressions are configured in a separate window!Stability
This is a big one. I could probably count on one hand the number of times Visual Studio has crashed on me over the years. However, XCode crashes at least a few times a week. It’s hard to put a finger on what seems to cause the majority of the crashes I have experienced, but it seems to be an inherent problem with the code completion. I’ve also experienced a very annoying bug which causes all the text to be aligned to the left when the code completion gets its confused.Integration
XCode does not feel like an IDE, it feels like a text editor that integrates loosly with other components you would find in an IDE. For example, if you want to make changes to the user interface you need to launch Interface Builder. Interface Builder is launched as a separate application, with another multitude of windows being opened! I think some improvements could be made here to make development more productive. Why can’t we edit our UI in a pane within XCode? It’s good that XCode works with all these different tools (Instruments, Shark, Interface Builder, GDB etc). But all these things should be more tightly integrated presented within XCode. I shouldn’t have to know that it uses Interface Builder for the UI, GDB for debugging, Instruments for inspecting memory leaks, Shark for something else.Conclusion
From the above critique, you might get the impression that I have been fairly scathing of XCode. I am being critical, because I enjoy iPhone development and would like to see XCode evolve enough to compete with the likes of Visual Studio, Eclipse, IntelliJ and others.-
unsolicitedd liked this
-
componentcip liked this
-
celebsdrunkshoes liked this
-
averseexhaus liked this
-
nathanpiper posted this