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.
Comentarios