JetBrains рекомендовала использовать версию 0.13 Kotlin Toolchain для большинства новых проектов Kotlin Multiplatform (KMP), поскольку она служит единой точкой входа для настройки среды Kotlin, а также создания, сборки, тестирования и публикации приложений и библиотек. Инструмент предназначен для проектов JVM, Android, iOS и мультиплатформенных проектов, а также серверных приложений и работает на основе декларативной настройки и единого интерфейса командной строки.
Этот подход появился после того, как ранее в этом году Kotlin Toolchain перешёл на стадию Alpha, а затем были собраны отзывы из каналов Slack и системы отслеживания проблем. По словам JetBrains, улучшения в работе командной строки и среды разработки, а также добавление поддержки веба и cinterop стали основанием рекомендовать инструмент для новых проектов. Он также включён в руководства по началу работы с KMP и обработчики создания проектов в веб-интерфейсе и средах разработки.
Создание проектов и настройка среды
В выпуске появилась команда kotlin new для создания проекта с помощью интерактивного процесса, похожего на Kotlin Multiplatform Wizard: разработчик выбирает тип приложения, а затем целевые платформы. Команда kotlin init по-прежнему доступна, но теперь её поведение соответствует новой команде: файлы проекта создаются непосредственно в текущей папке.
Текстовый интерфейс инструмента также отображает индикаторы выполнения при загрузке необходимых инструментов, таких как пакеты JDK и Android SDK, среды выполнения симуляторов iOS и компиляторы. Для iOS инструмент теперь предоставляет более понятную диагностику проблем с установкой Xcode, принятием лицензии и первоначальным состоянием запуска, загружает среду симулятора iOS при необходимости и автоматически создаёт симулятор, если он отсутствует.
Улучшения Android и Apple
Механизм предоставления компонентов Android SDK был унифицирован для командной строки и среды разработки: теперь недостающие компоненты можно загрузить при импорте проекта в IDE, не дожидаясь запуска команды сборки или выполнения. JetBrains также усилила проверку namespace и application ID, чтобы предотвратить публикацию приложений или библиотек с использованием тестовых идентификаторов, таких как com.example.app. Кроме того, разработчик может отслеживать состояние синхронизации IDE непосредственно из редактора файлов.
На платформах Apple выпуск добавляет поддержку зависимостей Swift Package Manager, включая локальные пакеты, в модулях с поддержкой Apple. Это позволяет импортировать интерфейсы Objective-C, сгенерированные из кода Objective-C или Swift, с использованием имён областей, начинающихся с префикса swiftPMImport. При публикации мультиплатформенных библиотек данные Compose Resources и зависимости SwiftPM включаются в артефакты сборки. Кроме того, Compose Resources можно разрешать из мультиплатформенных библиотек сторонних разработчиков.
Что практически меняется для разработчиков?
Выпуск сокращает количество отдельных шагов, необходимых для настройки проектов KMP, особенно для разработчиков, переходящих между Android и iOS или работающих на чистом устройстве. Улучшения iOS и SwiftPM имеют практическое значение, поскольку устраняют препятствия, связанные с нативными инструментами платформы Apple, а механизм предоставления Android SDK помогает предотвратить сбой импорта до первой сборки.
Инструмент также включает сервер под названием Hot Reload MCP и специальные навыки для агентов искусственного интеллекта, а также пакет официальных навыков Kotlin, который можно установить командой npx skills add kotlin/kotlin-agent-skills. JetBrains утверждает, что внутренние тесты показали способность агентов надёжнее создавать и обслуживать проекты Kotlin Toolchain, используя меньше токенов. Однако это результат, заявленный разработчиком, а не независимый показатель.
Ускорение Kotlin/Native и текущие ограничения
Kotlin Toolchain сохраняет скомпилированные зависимости Kotlin/Native и повторно использует их между сборками и даже между проектами. Код проекта также кэшируется по каждому файлу, что позволяет при компоновке пересобирать только затронутые части. Возможность основана на настройке settings.kotlin.compileIncrementally и поддерживает неоптимизированные debug-файлы на совместимых целях, тогда как компиляция файлов .klib по-прежнему выполняется полностью.
В дальнейшем JetBrains планирует предоставить установку с помощью команды brew install kotlin, включить навыки искусственного интеллекта по умолчанию, добавить Swift Export после стабилизации этой функции и упростить публикацию приложений в магазинах приложений. Однако компания пока не рекомендует переносить существующие проекты на основе Gradle: по её словам, сначала необходимо изучить отзывы пользователей и устранить пробелы, а будущие изменения могут потребовать модификации проектов.