2016년 12월 27일
우리는 Kotlin 1.0.6 버전의 출시를 기쁘게 알립니다. 이 버전은 IDE 플러그인과 Android 지원과 관련된 많은 개선 사항을 가져왔습니다.
우리는 이 출시에 포함된 외부 기여자인 Kirill Rakhman과 Yoshinori Isogai에게 감사드립니다. 또한 EAP 사용자들 모두의 의견에 감사드립니다. 이것은 언제나 우리에게 매우 값진 피드백입니다.
변경 내역의 전체 목록은 변경 로그에서 확인하실 수 있습니다. 아래에 강조할 몇 가지 변경 내역을 설명하겠습니다.
try-finally를 use() 의도로 변환
우리는 코드를 Kotlin의 관용적인 스타일로 변환하기 위한 의도를 계속해서 추가하고 있습니다. IDE는 이제 finally 블록이 리소스를 닫기만 한다면 try-finally 블록을 use() 호출로 대체하는 것을 자동으로 제안합니다.
"호출 인수에 이름 추가" 의도
명명된 인수는 코드 가독성을 높이는 데 도움이 됩니다. 새로운 "호출 인수에 이름 추가" 의도로 인수에 이름을 쉽게 추가하거나 모든 호출 인수에 대한 이름을 한 번에 바꿀 수 있습니다.
다른 주목할만한 IDE 플러그인 변경 사항
- 빈 보조 생성자 본문 제거 및 빈 주 생성자 선언을 위한 검사/의도;
- "선언 및 할당 연결" 의도;
- 인라인 함수의 수정 사항 및 디버거의 성능 개선;
- 의도, KDoc 및 빠른 문서에서 많은 수정 사항.
Android 지원
- Android Studio 2.3 베타 1 버전과 Android Gradle 플러그인 2.3.0-alpha3 및 이후 버전이 지원됩니다.
- "XML 리소스 생성" 의도가 추가되었습니다;
- Android Extensions 지원은 이제 빌드.gradle에서 해당 플러그인이 활성화된 경우에만 IDE에서 활성화됩니다;
- Android Lint에서 많은 수정 사항이 이루어졌습니다. "Lint 억제" 의도가 추가되었습니다.
Kapt 개선
Kotlin 주석 처리 도구 (kapt)의 실험 버전에 대한 작업을 계속 진행하고 있습니다. 여전히 증분 컴파일을 완전히 지원하려면 해야 할 일이 있지만, Kotlin 1.0.4부터 주석 처리의 성능이 크게 향상되었습니다.
실험적인 kapt를 활성화하려면 다음 줄을 build.gradle에 추가하면 됩니다:
apply plugin: 'kotlin-kapt'
All-open 컴파일러 플러그인
all-open 컴파일러 플러그인은 특정 어노테이션으로 주석이 달린 클래스와 해당 멤버를 open 키워드 없이 열어줍니다. 따라서 Spring AOP 또는 Mockito와 같은 프레임워크/라이브러리를 사용하는 것이 훨씬 더 쉬워집니다. 해당 KEEP에서 all-open에 대한 자세한 정보를 확인할 수 있습니다.
우리는 Gradle과 Maven 모두에서 all-open 플러그인 지원을 제공하며, IDE 통합도 가능합니다.
Gradle에서 all-open 사용 방법
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
}
apply plugin: "kotlin-allopen"
allOpen {
annotation("com.your.Annotation")
}
클래스(또는 슈퍼 클래스)가 com.your.Annotation으로 주석이 달린 경우, 클래스 자체와 해당 멤버가 모두 open이 됩니다. 메타 어노테이션과도 잘 작동합니다:
@com.your.Annotation
annotation class MyFrameworkAnnotation
@MyFrameworkAnnotation
class MyClass // will be all-open
Spring 프레임워크에 필요한 모든 필수 어노테이션을 이미 포함하는 "kotlin-spring" 플러그인도 제공합니다:
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
}
apply plugin: "kotlin-spring"
물론 같은 프로젝트에서 kotlin-allopen과 kotlin-spring을 모두 사용할 수 있습니다.
Maven에서 all-open 사용 방법
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<configuration>
<compilerPlugins>
<!-- 또는 Spring 지원인 경우 "spring" -->
<plugin>all-open</plugin>
</compilerPlugins>
<pluginOptions>
<!-- 각 어노테이션은 자체 줄에 배치됩니다 -->
<option>all-open:annotation=com.your.Annotation</option>
<option>all-open:annotation=com.their.AnotherAnnotation</option>
</pluginOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>
No-arg 컴파일러 플러그인
no-arg 컴파일러 플러그인은 특정 어노테이션을 가진 클래스에 대해 추가적인 인자가 없는 생성자를 생성합니다. 생성된 생성자는 합성 생성자이므로 Java나 Kotlin에서 직접 호출할 수는 없지만, 리플렉션을 통해 호출할 수 있습니다. 동기 부여된 토론을 여기서 확인할 수 있습니다.
Gradle에서 no-arg 사용 방법
사용법은 all-open과 매우 유사합니다.
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
}
}
// Or "kotlin-jpa" for the Java Persistence API support
apply plugin: "kotlin-noarg"
noArg {
annotation("com.your.Annotation")
}
Maven에서 no-arg 사용 방법
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<configuration>
<compilerPlugins>
<!-- 또는 Java Persistence 어노테이션 지원인 경우 "jpa" -->
<plugin>no-arg</plugin>
</compilerPlugins>
<pluginOptions>
<option>no-arg:annotation=com.your.Annotation</option>
</pluginOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-noarg</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>
업데이트 방법
IDEA 플러그인을 업데이트하려면 도구 | Kotlin | Kotlin 플러그인 업데이트 구성을 사용하고 "지금 업데이트 확인" 버튼을 누르십시오. 또한 Maven과 Gradle 빌드 스크립트에서 컴파일러 및 표준 라이브러리 버전을 업데이트하는 것을 잊지 마십시오.
커맨드 라인 컴파일러는 Github 릴리스 페이지에서 다운로드할 수 있습니다.
새로운 출시와 관련하여 문제가 발생하면 포럼이나 Slack (여기에서 초대를 받으세요)에서 도움을 요청하거나 이슈 트래커에 문제를 보고하십시오.
Kotlin을 즐기세요!
원문
https://blog.jetbrains.com/kotlin/2016/12/kotlin-1-0-6-is-here/
'Kotlin > Release Notes' 카테고리의 다른 글
[Kotlin Release Notes] Announcing the Support Program for Kotlin User Groups and Events (0) | 2023.09.03 |
---|---|
[Kotlin Release Notes] Kotlin 1.1 Beta Is Here! (0) | 2023.09.03 |
[Kotlin Release Notes] Kotlin 1.1-M04 is here! (1) | 2023.09.03 |
[Kotlin Release Notes] Kotlin 1.1-M03 is here! (0) | 2023.09.03 |
[Kotlin Release Notes] Kotlin 1.0.5 is here (0) | 2023.09.02 |
댓글