오늘은 Kotlin 1.4.20에 반영된 Kotlin Android extensions의 변경점에 대한 내용입니다.
약 한 달 전에 Kotlin 1.4.20-M2
이 공개되었고, Android 개발에도 작은 변경점이 발생했습니다.
Android
KT-42121
Deprecate Kotlin Android Extensions compiler pluginKT-42267
Platform declaration clash
error in IDE when usingkotlinx.android.parcel.Parcelize
KT-42406
Long or infinite code analysis on simple files modificationLink : https://github.com/JetBrains/kotlin/releases/tag/v1.4.20-M2
바로, Kotlin Android Extensions이 Deperecate
되었습니다.
이 글을 읽는 분들중 에도 Kotlin Android Extensions을 모르시는 분들도 계실 것이라고 생각되어서 간단하게 언급만 하겠습니다.
Parcelize
자세한 기능에 대한 설명은 아래 링크를 참고해주세요.
- kotlin synthetic : https://github.com/Kotlin/KEEP/blob/master/proposals/android-extensions-entity-caching.md
- android-parcelable : https://github.com/Kotlin/KEEP/blob/master/proposals/extensions/android-parcelable.md
각각의 기능들이 Android 개발시 편하게 개발하도록 도와줬다는 것을 많이 알고 계실겁니다.
다만, View Caching 기능은 Fragment에서 뷰 갱신이 일어나지 않는 문제가 있습니다. 이 현상을 경험하지 못하셨다면, Fragment의 교체 및 추가로 Fragment의 View를 재생성하는 케이스를 사용하고 있지 않으실 겁니다.
그러므로, 현재 프로젝트에서 Kotlin Android Extensions
을 사용하는지 체크해볼 필요가 있습니다. 그 이유는 Android Studio 4.0까지 새로운 프로젝트를 생성할 때 Kotlin Android Extensions가 항상 포함되어 있기 때문이죠.
build.gradle (~ Android Studio 4.0)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
build.gradle
Android Studio 4.1에 맞춰서 마이그레이션 대응했다면 아래와 같을 것입니다.
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
}
kotlin-android-extensions
을 사용하고 계신다면 2가지만 대응하시면 됩니다.
kotlin synthetic
kotlin-android-extensions
을 제거해주세요.Android Parcelable
kotlin-android-extension
을 제거한 후 Parcelable만 포함된 kotlin-parcelize
Plugin으로 변경해주세요.
comments powered by Disqus
Subscribe to this blog via RSS.
LazyColumn/Row에서 동일한 Key를 사용하면 크래시가 발생하는 이유
Posted on 30 Nov 2024