Frameworks CLI pour Kotlin : création d'applications console

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

Frameworks CLI pour Kotlin : création d'applications console puissantes



Kotlin est un langage moderne activement utilisé non seulement pour le développement Android, mais aussi pour la création d'applications serveur et console. Le développement d'outils CLI (Command Line Interface) en Kotlin peut être considérablement simplifié grâce à des frameworks spécialisés. Dans cet article, nous examinerons trois solutions les plus populaires : Clikt, Kotlinx-cli et Aigrette, et nous les analyserons à l'aide d'exemples pratiques.



Pourquoi un framework CLI ?



Écrire un analyseur d'arguments de ligne de commande manuellement est une tâche fastidieuse et sujette aux erreurs. Les frameworks CLI offrent :



  • L'analyse automatique des arguments et options
  • La génération d'aide (--help)
  • La validation des données d'entrée
  • La prise en charge des sous-commandes (subcommands)
  • La gestion des erreurs avec des messages clairs


Clikt — le choix le plus populaire



Clikt est une bibliothèque puissante et flexible qui est devenue le standard de facto pour les CLI en Kotlin. Elle utilise une approche déclarative avec des annotations et fournit une API riche.



Installation (via Gradle) :



implementation("com.github.ajalt.clikt:clikt:4.2.1")


Exemple d'application simple :



import com.github.ajalt.clikt.core.CliktCommandimport com.github.ajalt.clikt.parameters.arguments.argumentimport com.github.ajalt.clikt.parameters.options.optionimport com.github.ajalt.clikt.parameters.types.int

class Greet : CliktCommand() { val name by argument() val count by option("--count", "-c", help = "Nombre de répétitions").int().default(1)

override fun run() { repeat(count) { echo("Bonjour, $name !") } }}

fun main(args: Array<String>) = Greet().main(args)


Exécution :



./app --count 3 Ivan# Sortie :# Bonjour, Ivan !# Bonjour, Ivan !# Bonjour, Ivan !


Clikt prend en charge les commandes imbriquées, l'auto-complétion, les couleurs dans la console et un typage strict. Pour les projets complexes (par exemple, les outils DevOps, les utilitaires pour travailler avec des API), c'est le meilleur choix.



Kotlinx-cli — une solution légère de JetBrains



Kotlinx-cli est une bibliothèque officielle des créateurs de Kotlin. Elle est moins fonctionnelle que Clikt, mais idéale pour les utilitaires simples et les petits projets.



Installation :



implementation("org.jetbrains.kotlinx:kotlinx-cli:0.3.6")


Exemple :



import kotlinx.cli.*

fun main(args: Array<String>) { val parser = ArgParser("file-util") val input by parser.argument(ArgType.String, description = "Fichier d'entrée") val output by parser.option(ArgType.String, shortName = "o", description = "Fichier de sortie").default("out.txt") val verbose by parser.option(ArgType.Boolean, shortName = "v", description = "Sortie détaillée").default(false)

parser.parse(args)

println("Lecture depuis : $input") println("Écriture dans : $output") if (verbose) println("Mode détaillé activé")}


Kotlinx-cli ne nécessite pas de dépendances supplémentaires et est parfait pour le prototypage rapide. Cependant, il ne prend pas en charge les commandes imbriquées ni la validation complexe.



Aigrette — approche fonctionnelle



Aigrette est une bibliothèque moins connue mais intéressante, utilisant un style fonctionnel. Elle est basée sur le concept de "combinateurs d'analyseurs".



Installation :



implementation("io.github.petertrr:aigrette:0.3.0")


Exemple :



import io.github.petertrr.aigrette.*

data class Config(val name: String, val age: Int, val flag: Boo

Recommendations