Google nous a annoncé, lors du Google IO 2013, le premier IDE (Integrated Developement Environment – Environnement de développement intégré) dédié au développement Android nommé, sans rappeler d’autres suites de développement, Android Studio.

Android-Studio

J’ai donc décidé de faire un article de prise en main de cet outil, après 6 ans de développement Android sous Eclipse et avoir donné nombre de formation sur cet environnement. Petit comparatif et prise en main pas à pas !

Android Studio

Jusqu’à maintenant l’outil officiel était “Eclipse pour développeur Java”, couplé à un plugin dénommé Android Developer Tool (ADT). D’autres outils de développement Java ont par la suite été supportés par ADT comme Netbeans ou encore IntelliJ.

C’est dans l’ombre que les équipes de Google travaillaient sur le produit IntelliJ pour le faire évoluer et en sortir leur Android Studio.

Dans un premier temps j’ai été surpris de voir que Google se basait sur IntelliJ pour créer son propre outil de développement tout simplement car Eclipse a toujours été le produit phare du développement Android – bien qu’IntelliJ ait pu depuis trouver sa place.

Mais également parce que IntelliJ n’est pas forcément “gratuit” notamment si vous souhaitez l’utiliser en milieu professionnel, alors Eclipse fait partie des grands logiciels libres réputés. Une version d’IntelliJ open-source existe, c’est la Community Edition, et c’est bien sûr cette version qui est à la base d’Android Studio.

Dans un second temps, je me suis dis que le choix de Google était réfléchi, qu’à leurs yeux il devait s’agir du meilleur produit répondant à leurs attentes pour nous fournir le Android Studio (enfin il faut le penser comme ça ! on sait bien que certains choix dans l’implémentation de la plateforme demanderaient une meilleure réflexion, là n’est pas le débat). C’est bien des raisons techniques qui ont poussé les équipes Android à passer sous IntelliJ pour ce projet. Xavier Ducrohet aurait indiqué que l’Eclipse Foundation ne serait pas assez rapide pour répondre aux besoins de Google sur certaines problématiques notamment liées aux Play services (merci Julien pour ce complément d’info).

Android Studio

Android Studio se base sur un second produit, nommé Gradle, dédié à la construction et la compilation (build), au test et au déploiement dans un environnement de développement.  Il se situe entre Ant et Maven, deux solutions permettant de piloter des compilations, et utilisés par Android jusqu’ici. Pour ma part ce produit m’est totalement inconnu, bien que Gradle existe dans le paysage java/groovy/scala depuis maintenant quelques années.

En préambule, je tiens à informer les lecteurs que je suis sous environnement Linux Ubuntu 12.04 tournant sur la machine est un PC portable Vostro 1520 équipé d’un Intel Core Duo 2 P8600 2,4Ghz 2x 64 bits, 4Go de mémoire et un disque dur SSD de 256Go. La machine dispose déjà d’un environnement de développement Oracle Java 1.6 et Android, que j’utilise purement et simplement depuis 5 ans pour mon usage pro et perso. Il n’est donc pas nécessaire d’avoir la dernière machine surpuissante pour développer pour la plateforme Android 🙂

L’installation

Le site developer.android.com contient désormais une nouvelle section dénommée Android Studio. Il est proposé de télécharger le fichier d’installation de cet environnment en fonction de votre système d’exploitation dans un encart à droite de la fenêtre (vous pouvez également télécharger les fichiers des autres OS en cliquant sur le lien adéquat).

Le fichier pour l’environnement linux est une archive tgz de  400Mo.

Une fois ce fichier décompressé, on trouve une multitude de dossier et un fichier install-linux-tar.txt qui indique comment exécuter Android Studio (un simple script à lancer) mais également quelques options de lancement : comme l’optimisation du JVM heap ou bien encore les chemins du dossier de travail, des fichiers de configuration…

Android Studio

Au premier lancement, il vous est proposé de récupérer la configuration d’une précédente version d’Android Studio (cela peut être utile dans un contexte professionnel avec une équipe ou lors d’un changement de machine par exemple).

Alors que je finissais la configuration du projet, Studio s’est figé net…On relance, et là automatiquement mon projet est chargé. Pour rappel cet environnement est en “preview” et peu donc encore contenir quelques anomalies.

Au premier abord, l’interface d’IntelliJ (que j’ai eu l’occasion d’utiliser de 2001 à 2003) reste très “Java”  : ça plait ou non…pour ma part, je trouve cela “rustique”.

Comme tout bon développeur sous Eclipse je vais chercher  à savoir où sont renseignées les informations sur les SDK, les AVD, la visualisation de DDMS….

Android Studio

Dans le File/Settings qui regroupe toutes les informations sur l’IDE et le projet je ne trouve aucune information concernant Android. Et la plusieurs chose à dire :

  • DDMS s’ouvre dans une fenêtre séparée. Il n’est totalement intégré dans l’IDE
  • AVD et SDK manager même topo : ils ne sont pas intégrés dans l’IDE
  • le SDK manager ne trouve aucun de mes SDK installés oO et je ne trouve pas l’endroit où je dois indiquer le chemin de mon SDK
  • l’AVD manager voit bien AVD mais ne trouvant aucun SDK il est incapable d’en valider un seul

C’est sur le site dédié à Android -Studio que je vais trouver un début de piste : android-studio, sous Windows et Mac, se base sur le répertoire android-studio/sdk…Comme je dispose de quasiment tous les SDK mais sur un autre chemin, je décide de faire un lien symbolique vers mon ancien path : hop problème résolu.

NB : avant de faire cela je vous conseille de tout d’abord mettre à jours les SDK tools, plateforms-tools et SDK-build tools. Sans quoi vous rencontrerez des soucis à la compilation du projet notamment à cause de Gradle qui s’attend à trouver des choses dans la version 22 du SDK.

Android Studio

Les plus d’Android Studio comparativement à Eclipse + ADT :

  • solution packagée
  • moins de risque liés aux dépendances logicielles (notamment avec Eclipse !)

 

Les moins :

  • une interface graphique “Java UI”
  • un manque d’intégration de la solution qui ne fait qu’appeler les binaires du SDK au lieu de les intégrer dans l’IDE
  • manque un écran de configuration Android au niveau des paramètres de l’IDE

 

Codons un peu…

D’une manière générale, l’architecture d’un projet Android est modifiée, notamment à cause de Gradle. Toutes les sources du projet, y compris les ressources, sont désormais disponibles dans le répertoire src, qui contient un répertoire “main” qui lui même contient deux dossiers l’un pour “java” (vos fichiers java) l’autre pour les “ressources” (tous les fichiers xml et autres formats)

Coté Java

Venant d’Eclipse il est nécessaire de se faire un peu l’oeil sur la coloration syntaxique, la police et l’indentation. Sachez que chacun de ces points correspond à un paramètre modifiable de l’IDE.

On retrouve certains raccourcis venant d’Eclipse : comme celui pour la complétion CTRL+Espace. J’ai particulièrement apprécié l’import automatisé des classes utilisées (peut être que cette option existait sous Eclipse, mais là l’option est déjà intégrée).

Android Studio

La construction du projet se fait via le menu ou via la combinaison CTRL+MAJ+F9 ou CTRL-F9 selon que vous souhaitez reconstruire l’intégralité du projet ou juste compiler.

NB : je viens de trouver où configurer la version d’Android utilisée et autres paramètres pour le projet. Faire un clic droit sur le projet et sélectionner open Module Settings (ou appuyer sur F4). L’apprentissage d’un nouvel outil se fait au fil du temps 😉

Coté ressources

Comme dit plus haut, les ressources du projet sont désormais contenues dans le répertoire src. Qu’à cela ne tienne, quand on déplie l’arborescence on retrouve aisément ses petits 🙂

Les fichiers de ressources, autres que les fichiers de layout, s’ouvriront uniquement à l’ancienne : c’est à dire sous forme d’un fichier xml dans un éditeur de texte. Personnellement cela ne me dérange pas du tout puisque j’ai été habitué à travailler de cette manière…maintenant ceux qui ont toujours connu l’IDE Eclipse + ADT et qui n’ont utilisé que les outils de l’IDE pour modifier les fichiers XML risquent de regretter quelque peu leur ancien IDE. Pour rappel, cette situation n’est que temporaire : Android Studio n’en est qu’à ses premiers balbutiements auprès du grand pulic).

Android Studio

J’ai trouvé l’outil graphique de construction des IHM plus réactif que sous Eclipse voire mieux intégré également.

A l’exécution…

Rien ne change par rapport à ce qu’il existait avant. Vous avez la possibilité de définir vos différents AVD, d’exécuter celui de votre choix au lancement de l’application, de sélectionner à chaque lancement un émulateur ou un matériel branché sur votre PC…

Je regrette toujours que la console DDMS ne soit pas intégrée dans Android Studio, m’ajoutant une nouvelle fenêtre.

La signature des applications

La dernière chose que je souhaitais tester était la création d’un APK signé. Accessible depuis le menu « Build>Build signed apk » vous retrouverez les même possibilités que sous Eclipse pour créer ou utiliser un certificat.

Conclusion

Cet Android Studio n’en est qu’à ces débuts. Bien que l’outil ne déroutera pas ceux qui auparavant utilisaient IntelliJ, il demandera un petit temps d’adaptation aux utilisateurs d’Eclipse (notamment pour la gestion de tous les raccourcis qu’ils ont appris durant leurs longues années de développement).

Il est clair qu’aujourd’hui les outils du SDK ne sont pas encore assez bien intégrés : tous les outils ne sont présents, ceux qui le sont s’ouvrent dans de nouvelles fenêtres demandant une gymnastique du ALT+TAB….mais l’ensemble annonce quelque chose de bien à venir et semble requérir moins de ressource mémoire qu’Eclipse (à première vue). 

La question est de savoir ce que compte faire Google de cet outil : l’imposer comme la référence du développement d’application Android (tout comme Eclipse en son temps), comme chaque solution de développement à son “Studio”, ou  simplement comme une alternative avec Eclipse et Netbean ?