Вышел новый релиз Kotlin 2.1: главные изменения и нововведения
Команда JetBrains официально представила стабильный релиз Kotlin 2.1. Это обновление продолжает курс на повышение производительности, стабильности и удобства разработки. Версия 2.1 приходит на смену выпущенной ранее 2.0 и включает как долгожданные исправления, так и экспериментальные возможности, которые уже можно опробовать в production-проектах. Разберёмся, что именно изменилось и почему это важно для каждого разработчика на Kotlin.
K2-компилятор: теперь по умолчанию
Главное изменение релиза — K2-компилятор стал стандартным. Если в версии 2.0 его нужно было подключать отдельным флагом, то теперь он включён по умолчанию для всех мультиплатформенных проектов. Это даёт:
- Значительное ускорение сборки (до 2 раз на некоторых проектах);
- Более чёткие и понятные сообщения об ошибках;
- Улучшенную поддержку новых языковых конструкций.
Вместе с этим обновлением значительно улучшилась совместимость с Gradle 8.x и Android Gradle Plugin, что делает миграцию максимально гладкой.
Экспериментальные фичи: что появилось нового
В Kotlin 2.1 был расширен набор экспериментальных возможностей. Среди них стоит выделить:
- Guard conditions в when — теперь внутри ветвей when можно использовать дополнительные проверки с помощью ключевого слова
guard. Это делает сложные сопоставления более читаемыми и сокращает количество вложенных if. - Non-local break и continue — долгожданная возможность прерывать циклы из лямбда-выражений. Работает только при включении соответствующего флага компилятора.
- Расширение контекстных абстракций — улучшена работа с контекстными функциями и typealias, что упрощает написание DSL-конструкций.
Все экспериментальные фичи требуют явного opt-in через аннотацию @OptIn, поэтому их можно безопасно тестировать, не опасаясь поломки обратной совместимости.
Изменения в стандартной библиотеке (stdlib)
Разработчики JetBrains продолжили оптимизацию и расширение stdlib. Вот ключевые моменты:
- Добавлены новые функции для работы с коллекциями:
chunkedиwindowedтеперь поддерживают ленивую итерацию; - Улучшена производительность Sequence — операции filter и map стали работать быстрее до 30%;
- Обновлены функции для работы с JSON (kotlinx.serialization): улучшена поддержка полиморфизма и сериализации sealed-классов.
Улучшения для Android-разработчиков
Kotlin 2.1 включает исправления, напрямую влияющие на Android-проекты:
- Полная совместимость с Android Studio Meerkat и Hedgehog;
- Исправлены редкие краши при использовании Compose вместе с новым компилятором;
- Улучшена поддержка R8/ProGuard — теперь минификация работает корректнее с мультиплатформенными библиотеками.
Как обновиться
Для перехода на Kotlin 2.1 достаточно изменить версию плагина в build.gradle.kts или pom.xml:
id("org.jetbrains.kotlin.jvm") version "2.1.0"
Для Maven — обновить версию kotlin-maven