Google’s Android Studio vs. Eclipse: Which Fits Your Needs?

And once everything's coded, you can work on creating some decent icons.

And once everything’s coded, you can work on creating some decent icons.

Google’s Android Studio is a development tool for Android based on the IntelliJ IDEA platform, one that managed to attract a lot of hype when it rolled out in mid-2013. Roughly a year later, the platform is still in “early access preview,” and work on it is ongoing.

Eclipse, on the other hand, is the granddaddy of IDEs; although it doesn’t offer native Android support, it does have some nice tools to help you build Android applications—one such tool is the Google Plugin for Eclipse, made by Google.

So let’s compare Eclipse and its Google-made Google Plugin with Google’s own Android Studio, developed with the help of the people who make IntelliJ IDEA. Which one should you use?

Before we can offer any such advice, several things need to be factored in:

  • Are you a small (i.e. one or two developers) shop? Or a huge Fortune 1000 corporation with a team of dozens or even hundreds of employees?
  • Is this a new project?
  • If this is not a new project, are you currently using Eclipse and considering switching to Android Studio?

Drag and Drop Gui Designer

One supposedly great feature of Android Studio is its layout designer with a drag-and-drop interface. But the reality is, unless you’re a Visual Basic aficionado who’s spent years drawing out sophisticated 3D interfaces with chiseled buttons and can’t quite break the habit, the amount of time you’re going to spend on drawing out the interface is minimal. Yes, you want a good, usable interface—but if you’re writing a serious application for serious work, most of your time will be spent on code, not tweaking visuals.

Verdict: Draw

Code Completion

The more time you spend as a programmer grinding out code, the more you appreciate code completion. For me personally, the most important part is when the IDE tells me the member names of an object. In general, I found that the code completion is better on Android Studio than Eclipse, which seems to get a little confused at times and doesn’t always give accurate results.

Verdict: Android Studio (by a hair)

Gradle Integration

Android Studio uses the Gradle set of build tools; in fact, it’s so integrated, it’s next-to-impossible to use a different tool. In other words, you’re stuck: if you’re moving from Eclipse to Android Studio, and not already using Gradle in Eclipse (which offers decent support via plugins), you’re going to have to switch.

That said, Gradle is a really great tool, and if you do make the decision to go with Eclipse, I nevertheless encourage you to look at Gradle’s features, try it out, and see if it fits with your project. And if you want to go with Android Studio, don’t despair about being stuck with Gradle; it’s quite good.

Verdict: Android Studio

Google Cloud Platform

Android Studio has native support for Google Cloud Platform, which allows you to run server-side code using Google App Engine, along with other tasks (such as backing up your users’ data). This is a nice addition, as you probably don’t want your Android app to be isolated. (Of course, you can integrate with other cloud platforms, but Android Studio makes Google integration easier.) Google allows you to create projects in its cloud console, which isn’t just for providing the server for your Android apps—you could use it to create Web-based applications that interact with the Google Maps platform, for instance, or software on your own servers that integrates with Google Docs.

Android Studio also offers tools for integrating apps, testing and running server-side code locally, and deploying to a Google backend server; in other words, everything you need (at least for a start) is there.

But all of this functionality is also available in Eclipse, via the Google Plugin for Eclipse. Yes, you can create a server application within Eclipse and deploy it to Google’s servers. Additional tools let you integrate with the servers such as the cloud database.

Verdict: Draw

User Interface

Eclipse is big, and perhaps a bit cumbersome. I’ve been using Eclipse since it first became popular a decade ago, so I know my way pretty well around its interface and quirks. (I do remember being a bit overwhelmed at first, but let’s face it: most IDEs are overwhelming when you first start using them.) With that in mind, I find that the menu items and tools in Android Studio tend to get me where I need to be a bit more quickly and easily compared to their counterparts in Eclipse, even with the Android plugin.

That being said, there’s another aspect to the interface: Android Studio was built specifically for Android, while Eclipse was built to be a general all-purpose IDE that can be used with any platform and any language (although Java is clearly the main focus).

Verdict: Android Studio

Workspaces and Projects

One thing that I’ve always felt is a bit unnatural in Eclipse is the way it deals with workspaces. When you want to work on multiple projects in Eclipse, you combine them into a workspace. In order to switch to a different workspace, you select the path, and then Eclipse restarts. That always seemed awkward to me. If you want to copy projects between the workspaces, things can quickly turn into a mess—yes, there are proper ways to do it, but it’s very easy to screw up.

I’m not particularly fond of Microsoft Visual Studio, but I’ve used it in recent years more than any other IDE (due to paying customers needing work in it), and I will say that managing projects and workspaces (called solutions) in Visual Studio is far easier than they are in Eclipse, in my humble opinion.

As for Android Studio, you still have the equivalent to Eclipse’s workspaces and Visual Studio’s solutions. With Android Studio, everything is encapsulated into a project. (So in this sense, a project in Android Studio is more like a workspace in Eclipse.) Within your project you have modules; your main set of code, such as the app you’re building, will likely be one module. If you have a library, that will be another module. But other things qualify as a module as well, such as build scripts. To me, this makes a good bit more sense and seems much more natural to me. (Also, for what it’s worth, this is a concept Android Studio inherited from IntelliJ IDEA.)

Verdict: Android Studio

Whither Eclipse, Wither Eclipse

Let’s face it: Eclipse is old. Some may say it’s mature, and that it continues to evolve; that’s true, to a certain extent. But as software engineers, we’ve all worked on legacy systems that need updating, and found that the old code just doesn’t really fit with the new things. Eclipse was certainly built to be an expandable platform; but the core product, the IDE itself, is starting to show its age. Competition is inevitable.

That being said, Android Studio is still in preview mode, without an official release, even if that preview is in pretty fine shape—its status certainly shouldn’t prevent you from using it, at least in my opinion (others will disagree). We’re talking about the IDE, not the platform—you’re writing Java code that runs under Android’s Java runtime engine along with Google’s servers, both of which are mature. If you’re writing good code, you’ll get good results, whether you use Android Studio or Eclipse to produce that code.

Another, perhaps more important issue with switching to Android Studio is Gradle. It’s not hard to switch to Gradle, but if you have a mature project with a build process in place, switching to a different tool isn’t necessarily something you can do on a whim. If your team is a huge corporation with layers upon layers of middle management, such a switch usually requires somebody up that path to agree to it. From a technical perspective, switching might not be difficult—but from a managerial perspective, it might be a nightmare. If you’re a small shop with one or two developers and don’t have a middle manager getting in the way, then switching your build process to use Gradle is pretty easy; smaller shops are usually far more agile and more adept to making changes (and producing software more quickly, for that matter, without 15 six-figure project managers for every two developers, but that’s another story).

If you’re using Eclipse, I encourage you to try out Android Studio for a few days and see how it works for your project. If it fits the bill, then go ahead and switch. This is true especially if you’re relying on the Google plugin for Eclipse, as Google seems to have more focus on Android Studio, and either way you’re tied to Google.

In a similar vein, if you’re starting a new project from scratch, I say first give Android Studio a try, especially if you’ve been using Eclipse for years. Create some of the sample applications and see how comfortable you are in it. If it just doesn’t set right with you, then go back to Eclipse. Otherwise, give it a chance.

Conclusion

Should you switch from Eclipse to Android Studio? I say try it. Use it, see what you think, and make your decision; I suspect you’ll like it. If you’re already using Eclipse, try out Android Studio and, if you like it, decide how easily you can switch over to it (and “how easily” might include getting the sign-off from a middle-manager in another city). You can accomplish the same things with either tool—it’s more a question of ease-of-use.

 

Image: Google

Comments

  1. BY Tim Yao says:

    I just want to know if Android Studio more effective and use less memory or ram.
    Eclipse always ate my Ram about 1G~1.5G, that made my PC running slowly or stuck.

  2. BY Jaydeep Wagh says:

    Hi,

    Thanks for a detailed post about pros and cons of both the IDEs.
    I tried AS a couple of times, but its too overwhelming for me. I dont understand many things that keep going on inside it.

    Having said that I hate eclipse too. Looking forward for AS to mature soon.

  3. BY Dan Dar3 says:

    Have been using Eclipse for quite sometime now, for all sorts of languages (Python, PHP, Java) and I find it comforting and productive, provided you have a somewhat decent computer and definitely lots of RAM help. Eclipse as any Java application will no eat more memory then you allocate it (eclipse.ini, -Xms and -Xmx parameters) – you want to start at 512MB and go from there, depending on how many projects you have open in your workspace. Granted, if you give it too much, you can cause your system to swap heavily, outweighing the benefits, so it’s a bit of a trial and error – Tim, may this blog post will help – http://dandar3.blogspot.com/2012/11/eclipse-show-heap-status.html

    I tried Android Studio a couple of times already and hit all sorts of problems every time with either importing my existing projects and understanding what the error messages mean. The Eclipse community is larger and can provide you with support for all those Eclipse problems. Although you can find some support for Android Studio I found is not as plentiful and gave up on it pretty much in frustration every time. I will continue to give it a shot as it evolves, but I’m nowhere as convinced of its benefits, or at least not to me, an amateur Android developer.

    That being said, while I like Eclipse, I find Google’s approach to the whole business quite appalling. Given the size and resources as a company to produce such poor support and development pace to Eclipse support for Android development is astounding. Eclipse is a public project and such a versatile tool, with tens of modules and plugins actively developed, with public APIs with performance and functionality improvements constantly being made, and with companies like IBM and other smaller ones contributing with either management or developers to the projects, it baffles me sometimes to see how little Google has invested in this, considering the amount of apps and devices Android supposed to be running (example the somewhat recent update where you could not update AVD images anyore and it took a couple of weeks before they fixed it – I mean how can that go past QA, unless you don’t have one and it’s just a couple of developers ticking away at this on their own time). And instead of improving support for Eclipse, they’re not even committing to Android Studio, so you as a small developer are left in between, trying preview builds and knocking your head into all sorts of issue, instead of spending time building the app. Not cool, Google, not cool at all.

  4. BY @KiguruNganga says:

    Lovely review you have done on both IDEs, I like the whole play by play aspect of it all. I am coming from a graphic design background into gamedev/app development/ programming and being selftaught in most of my skills. The thing is i haven’t used either eclipse or android studio after reading this i find myself quite conflicted, should I start on eclipse and move to As or just start with AS.

  5. BY Emma Stacey says:

    I used AS however I didn’t like over eclipse because its auto complete is very poor than eclipse and It always shows me wrong thing. For eg. I want to use Intent In Eclipse is Write In and Got Intent and auto import as well. In AS I have to Import Intent Package manually.

  6. BY Jiri Krivanek says:

    Did I miss something or none really noticed how significantly slower the builds are under the Android Studio/Gradle compared to Eclipse?

    We are using Android Studio for a few months already a two projects and find it quite good. So for new projects I can recommend it. But for the low traffic old project we stick with the Eclipse.

  7. BY Ravi says:

    Can Android studio be able to write standard java(non-android)programs like in eclipse?

Post a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>