Thoughts on the Current State of Android IDEs
I've repeatedly been getting the question "which IDE should I use for Android?" recently so I'm writing up a brief summary. Here's my current thoughts on the state of Android IDEs (circa December 2013):
Eclipse + ADT
The original Android IDE, officially supported by Google.
- Supports the most features for creating/building Android apps.
- Abundant documentation, both from Google and from years of people asking questions about it on StackOverflow.
- Many 3rd party tools, since it's been the main player for years.
- Relatively stable; your project won't suddenly stop building when you update your sources.
IntelliJ IDEA + Android Plugin
A Java IDE that has an Android plugin built for it by IntelliJ. This is the one IDE I haven't used extensively, so take my comments with a grain of salt.
- A fan favorite; people rave about IntelliJ (especially those who were burned in one way or another by Eclipse).
- As stable (if not more so) than Eclipse, because it lacks some of the built-in instabilities in Eclipse (aka, randomly crashing every once in a while).
- Does not support NDK.
Android Studio + Gradle
Android Studio is a fork of IntelliJ IDEA with gradle-based build support.
- Gradle is the future of Android build processes, so using it you'll be one step ahead of the curve.
- Since it's still heavily in development Android Studio is quite unstable. It's gone from rarely working to only stabbing you in the back every once in a while, but use of it requires extra maintenance work.
- Does not support all features, like NDK or lint. (There are workarounds, though.)
- Improves weekly because that's about how often they push out updates. If you love cutting edge technology that's a pro, if you like stability that's a con. (You can switch off of the "canary" update channel if you're more conservative.)
- If you need all Android features (like NDK support), use Eclipse.
- If you hate Eclipse, use IntelliJ IDEA.
- If you love gradle builds or want to plan for the future and are willing to put in some extra effort, use Android Studio.Also, if you've got anything to add let me know - I'd be curious if there's some important pieces I'm leaving out, as I am far from an IDE expert.