web-dev-qa-db-fra.com

Il est préférable d’utiliser Android Studio ou Intellij Idea avec des plugins?

Nous avons une base de code Java existante dans laquelle nous utilisons intellij idea pour le développement.

Nous construisons une application Android dans laquelle nous partagerons du code et d'autres ressources avec le code préexistant et la base de ressources.

Comme Android Studio semble être principalement une version modifiée d'Intellij, ma question est la suivante: existe-t-il des fonctionnalités totalement spécifiques Android Studio indispensables? Incompatible? "La norme"? vs communauté Intellij Idea ou ultime? Les deux sont-ils interchangeables avec un plugin approprié?

Si nous utilisions Intellij Idea avec les différents plugins de support Android, ces plugins sont-ils identiques à ceux fournis avec Android studio? Avec cet ensemble de plugins, les programmes seront-ils virtuellement interchangeables?

(J'ai remarqué que le support "ant" n'est pas dans Android Studio. Cependant, tout ce dont j'ai besoin, c'est d'une certaine capacité à appeler des exécutables à partir de IDE avec un ensemble d'entrées configurables dans le menu pour diverses commandes - J'utilise maintenant le support intellectuel pour le faire car il était disponible)

Est-ce qu'Intellij sera toujours à la traîne des versions Android Studio, car il s'agit de l'outil "officiel" de Google.

S'ils sont significativement incompatibles, quel est le moyen le plus simple d'utiliser des ressources et des outils communs entre les deux systèmes?

Cette question est en quelque sorte une question de conseils d'expérience: où investirons-nous au mieux notre courbe d'apprentissage et notre dépendance à l'infrastructure et perfectionnons-nous nos planches de surf chaos?

Merci.

101
peterk

Tout d’abord, une clause de non-responsabilité… Je n’ai que très peu utilisé Android Studio car je fais tout mon travail dans IntelliJ IDEA. Mais je suis un utilisateur assidu d’IntelliJ IDEA depuis 2003.

Comme Android Studio semble être principalement une version modifiée d'Intellij, ma question est la suivante: existe-t-il des fonctionnalités totalement spécifiques Android Studio indispensables? Incompatible? "La norme"? vs communauté Intellij Idea ou ultime? Les deux sont-ils interchangeables avec un plugin approprié?

La réponse rapide est qu'il n'y a rien que vous puissiez faire dans Android Studio que vous ne puissiez pas utiliser dans IntelliJ IDEA (Communauté ou Ultimate) avec le plug-in Android installé et activé. . Voici une capture d'écran de la matrice de fonctionnalités IntelliJ IDEA qui le montre bien: enter image description here

Fondamentalement, Android studio a plus de "marques" pour Android qu'IntelliJ IDEA. Et comme il est juste un Android IDE, il peut être plus "concentré". Comme je l'ai mentionné, vous ne pouvez rien faire dans Android Studio que vous ne pouvez le faire dans Intellij IDEA. Mais le contraire n'est pas vrai. Il existe un certain nombre de choses (non-Android) que vous pouvez faire dans IntelliJ IDEA (éditions de la communauté et ultimes) et que vous ne pouvez pas faire dans Android Studio.

En ce qui concerne la question de savoir si Android studio peut ou non utiliser les plug-ins IntelliJ IDEA, cela dépendra du plug-in et des composants (au sein de l'API de plug-in IntelliJ) qu'il exploite. Lorsque vous écrivez un plugin, vous devez déclarer (dans votre descripteur de plugin) les dépendances d'API que vous utilisez. Quelques exemples sont com.intellij.modules.lang, com.intellij.modules.Java, AntSupport et Git4Idea. Il existe des dizaines, voire des centaines de possibilités, y compris d'autres plugins. Donc, si un plugin (ou l’une de ses dépendances) finit par utiliser quelque chose dans l’API du plugin qui n’est pas inclus dans Android Studio, ce plugin ne fonctionnera pas. Par exemple, un plug-in que j'ai écrit (qui n'a absolument rien à voir avec le développement mobile), présente sur la page du plug-in JetBrains comme compatible avec Android Studio car il ne dépend que de com.intellij.modules.lang et com.intellij.modules.Java. Ainsi, bien que cela puisse aller dans les deux sens, il est plus probable (en raison d'IntelliJ IDEA d'avoir plus de composants installés) qu'un plug-in ne soit compatible que dans IntelliJ IDEA à la suite d'une dépendance sur quelque chose qui est unique à ce plugin.

Est-ce qu'Intellij sera toujours à la traîne des versions Android Studio, car il s'agit de l'outil "officiel" de Google.

Cela peut aller dans les deux sens. JetBrains peut ajouter des choses qui prennent du temps à frapper Android Studio; et Google peut ajouter des éléments qui prennent du temps à frapper IntelliJ IDEA. Il est fort probable que ce dernier sera plus répandu. Cependant, je ne sais pas combien de temps dure ce délai. Cet article de blog JetBrians peut aider à cet égard: FAQ IntelliJ IDEA et Android Studio

Ma recommandation personnelle serait la suivante: si vous savez que vous ne faites que le développement de Android, rendez-vous avec Android Studio. Mais s'il y a une chance que vous travailliez avec d'autres langages (Java, Scala, Groovy, Python, PHP, HTML, CSS, JavaScript, etc.), ou tout code côté serveur (ou "entreprise") - pour vos applications Android ou pour un autre travail, alors utilisez IntelliJ IDEA. Enfin, vous pouvez toujours utiliser les deux.

Édité 4 août 2018 pour clarification et ajout d'une capture d'écran.

54
Javaru

Pour le développement de Android, il serait préférable d'utiliser Android Studio (l'aperçu 1.3 est maintenant disponible).

Puisque Android Studio est basé sur Intellij, votre "courbe d'apprentissage" ne devrait pas poser de problème.

Pour utiliser des "ressources communes", je suppose que vous faites référence à du code ... qui devrait être dans un référentiel (git/github/...).

0
ErstwhileIII