Kotlin 2.1: новый релиз — что изменилось и как обновиться

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Вышел Kotlin 2.1: что нового в языке и инструментах

16 ноября 2024 года компания JetBrains представила стабильную версию Kotlin 2.1.0 — крупное обновление, которое продолжает развитие языка после революционного перехода на компилятор K2 в версии 2.0. Новый релиз не только исправляет ошибки, но и вводит ряд долгожданных экспериментальных возможностей. Разбираем главные изменения для разработчиков.

Стабилизация K2: что это значит для разработчика

Главная новость — компилятор K2, который в Kotlin 2.0 был опциональным, теперь стал основным для JVM и мультиплатформенных проектов. K2 обеспечивает:

  • Значительное ускорение сборки (до 2–3 раз на больших проектах);
  • Улучшенный вывод типов (type inference) — меньше явных аннотаций;
  • Более точные и понятные сообщения об ошибках;
  • Полную поддержку Kotlin Multiplatform (KMP) и Compose Multiplatform.

Разработчикам, использующим Gradle, достаточно обновить плагин Kotlin до версии 2.1.0 — K2 активируется автоматически.

Новые экспериментальные возможности языка

Версия 2.1 вводит несколько предварительных фич, доступных через аннотацию @OptIn. Вот самые интересные:

  • Non-local break/continue — теперь можно использовать break и continue внутри лямбда-выражений, переданных в инлайн-функции. Это упрощает работу с циклами в функциональном стиле.
  • Explicit backing fields — новая конструкция для прямого доступа к полю свойства внутри геттера/сеттера без вызова рекурсии. Упрощает написание делегированных свойств.
  • Named arguments in lambda — экспериментальная поддержка именованных аргументов для лямбда-параметров. Делает код с несколькими лямбдами более читаемым.

Улучшения для Kotlin Multiplatform

Kotlin 2.1 — важный шаг для мультиплатформенной разработки. Ключевые изменения:

  • Полная поддержка expect/actual для стандартных библиотек — теперь можно объявлять платформо-зависимые функции прямо в commonMain.
  • Улучшена интеграция с CocoaPods и Swift Package Manager для iOS-таргетов.
  • Новый режим конфигурации для Android: автоматическая настройка source sets под современные AGP (Android Gradle Plugin) 8.x.

Обновления в Compose Multiplatform

Для разработчиков UI-приложений в релизе появилась поддержка Resource API — нового способа работы с ресурсами (изображения, строки, шрифты) в Compose Multiplatform. Ресурсы теперь можно размещать в общем модуле, а плагин автоматически генерирует типобезопасные ссылки для каждой платформы. Это упрощает создание кроссплатформенных приложений с единой логикой отрисовки.

Как обновиться до Kotlin 2.1

Обновление тривиально для проектов на Gradle. Добавьте в build.gradle.kts:

plugins {
    kotlin("jvm") version "2.1.0"
    // или kotlin("multiplatform") version "2.1.0"
}

JetBrains рекомендует перед обновлением прогнать проект с флагом --warning-mode all, чтобы проверить совместимость с новым компилятором. Для Int

Рекомендуем библотеки