Introdução: Por que a documentação é a chave para o sucesso de um projeto Kotlin?
No mundo do desenvolvimento moderno em Kotlin, escrever código limpo e eficiente é apenas metade do trabalho. A segunda parte, igualmente importante, é criar documentação de qualidade. Um projeto bem documentado não é apenas um conjunto de comentários. É um investimento no futuro: simplifica a integração de novos desenvolvedores, acelera a depuração, facilita a manutenção da base de código e torna sua API compreensível para outros. Sem documentação, até o código mais genial corre o risco de se tornar uma "caixa preta" que ninguém quer tocar.
Neste artigo, abordaremos o processo completo de escrever documentação para projetos Kotlin — desde os fundamentos da sintaxe KDoc até a geração automática de sites bonitos com Dokka. Você aprenderá como tornar a documentação não apenas útil, mas também legível, e conhecerá as melhores práticas que o ajudarão a mantê-la atualizada.
1. Fundamentos do KDoc: Como escrever comentários em Kotlin
KDoc é a linguagem de marcação padrão para documentar código em Kotlin, muito semelhante ao JavaDoc. Os comentários KDoc começam com /** e terminam com */. Internamente, é usada uma marcação especial que permite descrever parâmetros, valores de retorno e exceções.
1.1. Estrutura básica de um comentário KDoc
As principais tags que você usará com mais frequência:
@param— descreve um parâmetro de função ou classe.@return— descreve o valor de retorno.@throwsou@exception— descreve exceções que a função pode lançar.@see— link para outro elemento do código.@sample— link para um exemplo de uso.
1.2. Exemplo para uma função
Vamos considerar uma função simples que calcula a média aritmética:
/** * Calcula a média aritmética de dois números. * * Esta função recebe dois números inteiros e retorna seu valor médio * como um número de ponto flutuante. Se ambos os números forem zero, a função * retornará 0.0. * * @param a Primeiro número inteiro. * @param b Segundo número inteiro. * @return Média aritmética dos números a e b. * @throws IllegalArgumentException se ambos os parâmetros forem zero (opcional, para exemplo). * @see Math#sqrt * @sample com.example.calculator.averageSample */fun average(a: Int, b: Int): Double { if (a == 0 && b == 0) { throw IllegalArgumentException("Ambos os números não podem ser zero") } return (a + b) / 2.0}1.3. Documentando classes e propriedades
Não apenas funções, mas também classes, interfaces e suas propriedades precisam ser documentadas. Isso ajuda a entender rapidamente o propósito do módulo.
/** * Repositório para trabalhar com usuários. * * Esta classe encapsula a lógica de acesso aos dados do usuário, * incluindo operações de busca, salvamento e exclusão. * * @property databaseSource Fonte de dados para o banco de dados. * @property cacheSource Fonte de dados para o cache. * @constructor Cria uma instância do repositório com as fontes de dados fornecidas. */class UserRepository( private val databaseSource: UserDatabaseSource, private val cacheSource: UserCacheSource) { /** * ID do usuário atual. * Pode ser nulo se o usuário não estiver autenticado. */ var currentUserId: String? = null}2. Ferramentas de geração: Dokka e KDoc
Escrever comentários manualmente é apenas metade do trabalho. Para transformá-los em documentação útil (por exemplo, em um site HTML ou PDF), é necessária uma ferramenta de geração. Para Kotlin, o padrão é o Dokka — um poderoso motor desenvolvido pela JetBrains.
2.1. O que é Dokka?
Dokka é um gerador de documentação que entende KDoc e pode criar documentação em vários formatos: