Automatisation avec Kotlin : pourquoi ça mérite votre attention
Avez-vous déjà passé une heure à renommer une centaine de fichiers, à analyser manuellement des logs ou à copier des données d'une API à une autre ? Une douleur familière. Habituellement, pour ces tâches, on se tourne vers Python ou Bash, mais Kotlin est un outil étonnamment puissant et élégant pour l'automatisation avec Kotlin. Il allie la concision d'un langage moderne aux performances de la JVM et à un accès complet à l'écosystème Java.
Dans cet article, nous n'allons pas écrire un énième « Hello, World ». Nous allons directement au but : nous analyserons des exemples de code Kotlin qui seront réellement utiles dans le travail quotidien d'un développeur, d'un administrateur système ou d'un testeur. Vous apprendrez à écrire des scripts Kotlin pour la gestion de fichiers, l'envoi de requêtes HTTP, l'analyse de données et l'exécution de commandes système. C'est parti !
Pourquoi Kotlin plutôt que Python ou Bash ?
Chaque langage a sa niche. Bash est idéal pour des one-liners rapides, Python pour la logique complexe et la data science. Mais Kotlin pour l'automatisation offre plusieurs avantages uniques :
- Sécurité des types. Vous n'obtiendrez pas d'erreur « string vs int » à l'exécution — le compilateur la détectera au départ.
- Compatibilité totale avec Java. Toute bibliothèque Java (Apache POI, OkHttp, Jackson) est disponible directement.
- Kotlin Script (.kts). Vous pouvez écrire des scripts sans compilation — exécutez-les comme un fichier .sh ordinaire.
- Syntaxe concise. Moins de code passe-partout, plus de lisibilité.
Configuration de l'environnement pour les scripts Kotlin
Pour exécuter des scripts Kotlin, vous n'avez pas besoin d'installer Android Studio. Il suffit de :
- Installer le compilateur Kotlin (ou SDKMAN).
- Créer un fichier avec l'extension
.kts. - L'exécuter avec la commande :
kotlinc -script script.kts
Voilà. Maintenant, écrivons notre premier script vraiment utile.
Exemple 1 : Renommage en masse de fichiers
Imaginez : vous avez un dossier de photos IMG_001.jpg, IMG_002.jpg ... IMG_100.jpg. Vous devez les renommer en holiday_01.jpg, holiday_02.jpg .... À la main : 10 minutes. Avec un script : 2 secondes.
import java.io.File
fun main() { val folder = File("/path/to/photos") val files = folder.listFiles()?.filter { it.extension == "jpg" } ?: return
files.sorted().forEachIndexed { index, file -> val newName = "holiday_${index.toString().padStart(2, '0')}.jpg" val newFile = File(folder, newName) file.renameTo(newFile) println("Renamed: ${file.name} -> $newName") }}
// Exécution : kotlinc -script rename.ktsCet exemple de code Kotlin fait trois choses : il filtre uniquement les fichiers JPG, les trie par nom (pour ne pas perdre l'ordre), et les renomme avec une numérotation. Notez l'utilisation de padStart — une fonctionnalité élégante de Kotlin pour le formatage des nombres.
Exemple 2 : Requête HTTP et analyse JSON
Il est souvent nécessaire d'automatiser la collecte de données depuis une API web. Supposons que nous récupérions une liste d'utilisateurs et que nous la sauvegardions dans un CSV. Avec Kotlin pour l'automatisation, cela se fait en quelques lignes en utilisant la bibliothèque ktor-client (ou le bon vieux java.net.HttpURLConnection).
Mais pour un script, il est plus simple d'inclure une bibliothèque externe via @file:DependsOn :
@file:DependsOn("com.google.code.gson:gson:2.10.1")@file:DependsOn("io.ktor:ktor-client-core:2.3.7")@file:DependsOn("io.ktor:ktor-client-java:2.3.7")
import io.ktor.client.*import io.ktor.client.request.*import io.ktor.client.statement.*import com.google.gson.Gsonimport com.google.gson.reflect.TypeTokenimport java.io.File\