JetBrains는 대부분의 새로운 Kotlin Multiplatform(KMP) 프로젝트에 Kotlin Toolchain 0.13을 사용할 것을 권장했다. 이 도구는 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는 또한 com.example.app과 같은 실험용 식별자를 사용해 애플리케이션이나 라이브러리가 배포되는 일을 방지하기 위해 namespace 및 application ID 검사를 강화했다. 개발자는 파일 편집기 안에서 IDE 동기화 상태도 확인할 수 있다.
Apple 플랫폼에서는 Apple을 지원하는 모듈에서 로컬 패키지를 포함한 Swift Package Manager 의존성을 지원한다. 이를 통해 Objective-C 또는 Swift 코드에서 생성된 Objective-C 인터페이스를 가져올 수 있으며, 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 기반의 기존 프로젝트를 마이그레이션할 것을 권장하지 않는다. 먼저 사용자 피드백을 파악하고 격차를 해소해야 하며, 향후 변경 사항에 따라 프로젝트 수정이 필요할 수 있다고 설명했다.