Detekt para Kotlin: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a Detekt: análisis estático de código para Kotlin

\n\n

Detekt es una potente herramienta de análisis estático de código para el lenguaje de programación Kotlin. A diferencia del compilador, que verifica la corrección sintáctica, Detekt analiza la estructura, el estilo y los problemas potenciales en tu código sin ejecutarlo. Esto permite detectar "olores de código" (code smells), violaciones de las mejores prácticas, errores potenciales y problemas de rendimiento en las primeras etapas del desarrollo.

\n\n

¿Para qué sirve Detekt? Principalmente, para mantener una alta calidad en la base de código. En proyectos grandes con múltiples desarrolladores, el estilo de código puede variar, lo que dificulta su lectura y mantenimiento. Detekt automatiza la verificación del cumplimiento del código con las reglas establecidas, haciendo que el código sea más uniforme, predecible y menos propenso a errores. Se integra en el proceso de compilación (Gradle, Maven) y puede ejecutarse automáticamente en cada commit o compilación, evitando que el código problemático llegue al repositorio.

\n\n

Las capacidades clave de Detekt incluyen:

\n
    \n
  • Detección de "olores de código": complejidad excesiva, métodos largos, clases grandes.
  • \n
  • Verificación de estilo: cumplimiento de convenciones de nomenclatura, formato.
  • \n
  • Identificación de errores potenciales: variables no utilizadas, posibles excepciones.
  • \n
  • Análisis de rendimiento: construcciones ineficientes, asignaciones excesivas.
  • \n
  • Personalización: puedes activar/desactivar reglas, ajustar sus parámetros e incluso escribir las tuyas propias.
  • \n
\n\n

Detekt está escrito en Kotlin y es el estándar de facto para el análisis estático en el ecosistema Kotlin. Es mantenido activamente por la comunidad y se utiliza en proyectos importantes como Kotlin Compiler, Ktor y Exposed.

\n\n

Instalación de Detekt

\n\n

Detekt no se instala mediante pip install o npm install, ya que es una herramienta para el ecosistema Kotlin/JVM. Las principales formas de instalación e integración son:

\n\n

1. Plugin de Gradle (método recomendado)

\n

Añade el plugin Detekt a tu build.gradle.kts (o build.gradle):

\n
// build.gradle.kts\nplugins {\n    id("io.gitlab.arturbosch.detekt") version "1.23.6" // Verifica la versión actual\n}\n\n// Configuración (opcional)\ndetekt {\n    buildUponDefaultConfig = true // Tomar como base la configuración estándar\n    allRules = false // No incluir todas las reglas (incluidas las experimentales)\n    config.setFrom("$projectDir/config/detekt.yml") // Ruta a tu configuración\n    baseline = file("$projectDir/config/baseline.xml") // Línea base para suprimir errores antiguos\n}\n\n// Conectar Detekt a la verificación previa a la compilación\ntasks.check {\n    dependsOn(tasks.detekt)\n}\n
\n\n

2. Plugin de Maven

\n

Para Maven, añade el plugin en pom.xml:

\n
<plugin>\n    <groupId>io.gitlab.arturbosch.detekt</groupId>\n    <artifactId>detekt-maven-plugin</artifactId>\n    <version>1.23.6</version>\n    <configuration>\n        <buildUponDefaultConfig>true</buildUponDefaultConfig>\n    </configuration>\n    <executions>\n        <execution>\n            <goals>\n                <goal>check</goal>\n            </goals>\n        </execution>\n    </executions>\n</plugin>\n
\n\n

3. CLI (Interfaz de Línea de Comandos)

\n

Puedes ejecutar Detekt desde la línea de comandos descargando el archivo JAR desde GitHub Releases:

\n
java -jar detekt-cli-1.23.6.jar --input /ruta/a/tu/código/kotlin --config /ruta/a/config.yml --report xml:output.xml\n
\n\n

Inicio rápido con un ejemplo de código

\n\n

Consideremos un ejemplo simple

Recommendations