Since the start of native app development on Android and iOS, there has been a blazing debate as to which IDE is better. And if you’re new to the development scene, you may be trying to decide which IDE you should learn and use to develop. Or perhaps you’re already a developer for one and you’d like to expand into the other. Regardless, there are a few things to consider before you begin your adventure.
First is setup. Simple enough, but it needs to be taken into account. Eclipse is designed for Android and is free, open-sourced and compatible with most machines. Xcode, on the other hand, is closed and is free if installed on an Apple machine, which also happen to be the only machines it is compatible with. There are pros and cons to both, but really closed vs. open source is another discussion entirely.
Xcode is generally a little bit lighter weight. Eclipse has been said to use a lot of memory and CPU, but with a few tweaks, I’ve found that it can be configured to run significantly lighter than its presets may suggest.
Next up are interfaces. The Xcode interface is pretty sleek, much like everything Apple does. It makes your navigation area, editor area, utility area and debug area available to you all in one frame. Eclipse feels very much like a Windows 98 interface and is a little less intuitive when it comes to functions such as debugging. There are lots of menus– especially when compared to Xcode. However, for those of you familiar with Microsoft Office pre-2000s, this could be a good thing. The Eclipse UI is technically fully configurable; whereas with Xcode, what you see is what you get.
It does seem that the lack of easy navigation contributes to a steep learning curve for Eclipse. As does the lack of support. In this case, Xcode is extremely well documented by Apple and you can find plenty of support directly from them. You may not find the same to be true of Eclipse. While there are plenty of courses and documentation available online from third parties, it’s often assumed that the reader has a significant amount of prior knowledge. This means that beginner developers may have a difficult time finding the information they need with ease.
Features definitely differ in each as well. Xcode tends to bundle some tools that are separate in Eclipse. For example, where you would use bundle+product configuration+feature in Eclipse, you would use target summary for in Xcode. Many of the specifics are version dependent. Xcode4 has some new features including an all-in-one workspace, optional command-line tools and a simplification with the omission of the /developer directory.
Each comes with a few features that the other lacks. Eclipse comes with the ability to inspect hierarchy and members and coded UI testing. Xcode includes a code stepping feature in its debugging area as well as testing tools including a great iPhone simulator. Each contains libraries and frameworks that are specific to their language or platform.
Eclipse allows for ease of transport to devices in just a click as well as quick uploads to the Android Marketplace. And though the loose code requirements of Eclipse (in conjunction with the Android marketplace) make it easy to pass it through to the market, it’s also a lot easier to write an app with core issues such as memory leakage. Xcode and the iOS market have a bit higher standards. And while this means it’s slightly more difficult to put an app on the marketplace, it also means that the app has be carefully reviewed prior to launch. And honestly, you should pretty easily meet these standards anyway just by following best practices.
Xcode doesn’t leave you on your own in this regard either. The IDE has a great code completion feature that makes it easier to code with the somewhat clunky C. Eclipse is extremely flexible and supports several databases that Xcode doesn’t like MySQL and Oracle.
Out of all the arguments, there is one thing that I’ve found many developers on both sides agree on. Xcode is better suited for Objective-C and Eclipse is better for Java. In other words, each was designed for a specific language and they work well for that language. So if you want to be an iPhone developer, use Xcode. If you want to be an Android developer, use Eclipse. And if you want to develop for both, use both. Or just migrate to a text editor or IDE altogether such as IntelliJ IDEA or Sublime Text 2.
Learning to code for either iOS or Android depends on a lot more than just the IDE. You may love Xcode, but hate developing in C. Or you may find that the apps you want to develop are better suited to one market over the other. There are pros and cons to both operating systems, markets, languages and of course IDEs. It’s all a matter of personal preference.