2012년 6월 11일
이번 주 초에 몇몇 뉴스 웹사이트에서 Kotlin M2가 출시되었다고 했습니다. 이제 우리가 그것을 실현시킵니다 :)
M2 후보 버전 게시물에서 JavaScript와 Android 지원, 그리고 새로운 언어 기능에 대해 이야기했습니다. 이제 업데이트, 예제, 계획에 대한 더 많은 정보를 제공할 시간입니다.
Kotlin M2 설치 지침으로 진행하세요.
언어에 대해 조금 더
이전 게시물에서는 새로운 언어 기능에 대한 개요를 제공했습니다. 여기에 조금 더 추가합니다:
먼저, M1에서 "assert not null" 연산자인 '!!'을 추가했다는 것을 상기시켜 드리고 싶습니다. 이것은 우리가 표준 라이브러리에서 사용하던 sure() 함수를 대체합니다. 이제 sure()는 라이브러리에서 제거되었으므로 일부 코드가 깨질 수 있지만, 수정하기 매우 쉽습니다.
Kotlin이 리스트나 맵에 대한 리터럴을 가지고 있는지 계속 물어보는데, 답은 엄밀히 말하면 아니지만, 그에 상응하는 라이브러리 함수가 있습니다:
val list = arrayList(1, 2, 3)
val map = hashMap(
"John" to "Doe",
"Jane" to "Smith"
)
to()도 함수라는 점에 유의하세요.
또한 이제 invoke()라는 이름의 함수를 가진 어떤 유형이라도 callee 위치에서 사용할 수 있습니다:
fun foo(x : Method) {
x(bar)
}
이전에는 이 역할에 함수 유형만을 사용할 수 있었지만, 이제 invoke() 확장이나 멤버를 제공함으로써 어떤 객체든 "함수"로 바꿀 수 있습니다.
그 문서에 이 모든 것이 아직 나와 있지 않은 점 사과드립니다. 좋은 소식은 우리가 문서도 프로젝트의 나머지 부분처럼 오픈 소스로 만들고 있다는 것입니다. 이제 github 저장소에서 Confluence 위키 형식의 소스를 찾을 수 있으며, pull-request 형태로 교정/추가를 기여할 수 있습니다.
문서에 대한 조금 더 뉴스: 우리의 KDoc 도구가 빠르게 성숙하고 있으며, 이제 라이브러리의 github 소스에 대한 검색과 링크를 지원합니다.
예제
위에서 언급했듯이, 이번 마일스톤에서 큰 것들은 IDE에서의 JavaScript 지원과 Android입니다. 예제로 시작하는 것이 항상 좋으니, 여기 IDE에서 열어볼 수 있는 프로젝트 세트가 있습니다. 이전 게시물에서 몇 가지 지침을 찾아보세요.
JavaScript용 예제:
- Hello, world!
- Creatures (HTML5 Canvas): 실행 중인 것 보기
- KotlinPuzzle: 실행 중인 것 보기
- Traffic Lights: 실행 중인 것 보기
- 또한 James Strachan이 작성한 koolapp을 유의하세요, 이것은 별도의 게시물이 곧 있을 것이라고 생각합니다. 지금은 readme 파일을 참조하세요.
Android용 예제:
- Hello, world!
- 표준 뱀과 Wikitionary 예제가 Kotlin으로 재작성되어 여기에서 찾을 수 있습니다.
- Vlad Likhonos가 작성한 유용한 유틸리티 세트: kotlinAndroidLib
이러한 예제로 즐겁게 놀아보고, 더 많이 기여하세요!
IntelliJ IDEA 플러그인
IntelliJ IDEA 플러그인은 꽤 빠르게 진행되고 있습니다. 대부분의 작업은 뒷 단에서 이루어지고 있습니다(성능, Java IDE와의 더 타이트한 통합), 하지만 몇 가지 사용자에게 보이는 것들도 지적할 만한 가치가 있습니다:
- IDE는 이제 오류 메시지를 좋은 HTML과 유사한 방식으로 표시하여 메시지를 더 읽기 쉽게 만듭니다.
- "명시적 유형 지정" 리팩토링을 사용하여 선언에 유형을 추가할 필요가 있을 때 즐기세요.
- Kotlin과 Java 코드 사이에서의 'Find Usages'와 'Rename'이 이제 지원됩니다.
- 상속자로 이동이 지원됩니다. 이것은 언어 간에도 작동합니다: Kotlin 내부에서, Kotlin 클래스가 Java 클래스를 확장하는 경우와 그 반대 경우에도요.
- 또한 IDE 아이콘을 변경했고, 이제 매우 멋집니다. 이 주제에 대한 더 많은 작업이 예정되어 있습니다.
다음 마일스톤에 대한 우리의 우선순위는 IDE 성능과 Java 클래스에 대한 null-safety 지원의 개선입니다.
M2 플러그인 설치: M1을 설치했다면 플러그인 저장소에서 자동으로 업데이트됩니다. 하루에 한 번 업데이트를 확인하므로 기다리고 싶지 않다면 수동으로 확인을 시작하세요.
어노테이션 형식이 약간 변경되었기 때문에 Kotlin 라이브러리를 업데이트하라는 메시지가 표시됩니다. "Update Kotlin Runtime" 알림을 놓친 경우, 이벤트 로그에서 메시지를 열어보세요.
주의할 점은, 메인 플러그인 저장소에서 M2를 설치하기 전에 M2 후보 버전과 Kotlin 플러그인의 어떤 야간 빌드나 수동으로 설치한 빌드를 제거해야 한다는 것입니다.
빌드 도구: Ant와 Maven
빌드 도구 통합, Maven을 포함하여, 약간 개선되었습니다—더 적은 저장소, 더 쉬운 설정 과정. pom을 업데이트해야 할 수 있습니다. 여기에서 지침을 참조하세요.
계획
우리가 다음에 할 계획에 대해 조금 더 말하겠습니다. 위에서 언급했듯이, IDE의 우선순위는 성능과 Java 통합과 관련된 null-safety입니다. 언어 작업은 다음과 같은 개선을 가져올 것입니다:
- Kotlin은 Java의 static final 변수로 변환되는 속성을 정의하는 수단을 제공할 것입니다.
- Scala의 케이스 클래스와 어느 정도 유사한 data class의 개념을 지원할 것입니다.
- Kotlin은 정적으로 유형화된 접근 방식과 맞지 않는 JavaScript API를 수용하기 위해 동적 유형을 지원할 것입니다.
- 또한 유형 추론 알고리즘을 엄청나게 개선할 것입니다. 이것은 우리가 이제까지 당신에게 빚진 것입니다...
라이브러리 측면에서의 계획은 다음과 같습니다:
- Kotlin의 표준 라이브러리 대부분을 JS 플랫폼으로 이식할 것입니다.
- Kotlin의 컬렉션을 변형시키되, java.util.* 컬렉션과의 원활한 상호 운용성을 유지할 것입니다. 이것은 실제로 별도의 게시물을 필요로 합니다.
- Android를 위한 좋은 라이브러리 지원을 제공할 것입니다. Android의 XML 파일 대부분은 Kotlin의 빌더로 대체될 수 있으며, 그것들은 많은 방면에서 훨씬 더 멋집니다...
즐거운 Kotlin 되세요!
피드백을 잊지 말고 주세요. 감사합니다.
원문
'Kotlin > Release Notes' 카테고리의 다른 글
[Kotlin Release Notes] Dogfooding Kotlin and M3.1 (0) | 2023.08.27 |
---|---|
[Kotlin Release Notes] Kotlin M3 is Out! (0) | 2023.08.27 |
[Kotlin Release Notes] Kotlin M2 Candidate (0) | 2023.08.27 |
[Kotlin Release Notes] Kotlin M1 is Out! (0) | 2023.08.27 |
[Kotlin Release Notes] Kotlin M1 Candidate (0) | 2023.08.27 |
댓글