JetBrains выпустила стабильную версию Kotlin 2.3.0. Этот релиз — не просто очередное обновление с исправлениями ошибок. Согласно политике выпуска, релизы с номером 2.x.0 приносят основные изменения в язык и инструменты, выпускаясь раз в полгода. Для мобильных разработчиков это означает долгожданные улучшения в инфраструктуре и расширенные возможности для кросс-платформенной разработки, делающие код более безопасным, а процессы сборки — более удобными.
enum class и функции с vararg теперь корректно экспортируются в Swift как перечисления и функции с вариативными параметрами.Хотя релиз содержит множество улучшений, несколько из них имеют особое значение для создания мобильных приложений под Android и iOS.
Это одно из наиболее практичных улучшений для повседневной работы. Многие современные библиотеки (Room, Koin, KSP-плагины) генерируют исходный код во время сборки. Новый экспериментальный API в интерфейсе KotlinSourceSet позволяет явно регистрировать каталоги со сгенерированными файлами.
Практическая польза в том, что IDE, например Android Studio, сможет отличать такой код от написанного вручную. В будущем это может привести к более точной подсветке синтаксиса, навигации и автоматическому запуску задач кодогенерации при открытии проекта. Для разработчиков это шаг к более чистой и предсказуемой работе с мощными метапрограммируемыми инструментами.
Для команд, использующих Kotlin Multiplatform для общего кода между Android и iOS, важны два улучшения в Kotlin/Native:
enum class из Kotlin экспортировался в Swift как обычный класс. Теперь происходит прямая мапинг на нативные Swift enum, что делает интерфейс более идиоматичным и удобным для iOS-разработчиков.vararg теперь корректно экспортируются в Swift как функции с вариативными параметрами (messages: Swift.String...).Эти изменения снижают трение при взаимодействии между платформами, делая общий код более чистым и упрощая его поддержку.
Новая экспериментальная функция — Unused return value checker — действует как встроенный линтер. Компилятор начинает предупреждать, если возвращаемое функцией значение (кроме Unit или Nothing) игнорируется. Это помогает отлавливать скрытые баги, например, когда вы вызываете метод, возвращающий статус операции или новый объект, но не используете результат.
Функцию можно включить для всего проекта или для отдельных модулей, а для стандартных случаев игнорирования (как MutableList.add) предусмотрена возможность подавления предупреждений. Это инструмент для написания более осознанного и безопасного кода.
Для обновления необходимо изменить версию Kotlin Gradle plugin в файле build.gradle(.kts) на 2.3.0. Плагин совместим с Gradle версий 7.6.3–9.0.0 и Android Gradle Plugin (AGP) 8.2.2–8.13.0. Полная поддержка в IDE уже доступна в актуальных версиях IntelliJ IDEA и Android Studio.
Kotlin 2.3.0 — это значительный шаг в развитии экосистемы. Он не столько меняет синтаксис, сколько укрепляет инфраструктуру: улучшает инструменты сборки для растущей экосистемы кодогенерации, укрепляет мосты с нативной iOS-разработкой и предлагает новые инструменты для качества кода. Для мобильных команд, особенно тех, кто работает с KMP или современными Android-библиотеками, это желанное обновление, которое делает процесс разработки более отполированным и профессиональным.