We have an existing java code base where we use intellij idea for development.
We are building an android application where we will be sharing code and other resourc
For Android development, you would be best off using Android Studio (preview 1.3 is now available).
Since Android Studio is based in Intellij, your "learning curve" should not be a problem.
For using "common resources", I assume you are referring to code ... and that should be in a repository (git / github / ...).
In the past, there was no functionality in Android Studio that was not present in IntelliJ IDEA with the Android plugin installed. However, since its inception, Android Studio has grown and has diverged more and more from IntelliJ IDEA, especially recently. There are now some plugins bundled in Android Studio that are not compatible with IntelliJ IDEA. One such example is the Android APK Support which was first released in June 2019. Moreover, there are some Android based plugins bundled with Android Studio that are not even listed on the JetBrains Plugin site (at this time) such as "Android Games", "Android NDK Support", "App Links Assistant", among others.
Thus at this time, it is likely best to use Android Studio for Android Projects, and use IntelliJ IDEA for any ancillary development, such as server side applications.
The JetBrains Toolbox App makes it easy to install and use the two IDEs side by side. It also makes upgrading (and rolling back if ever desired) super easy as well. The toolbox did not support Android Studio when it first came out years ago. And thus picking one or the other was more of an "issue". Additionally, by using the Settings Repository Plugin (bundled in both IDEs) you can easily keep settings between the two IntelliJ Platform IDEs in sync. (See Share settings through a settings repository in the IntelliJ IDEA documentation.) Thus, between the Toolbox App and The Settings Repository Plugin, it's convenient (IMHO) to just use both.
First, a disclaimer... I have only lightly used Android Studio as I do all my work in IntelliJ IDEA. But I have been an avid user of IntelliJ IDEA since 2003.
As Android Studio seems mainly to be a modified version of Intellij my question is are there totally specific features Android Studio has that are indispensable? Incompatible? "Standard"? vs Intellij Idea community or ultimate? Are the two interchangeable with a proper plugin set?
The quick answer is there is nothing you can do in Android Studio that you cannot do in IntelliJ IDEA (Community or Ultimate) with the Android Plugin installed and enabled. Here is a screenshot from the IntelliJ IDEA features matrix that makes that point:
Basically, Android studio has more "branding" for Android than IntelliJ IDEA. And since it is just an Android IDE, it can be more "focused". As I mentioned, there is nothing you can do in Android Studio that you can't do in Intellij IDEA. But the opposite is not true. There are a number of (non-Android) things you can do in IntelliJ IDEA (both the community and ultimate editions) that you cannot do in Android Studio.
Regarding the question on whether or not Android studio can use IntelliJ IDEA plugins, that's going to depend on the plugin and what components (within the IntelliJ plugin API) it leverages. When you write a plugin, you have to declare (in your plugin descriptor) what API dependencies you use. Some examples are com.intellij.modules.lang
, com.intellij.modules.java
, AntSupport
, and Git4Idea
. There are dozens, if not hundreds, of possibilities - including other plugins. So if a plugin (or one of it dependencies) ends up using something in the plugin API that is not included in Android Studio, that plugin will not work. For example, one plugin I wrote (that has absolutely nothing to do with mobile development), lists on the JetBrains Plugin page as being compatible with Android Studio because it only depends on com.intellij.modules.lang
and com.intellij.modules.java
. So while it can go both ways, it is more likely that (due to IntelliJ IDEA having more components installed) a plugin may only be compatible in IntelliJ IDEA as a result of a dependency on something that is unique to that plugin.
Will Intellij always be lagging releases being Android Studio as it is Google's "Official" Tool.
It can go both ways. JetBrains may add things that take time to hit Android Studio; and Google may add things that take time to hit IntelliJ IDEA. It is most likely, however, the latter will be more prevalent. However, I do not know off hand how long that delay is. This JetBrians blog post may help in that regard: IntelliJ IDEA and Android Studio FAQ
My personal recommendations would be: If you know you are only going to be doing Android development, then go with Android Studio. Also new Android developers would likely find Android Studio a better fit since most documentation & tutorials will show it and there may be the occasional minor difference (such as where something is located in a menu) in IntelliJ IDEA. But if you will be working in JVM dedicated projects using Java, Kotlin, Groovy and/or Scala, or with other languages (Python, php, html, css, JavaScript, etc., etc.) or any server side (or "enterprise") code - either for your Android apps or for other work, then go with IntelliJ IDEA.
Edited Aug 4, 2018 for some clarification and an added screenshot.
Updated Nov 25, 2019 to add new information.