Gradle, le couteau suisse Android

Commençons par le commencement, GRADLE, c’est quoi ? C’est tout simplement l’outil officiel pour compiler vos applications. Il permet également de :

  • gérer vos dépendances
  • ajouter des plugins
  • créer des apks selon un environnement prédéfini
  • créer des tâches à exécuter avant ou après le build
  • etc.

Depuis que GOOGLE a dévoilé son nouvel IDE  Android studio, c’est GRADLE qui est utilisé pour générer vos apks. La documentation officielle de GOOGLE est disponible ici : https://developer.android.com/sdk/installing/studio-build.html

 

Revenons à nos moutons et intéressons-nous à « GRADLE, le facilitateur du quotidien ».  

GRADLE permet de compiler son app en un seul clic. Mais, on peut faire beaucoup plus…

Par exemple, il existe des plugins permettant d’ajouter des fonctionnalités que je juge quasi indispensable dans un projet :

  • JACOCO pour le test coverage
  • FABRIC pour récupérer les stack traces lors d’un crash
  • GIT pour générer un numéro de version selon votre nombre de commits
  • et bien sur PROGARD (à ne pas confondre avec BODYGARD) pour optimiser votre apk.

Nous pouvons également créer des modules et les importer simplement dans notre configuration de GRADLE. C’est très utile lorsque le code est volumineux car l’intégralité du code se trouve au même endroit.

GRADLE permet également d’utiliser les modules et les librairies fournies par la communauté.

Parmi les plus connues, on retrouve les librairies : PicassoRetrofit et bien d’autres DaggerButterKnife

 

En une seule ligne, on peut intégrer ces librairies à notre projet :

compile 'com.squareup.okhttp:okhttp:2.5.0'

compile 'com.squareup.picasso:picasso:2.5.2'

compile 'com.squareup.retrofit:retrofit:1.9.0'

compile 'com.jakewharton:butterknife:7.0.1'

C’est tout aussi simple d’actualiser ces librairies. Il suffit de lancer une simple commande pour vérifier si de nouvelles versions sont disponibles :

./gradlew dependencyUpdates

 

Cerise sur le gâteau de cette présentation, le conférencier nous dévoile les petites techniques pour faciliter les tests et l’intégration continue en créant des scripts permettant de publier sur Jenkins, Github, Google Play...

 

Vidéo : https://www.youtube.com/watch?v=513e57e7jlo

Slides: https://speakerdeck.com/florianmski/level-up-your-android-build

 

Et toi tu fais quoi quand ça compile ?

http://lesjoiesducode.fr/post/100736653024/quand-%C3%A7a-compile

Le plus grand inconvénient de Gradle aujourd’hui, c’est le temps de compilation.

Combien parmi nous attendent plus d’1 minute que l’application soit prête ?

Je sais que moi avant, c’était mon cas.

Mais ça, c’était avant ;)

 

Une des conférences de la dernière Droidcon présentait quelques trucs et astuces pour réduire le temps de compilation.

La plus connue et la plus indispensable, est de rajouter la ligne ci-dessous à votre fichier : gradle.properties dans votre dossier ~/.gradle

org.gradle.daemon = true

 

Parmi les autres solutions apportées, on retrouve :

  • configure-on-demand pour compiler seulement le projet qui nous intéresse
  • Mettre à jour sa version de Gradle en utilisant une version supérieure ou égale à 2.4
  • Utiliser Java 1.8 sur sa machine
  • Utiliser une version spécifique pour vos dépendances
  • Compiler en minVersion 21 pour vos builds de développement

 

Vidéo : https://www.youtube.com/watch?v=AbNhen_zn-c

Slides : https://speakerdeck.com/madisp/squeezing-the-last-drop-of-performance-out-of-your-gradle-builds-droidcon-paris-2015

 

Kevin H

 

Commentaires

Vincent F.
Article super clair et très interessant. Merci.

Ajouter un commentaire