Passer à IntelliJ pour faire de l’Android ?

Prise en main de JetBrain IntelliJ pour du développement Android Java (migration depuis Eclipse) 

Premier lancement 

Un launcher rend le démarrage assez simple pour créer ou importer les projets. A noter que les workspace d’Eclipse sont ici appelés « Project » et que les projets d’Eclipse sont appelés « module ».

L’importation se fait facilement. Il faut alors choisir son JDK / SDK Android. La reconnaissance n’est pas automatique comme sur Eclipse, il suffit néanmoins de pointer le dossier votre JDK ou JDK à ajouter et cela 1 par 1.

La structure de l’interface est assez similaire à celle d’Eclipse avec un explorer à gauche et une vue code centrale. On peut également afficher / agrandir / déplacer les panneaux comme sur Eclipse. A noter qu’il faudra un peu déplacer les panneaux pour espérer s’approcher de l’interface classique d’Eclipse.

Les menus sont proches d’un Eclipse mais généralement plus complet (parfois trop chargé comme le clic droit sur un projet ?)

Il faudra s'adapter à certaines manipulations qui seront parfois loin d'Eclipse. Par exemple, pour supprimer un module d'un projet, il faudra passer par une fenêtre project structure et sélectionner son module pour espérer obtenir l'option supprimer dans le menu contextuel. (Seulement sur Mac ?)
Des détails qui vous feront certainement pester plus d'une fois au fur à mesure de la découverte et de l'utilisation de l'IDE.

Compilation et déploiement d’un projet Android 

De la même manière qu'Eclipse , il y a un Run configuration qui permet d’établir le type de lancement du projet. Après quelques essais de make / run, on arrive finalement à lancer l’application sur la machine.

On pourra être déçu du manque d’ergonomie sur la partie « plugin Android » qui est moins abouti que l’intégration fourni par ADT de Google sous Eclipse :

  • Il n’y a pas d’éditeur graphique pour les manifests ou les XML Android
  • L’éditeur de layout n’a pas les évolutions de l’ADT comme la vue multiple de layout simultanément et le système de zoom n’est disponible que lorsque la preview est en miniature.
  • Une erreur sur XML fait affiche un stacktrace assez peu explicite alors qu’Eclipse affiche au mieux un rendu et signale l’erreur en parallèle.
  • Le lancement d’une application sur un appareil ne génère pas de filtre automatiquement sur le logcat (un peu gênant surtout que les couleurs choisies le rendent globalement moins lisible mais elles sont personnalisables)
  • La création d’un nouveau projet Android est moins complet (moins d’exemples, moins personnalisable)

On aimera ou non le système de sauvegarde automatique qui surprend en venant d’Eclipse. De même que la limitation d'ouverture de fichiers simultanément certes configurable mais critique en l'absence de système de "fold" d'onglet... on se retrouve rapidement avec plusieurs d'onglets si l'on "supprime" la limite. (là ou Eclipse n’a pas de limite mais les stocke dans les … de la barre d’onglets)

Intellij se démarque réellement sur le principe « d’Inspect » sur de l’analyse de code : on peut ainsi retrouver des conseils plus ou moins intéressants sur les fonctions (tests inutiles, code superflu, bugs potentiels et problèmes de performances) qui peuvent se révéler un gain de temps en pratique lorsque l’on cherche à optimiser le code. Certains dirons que CheckStyle, FindBugs, Sonar ou d'autres analyseurs de codes font aussi bien voire mieux mais on ne peut que louer une intégration de ce type d'outil de base dans l'IDE.

On retrouve également une intégration plus poussée de Maven et Graddle (voire de Ant mais déjà bien pris en charge par Eclipse).

L’auto complétion et la détection (et quick fix) des problèmes est très similaire avec un légère avantage pour IntelliJ, notamment sur l’auto complétion qui ne recherche pas uniquement un préfixe.

Conclusion

Départager les 2 logiciels est plutôt difficile, pour du développement Android, si l’on apprécie ADT et ses fonctionnalités un peu plus facile d’accès que leur équivalent (si il existe sous IntelliJ) peut pencher en la faveur d’Eclipse.  Certaines fonctionnalités de base chez IntelliJ permettront de gagner du temps sur un Eclipse auquel il faudra trouver les plugins adéquats. Il n’en reste pas moins que la communauté plus large du côté d’Eclipse permet de trouver plus facilement des plugins sur certains points mais l'écart se resserre et JetBrains ne chôme pas pour enrichir son programme.

Il n'est pas si rare d'obtenir des crashs imprévus voire intempestifs sur Eclipse aussi cela va nécessairement faire pencher la balance en la faveur de IntelliJ en terme de stabilité.
Je ne m'avancerais toutefois pas trop sur ce dernier point car je n'ai pas assez utilisé IntelliJ pour jauger correctement sa stabilité sur du long terme.

Il faut certainement compter une demi-journée pour espérer avoir une prise en main concrète d’un logiciel à l’autre.

 

 

 

 

Social Share Toolbar
Christophe Oudar

About Christophe Oudar

Elève-ingénieur à l'ENSEIRB-MATMECA et compile de l'android depuis mi-2011 ! Développeur de ComboTouch et de plein d'autres applis à venir ;)