That’s what the logo at the bottom left of our website says, and we do mean it.
Being awesome as they are, the folks at Jetbrains had handed us out an Open Source Project license for IntelliJ IDEA Ultimate last year, and as I write this, they just renewed it for another year. And no doubt, we not just love IDEA, but for some it is a necessary piece of software used daily.
One interesting thing to note about IntelliJ IDEA , from the perspective of an Android developer is, that while Android Studio is based on IDEA, there are certain versatile features of IDEA that are missed out.
For eg. IntelliJ IDEA, with the Android plugin, has support for both the new Gradle based project structure as well as the older ant based project struture that people who work on Eclipse would be more familiar with. When we work with AOSP, this is all so more important because for packages to build in AOSP tree it is important for them to be in (/src, /res) structure, and not in (/src/main/res, /src/main/java) format.
Also IntelliJ IDEA’s “Project Structure” dialog gives far greater control over the way the project is set up than the one on Android Studio.
But the biggest advantage anyway is the fact that IDEA is polyglot IDE. So when you open an Android project with the Android plugins, it behaves like Android Studio, but with exactly the same ease and comfort, you can open a pHp or Python or Scala project.
For eg, a subproject inside AOKP, pyrrit , which helps us interact with the the gerrit easily via command line, is written in Python is developed completely in IDEA.
Jetbrains has made a name for itself with loads of awesome IDE’s like PyCharm , WebStorm etc, but IDEA is the king of all. If you have Python, HTML, pHp etc plugins in place, IntelliJ IDEA is as goos as Android Studio, PyCharm, WebStorm, everything in the same place.
Before IDEA, I was an Eclipse loyalist. (I sort of still am when C/C++ is concerned), but some of the things that won me over were
- Really responsive IntelliSense
- Quick and responsive “Find usage” and “Find declaration” implementations
- The Darcula theme. (Seriously, one of the rare IDE’s that got dark theme bang on)
- Comprehensive code refactoring, cleanup, reformatting, renaming solutions.
- Mnemonics, macros and abbreviations that are easy to set up and easy to use
But before you take the jump hearing all these good stuff, let me warn you about a couple of things that are NOT present, I wish so badly they were.
- First is C/C++ support. I hate the fact that I cannot use IDEA for my GTK or Qt development, or for me AVR/Arduino and electronics projects
- I also sort of love that Eclipse lets you keep multiple projects open in the pane. IDEA allows only one project at a time. You can have multiple instances of IDEA open though, but that’s a huge memory hog.
With Google working hard to add NDK support the Android Studio, and the JetBrains team also working on adding C++ support, I am guessing C/C++ support isn’t a long way away, and once that’s there, I for one, am sure to say good bye to whatever other IDE I have on my laptop :D
In conclusion all I can say is, for Python, Java, Scala, pHp and a a lot of languages, IntelliJ IDEA is, if not the best, but surely on the best IDEs out there. Plus the seamless integrations with Google App Engine, Tomcat, dJango, Play framework etc make it even more powerful. Right down from AOKP’s founder roman, to almost every core team member of AOKP including kecinzer, BMc08Gt, KhasMek, down to me (that is championswimmer) would recommend it for general development.
NOTE: Now that we are mentioning it, you should know, we maintain .iml files (IDEA project setups) in a lot of the packages we maintain like (SystemUI, DocumentsUI, ROMControl, Torch, Settings). So you can pretty much open these packages right up in IntelliJ IDEA and start coding.
Also if you want to code an App in IDEA/Studio (or Eclipse too), our build folder has the functionality to generate a AOKP-specific SDK for you so that you get access to all those hidden juicy API’s that we have added to stock android ;)