Detekt pour Kotlin : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Detekt pour Kotlin : guide complet avec exemples

1. Qu'est-ce que Detekt et pourquoi l'utiliser ?

Detekt est un puissant outil d'analyse statique de code pour le langage Kotlin, créé par Arturbosch et maintenu par la communauté. Il est conçu pour détecter automatiquement les problèmes potentiels, les "code smells", les violations des conventions de style et les vulnérabilités dans les projets Kotlin. Detekt fonctionne au niveau de l'arbre syntaxique abstrait (AST), ce qui lui permet d'analyser le code plus en profondeur que les simples linters textuels. L'outil s'intègre avec les systèmes de build Gradle, Maven et d'autres outils CI/CD, ce qui le rend indispensable pour maintenir la qualité du code dans le développement en équipe.

Pourquoi utiliser Detekt ? Premièrement, il automatise la vérification du code par rapport aux conventions de codage Kotlin, ce qui est particulièrement important dans les grands projets impliquant plusieurs développeurs. Deuxièmement, Detekt aide à identifier les bugs potentiels à un stade précoce : par exemple, les variables inutilisées, les possibles NullPointerException, les constructions conditionnelles complexes et d'autres problèmes pouvant entraîner des erreurs d'exécution. Troisièmement, l'outil facilite le refactoring : il met en évidence les sections de code à haute complexité cyclomatique, les fonctions longues, les opérateurs elvis redondants et autres motifs qui nuisent à la lisibilité et à la maintenabilité du code.

Detekt propose plus de 150 règles intégrées, réparties en catégories : bugs potentiels (potential bugs), style de code (style), performances (performance), complexité (complexity), exceptions (exceptions) et autres. L'outil est entièrement configurable : vous pouvez activer/désactiver des règles individuelles, modifier leurs seuils, et même écrire vos propres règles en Kotlin. Detekt prend en charge la génération de rapports aux formats HTML, XML, SARIF et texte, ce qui permet de l'intégrer à n'importe quel système d'analyse de code.

2. Installation

Detekt s'installe comme un plugin pour le système de build Gradle (méthode recommandée) ou comme un outil CLI autonome. Voici les commandes précises pour l'installation.

Installation via Gradle (plugin)

Ajoutez dans le fichier build.gradle.kts (ou build.gradle) :

// build.gradle.kts
plugins {
    id("io.gitlab.arturbosch.detekt") version "1.23.6" // version actuelle au moment de la rédaction
}

// Configuration Detekt (optionnelle)
detekt {
    buildUponDefaultConfig = true // utiliser les règles par défaut + les vôtres
    allRules = false // ne pas activer toutes les règles (uniquement les recommandées)
    config.setFrom("$projectDir/config/detekt/detekt.yml") // chemin vers la config
    baseline = file("$projectDir/config/detekt/baseline.xml") // baseline pour ignorer les erreurs
    reports {
        html.required.set(true) // générer un rapport HTML
        xml.required.set(true) // générer un rapport XML
        txt.required.set(true) // générer un rapport texte
    }
}

Après avoir ajouté le plugin, exécutez la commande :

./gradlew detekt

Installation via CLI (Homebrew pour macOS/Linux)

brew install detekt

Installation via SDKMAN

sdk install detekt

Installation via JAR (méthode universelle)

curl -sSLO https://github.com/detekt/detekt/releases/download/v1.23.6/detekt-cli-1.23.6-all.jar
alias detekt='java -jar detekt-cli-1.23.6-all.jar'

3. Démarrage rapide — exemple minimal fonctionnel

Créez un fichier Kotlin simple src/main/kotlin/example.kt :

// example.kt
fun main() {
    val x = 1
    val y = 2
    if (x > 0) {
        println("Positif")
    } else {
        println("Non positif")
    }
    println("Somme : ${x + y}")
}

Créez un fichier de configuration config/

Recommendations