Menu Button
Go to Top
Detekt imagen

Detekt, qué es y por qué deberías usarlo.

Cuando trabajas con Kotlin, mantener un código limpio, coherente y fácil de mantener es esencial. Aquí es donde entra Detekt, una herramienta de análisis estático diseñada específicamente para proyectos Kotlin.

Detekt es un linter y analizador de código estático para Kotlin que permite:

  • Detectar malos olores de código (code smells)
  • Aplicar reglas de estilo
  • Medir complejidad ciclomática
  • Generar informes HTML, XML, SARIF, Markdown, entre otros

Está pensado tanto para aplicaciones Android como para proyectos Kotlin Multiplatform.

🚀 ¿Por qué usar Detekt?

  • 🧼 Mejora la calidad del código: encuentra problemas antes de compilar.
  • 🤝 Unifica estilo en equipos: define una guía de estilo clara y automática.
  • 🛡️ Prevención temprana: detecta bugs potenciales o malas prácticas en CI.
  • 💰 Ahorra tiempo y dinero: al evitar errores que llegan tarde a producción.
  • 📈 Compatible con CI/CD: fácil de integrar con GitHub Actions, GitLab, etc.

🛠️ Instalación de Detekt

Lo ideal es configurar Detekt en el build.gradle.kts raíz de tu proyecto:

plugins {
    id("io.gitlab.arturbosch.detekt") version "1.23.6" // Reemplaza con la última versión
}

Si usas Version Catalog (libs.versions.toml):

[versions]
detekt = "1.23.6"

[plugins]
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }

Y en tu build.gradle.kts raíz:

plugins {
    alias(libs.plugins.detekt)
}

📄 Generar archivo de configuración básico

Una vez añadido el plugin, puedes generar una configuración base usando el asistente de Detekt:

./gradlew detektGenerateConfig

Esto creará el siguiente archivo

config/detekt/detekt.yml

En él puedes ajustar reglas como MagicNumber, MaxLineLength, FunctionNaming, etc.

🧪 Ejecución de Detekt

Para analizar tu proyecto:

./gradlew detekt

Si queremos limitarlo a una sola carpeta

./gradlew detekt --input src/main/kotlin

📊 Informes

Puedes personalizar los formatos de salida:

tasks.withType<io.gitlab.arturbosch.detekt.Detekt>().configureEach {
    reports {
        html.required.set(true)
        xml.required.set(false)
        txt.required.set(false)
    }
}

📚 Conclusión

Detekt es una herramienta ligera, potente y muy configurable que ayuda a mantener tu código Kotlin limpio y profesional desde el primer día. Su uso en entornos profesionales es cada vez más común, y su integración con CI y herramientas como ktlint nos ayudara a crear un código limpio y de calidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comentarios

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad