Kotlin : IDE, linters et formateurs pour les pros

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

Les outils qui feront de vous un ninja Kotlin

\n\n

Avez-vous déjà passé une heure à chercher une virgule superflue dans votre code ? Ou reçu une pull request avec le commentaire « corrige le formatage » ? Si oui — bienvenue au club. Si non — vous êtes soit un génie, soit vous n'écrivez pas en Kotlin. C'est une blague. Mais chaque blague contient une part de vérité : même le code le plus génial peut sembler brouillon si l'on n'a pas configuré sa boîte à outils.

\n\n

Aujourd'hui, nous allons parler de la façon de rendre votre travail avec Kotlin non seulement productif, mais confortable. Nous allons décortiquer les IDE, les linters et les formateurs — ces « perles cachées » qui distinguent le professionnel de l'amateur. Et oui, tout cela sera accompagné d'exemples concrets, et non de vagues « ça souligne quelque chose ».

\n\n

1. L'IDE : votre centre de commandement

\n\n

Commençons par l'essentiel — l'environnement de développement. Si vous écrivez en Kotlin, vous avez essentiellement deux choix : IntelliJ IDEA et Android Studio. Tout le reste est un compromis.

\n\n

IntelliJ IDEA — le roi du Kotlin

\n\n

Oui, c'est un choix évident. Mais voyons pourquoi précisément celui-ci. IntelliJ IDEA est créée par la même équipe que Kotlin (JetBrains). Cela signifie que le support du langage y est non seulement « bon », mais natif.

\n\n

Ce que vous obtenez « prêt à l'emploi » :

\n
    \n
  • L'autocomplétion, qui anticipe vos pensées. Écrivez val list = listOf(1,2,3) et IDEA vous suggérera les méthodes que vous pouvez appeler ensuite.
  • \n
  • Le refactoring — renommer une variable, extraire une fonction, remplacer if par when — tout cela se fait en deux clics.
  • \n
  • La navigation — Ctrl+Click sur n'importe quel symbole vous amène instantanément à sa déclaration.
  • \n
  • Les inspections de code — des ampoules jaunes et rouges qui mettent en évidence les problèmes potentiels.
  • \n
\n\n

Exemple de navigation en action :

\n
// Supposons que vous ayez ce code :\nfun processUsers(users: List<User>) {\n    users.forEach { user ->\n        println(user.name)\n    }\n}\n\n// Appuyez sur Ctrl+B sur "User" — et vous verrez immédiatement data class User(...)
\n\n

Conseil : activez le plugin Kotlin Fill Class — il génère automatiquement des stubs pour les classes que vous n'avez pas encore créées. Cela vous fait gagner 10 minutes par jour.

\n\n

Android Studio — pour les chevaliers du mobile

\n\n

Si vous développez pour Android, Android Studio est le même IntelliJ, mais avec des fonctionnalités supplémentaires : émulateur, profileur, éditeur de maquettes. Kotlin y est également pris en charge nativement.

\n\n

La principale différence : Android Studio est un peu plus lourd, mais donne accès au SDK Android et à des outils spécifiques comme Layout Inspector. Pour le backend, il est préférable de prendre IntelliJ IDEA pure — elle est plus légère et plus rapide.

\n\n

2. Les linters : votre conscience dans le code

\n\n

Un linter est un programme qui vérifie le code pour le style, les erreurs et les « mauvaises pratiques ». Imaginez que vous ayez un relecteur personnel qui ne dort ni ne mange, et qui ne fait que regarder votre code en disant : « Et là, il serait préférable d'utiliser une sealed class plutôt qu'un enum ».

\n\n

KtLint — rapide et strict

\n\n

KtLint est la norme de facto pour Kotlin. Il vérifie le formatage, les indentations, les espaces, l'ordre des imports. Tout ce qui peut être automatisé, il l'automatise.

\n\n

Comment l'installer ? Le plus simple est via Gradle :

\n
plugins {\n    id("org.jlleitschuh.gradle.ktlint") version "12.0.3"\n}\n\n// Ensuite dans le terminal :\n./gradlew ktlintCheck   // vérifier\n./gradlew ktlintFormat  // corriger
\n\n

Exemple : KtLint ne laissera pas passer ce code :

\n
fun hello(name:String){  // ❌ Erreur : pas d'espace avant les deux-points\n    println("Hello $name")\n}\n\n// Correct :\nfun hello(name: String) {  // ✅ Espace présent\n    println("Hello $name")\n}
\n\n

KtLint ne se contente pas de râler — il peut corriger ces erreurs lui-même. Lancez ktlintFormat et le code deviendra parfait.

\n\n

detekt — le détective du code

\n\n

Si KtLint est le policier, detekt est le détective. Il analyse non seulement le formatage, mais aussi la complexité du code, les dépendances cycliques, les fonctions trop longues, et bien plus encore.

\n\n

Exemple de configuration dans votre fichier .detekt.yml :

\n
complexity:\n  TooManyFunctions:\n    active: true\n    threshold: 10  // Alerte si une classe a plus de 10 fonctions\n\nstyle:\n  WildcardImport:\n    active: false  // Autorise les imports avec *
\n\n

detekt peut être intégré à votre build Gradle :

\n
detekt {\n    config = files("config/detekt/detekt.yml")\n    buildUponDefaultConfig = true\n}
\n\n

Exécutez ./gradlew detekt et vous obtiendrez un rapport détaillé avec des recommandations. C'est comme une revue de code automatique, mais sans les blagues sur votre café.

\n\n

3. Les formateurs : quand le code se met au garde-à-vous

\n\n

Un formateur est un outil qui met automatiquement en forme votre code selon des règles prédéfinies. Pas besoin de se souvenir s'il faut mettre un espace avant une accolade — le formateur le fait pour vous.

\n\n

Spotless — le majordome du code

\n\n

Spotless est un outil universel de formatage qui fonctionne avec Kotlin, Java, Groovy, et même les fichiers Markdown. Il s'intègre parfaitement à Gradle et Maven.

\n\n

Configuration minimale dans build.gradle.kts :

\n
spotless {\n    kotlin {\n        ktlint()  // Utilise les règles KtLint\n    }\n}
\n\n

Commandes :

\n
./gradlew spotlessCheck  // Vérifier le formatage\n./gradlew spotlessApply  // Appliquer le formatage
\n\n

L'avantage de Spotless est qu'il peut être exécuté automatiquement avant chaque commit via un hook Git. Ainsi, vous êtes sûr que tout le code dans le dépôt est formaté de manière identique.

\n\n

IntelliJ IDEA Formatter — le natif

\n\n

Ne sous-estimez pas le formateur intégré d'IntelliJ IDEA. Il est personnalisable et peut être synchronisé avec KtLint via le plugin KtLint IntelliJ IDEA.

\n\n

Raccourcis utiles :

\n
    \n
  • Ctrl+Alt+L — formater le fichier actuel
  • \n
  • Ctrl+Alt+Shift+L — formater avec des options (sélection, style, etc.)
  • \n
\n\n

Conseil : configurez le formatage automatique lors de l'enregistrement : Settings → Tools → Actions on Save → Reformat code. Ainsi, chaque fichier sauvegardé est automatiquement propre.

\n\n

4. Comment tout assembler : un pipeline idéal

\n\n

Théoriquement, c'est bien. Mais comment ça fonctionne dans la pratique ? Voici un pipeline recommandé pour un projet Kotlin :

\n\n
    \n
  1. Pendant le développement : IntelliJ IDEA avec inspections actives et formatage automatique à l'enregistrement.
  2. \n
  3. Avant le commit : exécutez ktlintFormat ou spotlessApply via un hook pre-commit.
  4. \n
  5. Dans le CI/CD : exécutez ktlintCheck et detekt pour vous assurer que le code respecte les normes.
  6. \n
  7. Lors de la revue de code : utilisez les rapports de detekt pour discuter des améliorations architecturales.
  8. \n
\n\n

Exemple de configuration pour GitHub Actions :

\n
name: Kotlin Lint\n\non: [push, pull_request]\n\njobs:\n  lint:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - name: Set up JDK 17\n        uses: actions/setup-java@v4\n        with:\n          java-version: '17'\n      - name: Run KtLint\n        run: ./gradlew ktlintCheck\n      - name: Run detekt\n        run: ./gradlew detekt
\n\n

Après une telle configuration, vous pouvez être sûr que votre code sera toujours propre, même si vous écrivez à 3 heures du matin avec une seule main.

\n\n

5. Résumé : que choisir ?

\n\n

Pour vous faire gagner du temps, voici un tableau récapitulatif :

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
OutilObjectifQuand l'utiliser
IntelliJ IDEAIDEToujours
KtLintFormatage + styleDans le build et les hooks
detektAnalyse de codeDans le CI/CD
SpotlessFormatage universelSi vous utilisez plusieurs langages
\n\n

Personnellement, j'utilise IntelliJ IDEA + KtLint + detekt. Cela me suffit pour 95 % des projets. Spotless est utile si vous avez un monorepo avec Java, Kotlin et Python.

\n\n

Conclusion

\n\n

Les outils ne font pas de vous un meilleur programmeur, mais ils vous aident à ne pas perdre de temps sur des bêtises. Configurez une fois votre IDE, votre linter et votre formateur — et oubliez les problèmes de formatage à jamais.

\n\n

Et rappelez-vous : un code propre n'est pas un caprice, c'est un signe de respect envers vos collègues (et envers vous-même dans six mois). Bonne chance avec Kotlin !

\n\n

P.S. Si vous avez des questions sur la configuration d'outils spécifiques, écrivez dans les commentaires. Je vous aiderai volontiers.

Blogs

Book Recommendations