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.
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 !
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 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…
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….
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.
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).
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).
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 ?