[Kotlin] 1.5.30 Release 내용 살펴보기

Kenneths
Kenneth Android
Published in
3 min readAug 26, 2021
captions by kenneth

어제 Kotiln 1.5.30 버전이 릴리즈 되었습니다. 제 주관적으로 관심있는 부분으로 변경된 사항에 대해서 살펴보겠습니다.

Language Features

when문에서 sealed와 boolean에 대한 주제

kotlin에서 when Expression 을 사용 할 때 else 구문을 필수적으로 작성하지 않아도 되었지만 앞으로 현재 버전에서는 else 구문에 경고를 표시하고 앞으로 업데이트 될 kotlin 1.6 에서는 오류가 표시되고 나중에는 오류로 발생할 수 있다는 것을 암시해주고 있습니다.

위와 같은 구문을 1.7에서는 금지되고 OFF 혹은 true 아니면 else를 추가해주어야 합니다.

sealed classs를 when expression 에 지원하는 것은 아직까진 실험적이라고 합니다. 언제든지 삭제되거나 변경될수 있습니다.

suspend 함수를 supertype으로 지원

kotlin 1.5.30에서 suspend 기능을 supertype으로 구성하여 콜백형태로 사용이 가능합니다.

해당 기능은 다음과 같은 제약을 따릅니다.

  • 일반 functional type과 suspend functional type을 혼합할 수 없습니다. 혼합하게 사용하게 된다면 다음과 같은 에러가 발생합니다.
  • suspend function supertype을 여러개로 사용할 수 없습니다.

Kotlin/Native

애플 실리콘 지원

이전에는 맥북 실리콘에서 Kotlin/Native를 사용하려면 로제타에서 변환 작업이 필요했습니다. 하지만 Kotlin 1.5.30에서는 변환이 필요없이 애플 실리콘에서 실행 가능합니다.

  • macosArm64
  • iosSimulatorArm64
  • watchosSimulatorArm64
  • tvosSimulatorArm64

Swift/Objective-C 에서 objects and companion objects를 지원

kotlin의 Singleton 객체인 object 와 companion object를 swift의 singleton 개념인 shared를 지원합니다.

Standard library

Duration.toString() 출력 변경

1.5.30 이전에는 간결하고 읽기 쉬운 숫자로 출력되었지만 이제 부터는 구성 요소의 조합으로 표현된 문자열을 각각 고유한 단위로 출력합니다.

Decimal을 이용해 다음과 같은 출력도 가능합니다.

Duration.seconds(90).toString(TimeUnit.SECONDS, 0) // 90s
Duration.seconds(90).toString(TimeUnit.MINUTES, 1) // 1.5m

마무리 😃

1.5 버전이 릴리즈 된지 엊그제 같은데 벌써 30 버전이 나왔습니다. 1.4에서 1.5로 변경 시 체감을 많이 못느꼈지만 1.6버전 이 나올 때는 많은 변화가 예상됩니다. 그럼 모두 즐거운 코딩 하시길 👋

--

--

Kenneths
Kenneth Android

사용자들에게 편리하고 AweSome UI, UX를 경험해주고 싶은 상위 티어 개발자가 되고싶어 달려가고있는 개발자입니다. 다양한 내용들을 공유하려고 합니다.