🐘 Gradle - Introduction - DIM 2022

🐘 Gradle - Introduction - DIM 2022

Gradle

Gradle est un système d'automatisation de build open-source qui s'appuie sur les concepts d'Apache Ant et d'Apache Maven. Il introduit un langage spécifique au domaine (DSL) basé sur Groovy au lieu du XML utilisé par Apache Maven pour déclarer la configuration du projet.

Gradle a été conçu pour les constructions multi-projets, qui peuvent devenir très volumineuses. Gradle est utilisé pour gérer tout l'écosystème d'une app Android, d'où l'utilité de bien le comprendre.

Il supporte les builds incrémentiels en déterminant intelligemment quelles parties de l'arborescence de compilation sont à jour.

Gradle peut :

  • Construire des classes par réflexion de code
  • Exécuter des scripts / du code
  • Ecrire dans des fichiers
  • Déployer des builds
  • Faire le CI
  • Gérer les dépendances
  • Exécuter les tests
  • Faire le café quand un build a réussi
  • Build ton programme automatiquement quand l'ISS passe au dessus de ta tête.

Les possibilités sont infinies

Note 📝: Vous pouvez voir Gradle comme un genre de NPM ou Composer, mais en beaucoup beaucoup plus complet et complexe. Le principe de base reste d'ajouter des dépendances à votre programme, de gérer tout cela et de compiler l'ensemble de la manière la plus efficace possible.

🤓 Gradle intervient seulement à la compilation et pas au run, il n'est donc pas possible que Gradle agisse sur le programme une fois que celui ci est lancé

Gradle est une alternative à Maven, plus moderne et sympa à utiliser (et pourtant vous allez détestez Gradle, alors imaginez les développeur qui bossent avec Maven...)

Kotlin + Gradle

Pour faire suite au support précédent on va commencer à se faciliter la vie et utiliser Gradle pour gérer la compilation et le run de notre programme.

Getting started

  1. On va suivre gentiment les instructions d'installation de Gradle (Installez bien le JDK 8+ si c'est pas le cas. JDK != JRE)
  2. Une fois faites, créez un dossier de travail : /myKotlinApp par exemple
  3. Nous allons initialiser gradle :
$ cd myKotlinApp
$ gradle init
  1. Choisissez kotlin-application puis groovy, laissez le reste par défaut.
  2. Ouvrez le dossier avec votre éditeur de code préféré (Sublime text, VS Code, ou n'importe quel éditeur de texte), n'utilisez pas intellijea ou un IDE pour le moment.
Note 📝: Groovy est un langage supporté par Gradle pour sa configuration. C'est confusant, mais Kotlin est aussi un langage supporté par Gradle. Sur la documentation de Gradle vous remarquerez qu'il est possible d'avoir les exemples dans les 2 langages.

Vous devriez obtenir une structure de dossier comme suit :

.
├── app
│   ├── build.gradle //la configuration de votre Gradle
│   └── src //Votre code va être ici
├── gradle
│   └── wrapper //Executable wrapper
├── gradlew //Gradle Wrapper
├── gradlew.bat //Pour windows
└── settings.gradle
Question 1 👉 Qu'est ce que le Gradle Wrapper ? A quoi sert-il ?

Votre première "Task" ✅

Gradle est un système d'automatisation. Vous définissez une tâche, puis vous la lancez via une commande. Plutôt simple.

Allez dans le fichier build.gradle et copiez le code suivant :

//Déclaration de la tache nommée "hello"
task hello {
    doLast {
        println 'Hello world!'
    }
}

Maintenant lancez dans votre terminal :

$ ./gradlew tasks --all
Question 2 👉 Lancez spécifiqument la task "hello" que nous venons de créer. Comment avez vous fait ?

Voilà ! Vous venez de programmer une tâche dans Gradle. Gradle peut faire beaucoup de choses de manière automatique. Tout est une task ou une variable dans Gradle.

Lancer mon Kotlin 🚀

Puisque vous avez défini lors du gradle init que c'était une application Kotlin, Gradle a déjà tout configuré pour vous. Il a même créé un Hello world dans /src/main/myKotlinApp/App.kt

Sous le capot 🚙: En réalité, Gradle a appliqué un template d'application qui comprend une structure de dossiers et un set de plugin permettant de réaliser rapidement une application Kotlin JVM.

Question 3 👉 Qu'est ce qu'un plugin Gradle ? Quels sont les plugins déjà appliqué à cette configuration Gradle ? A quoi servent-ils ? Faites valider par l'enseignant

Vous trouverez de l'aide sur les plugins basiques de Gradle directement dans la documentation de Gradle ici.

Question 4 👉 Lancez l'application Kotlin, servez vous de ce que vous avez appris avant. Comment avez vous fait ?
Question 5 👉 Lancez les tests unitaires de votre application à présent. Quelle commande avez vous utilisé ?

Documenter votre code avec Gradle

Question 6 👉 Faites valider votre documentation, elle doit s'afficher dans votre navigateur web.

Voilà !

Gradle est un super outil à tout faire pour la vie du développeur. Vous pouvez l'utiliser pour faire des choses simples qui ne nécessitent un langage de programmation complet :

  • Traiter des fichiers en masse (renommage, déplacement, etc.)
  • Générer des classes et du code pour vous aider (vous allez le voir beaucoup sur Android)
  • Envoyer des données dans une base de données depuis des fichiers (ETL)
  • Redimensionner en masse des images automatiquement (c'est ce qui est utilisé par Android Studio pour les assets android par exemple)
  • etc. Sky is the limit ☁️

Point culture numérique : Kotlin Multiplateforme

https://kotlinlang.org/docs/reference/multiplatform.html

Commentaires

Connectez vous ou devenez un membre de Async pour rejoindre la conversation.
Entrez un mail ici pour recevoir un lien de connexion, super simple ⚡️