Инструменты, которые превратят вас в Kotlin-ниндзю
Вы когда-нибудь тратили час на поиск лишней запятой в коде? Или получали пулл-реквест с комментарием «поправь форматирование»? Если да — добро пожаловать в клуб. Если нет — вы либо гений, либо не пишете на Kotlin. Шутка. Но в каждой шутке есть доля правды: даже самый крутой код может выглядеть неряшливо, если не настроить инструментарий.
Сегодня мы поговорим о том, как сделать вашу работу с Kotlin не просто продуктивной, а комфортной. Разберём IDE, линтеры и форматтеры — те самые «скрытые жемчужины», которые отличают профессионала от любителя. И да, всё это будет с реальными примерами, а не с абстрактными «ну там что-то подсвечивается».
1. IDE: ваш командный центр
Начнём с главного — среды разработки. Если вы пишете на Kotlin, у вас, по сути, два пути: IntelliJ IDEA и Android Studio. Всё остальное — компромиссы.
IntelliJ IDEA — король Kotlin
Да, это очевидный выбор. Но давайте разберёмся, почему именно он. IntelliJ IDEA создана той же командой, что и сам Kotlin (JetBrains). Это значит, что поддержка языка здесь не просто «хорошая», а родная.
Что вы получаете «из коробки»:
- Автодополнение, которое предугадывает ваши мысли. Напишите
val list = listOf(1,2,3)и IDEA подскажет, какие методы можно вызвать дальше. - Рефакторинг — переименование переменной, вынос функции, замена if на when — всё это делается в два клика.
- Навигация — Ctrl+Click по любому символу мгновенно перебрасывает вас к его объявлению.
- Инспекции кода — жёлтые и красные лампочки, которые подсвечивают потенциальные проблемы.
Пример навигации в действии:
// Допустим, у вас есть такой код:
fun processUsers(users: List<User>) {
users.forEach { user ->
println(user.name)
}
}
// Нажмите Ctrl+B на "User" — и вы сразу увидите data class User(...)
Совет: включите плагин Kotlin Fill Class — он автоматически генерирует заглушки для классов, которые вы ещё не создали. Экономит 10 минут в день.
Android Studio — для мобильных рыцарей
Если вы пишете под Android, Android Studio — это та же IntelliJ, но с дополнительными плюшками: эмулятор, профилировщик, макетный редактор. Kotlin здесь тоже поддерживается нативно.
Главное отличие: Android Studio чуть тяжелее, но даёт доступ к Android SDK и специфическим инструментам вроде Layout Inspector. Для бэкенда лучше брать чистую IntelliJ IDEA — она легче и быстрее.
2. Линтеры: ваша совесть в коде
Линтер — это программа, которая проверяет код на стиль, ошибки и «плохие практики». Представьте, что у вас есть персональный ревьюер, который не спит и не ест, а только смотрит на ваш код и говорит: «А вот здесь лучше использовать sealed class, а не enum».
KtLint — быстрый и строгий
KtLint — это стандарт де-факто для Kotlin. Он проверяет форматирование, отступы, пробелы, порядок импортов. Всё, что можно автоматизировать — он автоматизирует.
Как установить? Проще всего через Gradle:
plugins {
id("org.jlleitschuh.gradle.ktlint") version "12.0.3"
}
// Затем в терминале:
./gradlew ktlintCheck // проверить
./gradlew ktlintFormat // исправить
Пример: KtLint не пропустит такой код:
fun hello(name:String){ // ❌ Ошибка: нет пробела перед двоеточием
println("Hello $name")
}
// Правильно:
fun hello(name: String) { // ✅ Пробел есть
println("Hello $name")
}
KtLint не просто ругается — он может сам исправить эти ошибки. Запустите ktlintFormat и код станет идеальным.
detekt — детектив для кода
Если KtLint — это полицейский, который штрафует за неправильную парковку, то detekt — это детектив, который ищет сложные преступления: цикломатическую сложность, слишком длинные функции, неправильное использование null.
Установка:
plugins {
id("io.gitlab.arturbosch.detekt") version "1.23.6"
}
// Проверка:
./gradlew detekt
Что он может найти?
- Функции длиннее 20 строк (настраивается).
- Слишком много вложенных if-else.
- Использование
!!(non-null assertion) — detekt считает это опасным.
Пример отчёта detekt:
ComplexCondition - [ComplexCondition] at Main.kt:15:1
- The condition of the if statement is too complex. Consider extracting it into a function.
Совет: используйте detekt вместе с KtLint — первый ищет архитектурные проблемы, второй — стилистические.
3. Форматтеры: красота в один клик
Форматтер — это инструмент, который приводит код к единому стилю автоматически. Забудьте про ручные правки отступов и переносов строк. Просто нажали Ctrl+Alt+L (в IntelliJ) — и код стал красивым.
Spotless — универсальный солдат
Spotless поддерживает не только Kotlin, но и Java, Groovy, Markdown. Он интегрируется с любым билд-инструментом. Для Kotlin он использует KtLint внутри себя, но даёт больше гибкости.
Пример настройки в Gradle:
spotless {
kotlin {
ktlint()
target("**/*.kt")
trimTrailingWhitespace()
endWithNewline()
}
}
// Запуск:
./gradlew spotlessApply
После этой команды весь код в проекте будет отформатирован по правилам KtLint. Идеально для CI/CD — можно добавить spotlessCheck в пайплайн и не принимать пулл-реквесты с плохим форматированием.
IntelliJ IDEA Formatter — встроенный монстр
Не забывайте, что сама IDE умеет форматировать код. Перейдите в Settings → Editor → Code Style → Kotlin и настройте всё под себя: отступы, скобки, импорты.
Хитрость: экспортируйте настройки в файл .editorconfig и положите в корень проекта. Тогда вся команда будет использовать единый стиль:
[*]
indent