Separate formatting from behavioral analysis
Ktlint focuses on Kotlin style and formatting; Detekt detects configured code smells and complexity issues. Their rules complement compiler checks and tests, but do not prove correctness.
// A small refactoring target:
fun canStudy(enabled: Boolean, minutes: Int): Boolean {
return enabled && minutes > 0
}
Configure compatible plugin versions in the learning project's version catalog, choose rules intentionally, and run the relevant Gradle tasks locally and in CI. Common task names include ktlintCheck and detekt, but exact names depend on the installed plugins and project structure; inspect the project's task list.
Introduce a baseline only to manage existing findings, not to permanently hide new ones. Suppressions should explain a specific tradeoff close to the relevant code.
Exercise
Enable checks on a small project, introduce a formatting violation and a complexity finding, then fix both. Confirm CI fails on a newly introduced issue.
Check: avoid enabling overlapping formatters with conflicting rules, and review automated formatting diffs separately from behavior changes when possible.