Detekt para Kotlin: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Detekt para Kotlin: guia completo com exemplos práticos

1. O que é e para que serve

Detekt é uma ferramenta poderosa de análise estática de código para a linguagem Kotlin, criada pela Arturbosch e mantida pela comunidade. Ela foi projetada para detectar automaticamente problemas potenciais, "code smells", violações de convenções de estilo e vulnerabilidades em projetos Kotlin. O Detekt opera no nível da árvore sintática abstrata (AST), permitindo analisar o código de forma mais profunda do que linters textuais simples. A ferramenta se integra com sistemas de build como Gradle, Maven e outras ferramentas CI/CD, tornando-se indispensável para manter a qualidade do código em desenvolvimento em equipe.

Para que serve o Detekt? Primeiro, ele automatiza a verificação do código em relação aos padrões Kotlin Coding Conventions, algo essencial em projetos grandes com vários desenvolvedores. Segundo, o Detekt ajuda a identificar bugs potenciais em estágios iniciais: variáveis não utilizadas, possíveis NullPointerException, construções condicionais complexas e outros problemas que podem causar erros em tempo de execução. Terceiro, a ferramenta incentiva a refatoração: ela destaca trechos de código com alta complexidade ciclomática, funções longas, operadores elvis redundantes e outros padrões que prejudicam a legibilidade e a manutenibilidade do código.

O Detekt oferece mais de 150 regras integradas, organizadas em categorias: bugs potenciais (potential bugs), estilo de código (style), desempenho (performance), complexidade (complexity), exceções (exceptions) e outras. A ferramenta é totalmente configurável: você pode ativar/desativar regras individuais, alterar seus limites e até criar regras personalizadas em Kotlin. O Detekt suporta a geração de relatórios nos formatos HTML, XML, SARIF e texto, permitindo integração com qualquer sistema de análise de código.

2. Instalação

O Detekt é instalado como um plugin para o sistema de build Gradle (método recomendado) ou como uma ferramenta CLI independente. Abaixo estão os comandos exatos para instalação.

Instalação via Gradle (plugin)

Adicione ao arquivo build.gradle.kts (ou build.gradle):

// build.gradle.kts
plugins {
    id("io.gitlab.arturbosch.detekt") version "1.23.6" // versão atual no momento da escrita
}

// Configuração do Detekt (opcional)
detekt {
    buildUponDefaultConfig = true // usar regras padrão + personalizadas
    allRules = false // não ativar todas as regras (apenas as recomendadas)
    config.setFrom("$projectDir/config/detekt/detekt.yml") // caminho para o arquivo de configuração
    baseline = file("$projectDir/config/detekt/baseline.xml") // baseline para ignorar erros
    reports {
        html.required.set(true) // gerar relatório HTML
        xml.required.set(true) // gerar relatório XML
        txt.required.set(true) // gerar relatório de texto
    }
}

Após adicionar o plugin, execute o comando:

./gradlew detekt

Instalação via CLI (Homebrew para macOS/Linux)

brew install detekt

Instalação via SDKMAN

sdk install detekt

Instalação via JAR (método universal)

curl -sSLO https://github.com/detekt/detekt/releases/download/v1.23.6/detekt-cli-1.23.6-all.jar
alias detekt='java -jar detekt-cli-1.23.6-all.jar'

3. Início rápido — exemplo mínimo funcional

Crie um arquivo Kotlin simples src/main/kotlin/exemplo.kt:

// exemplo.kt
fun main() {
    val x = 1
    val y = 2
    if (x > 0) {
        println("Positivo")
    } else {
        println("Não positivo")
    }
    println("Soma: ${x + y}")
}

Crie o arquivo de configuração config/

Recommendations