작성자: David Winer (Product Manager)
이 글의 원문은 여기서 확인 가능하며 블로그 번역은 김태호(Google)님이 참여해주셨습니다.
Android Kotlin Extensions Gradle 플러그인(Android KTX와 혼동하지 마세요)은 2017년에 출시되었고 Kotlin에서 Android를 개발할 때 두 가지 편의성을 제공했습니다.
Synthetics는 findViewById 호출을 android.synthetic 바인딩으로 대체할 수 있습니다.
Parcelize는 표준 문안을 제거하고 @Parcelize 주석을 달아 쉽게 Parcelables를 만들 수 있습니다.
그 이후에 Android 빌드 툴체인과 긴밀하게 통합되고 Kotlin Synthetics와 유사한 기능을 제공하는 공식 지원 라이브러리인 View Binding이 출시되었습니다. 여전히 Kotlin Android Extension에서 제공하는 Parcelize 기능 사용을 권장하는 동안, Kotlin Synthetics를 사용할 때 다음과 같은 몇 가지 단점이 드러났습니다.
전역 네임스페이스를 오염시킵니다.
null 허용 여부 정보를 노출하지 않습니다.
Kotlin 코드에서만 작동합니다.
JetBrains는 원래 Android Kotlin Extensions 플러그인을 개발하였고 JetBrains와 함께 앞으로 Synthetics를 유지하는 것의 장단점이 무엇인지 논의했습니다. 되도록 API를 장기적으로 지원하려고 노력하면서도 건전한 코드베이스를 만드는 데 도움이 되고 최종적으로는 사용자가 만족하는 모범 사례로 개발자를 안내하려고 합니다.
내년 중에 우리 팀은 권장 옵션인 View Binding을 지속적으로 지원하고자 Synthetics를 공동으로 사용 중단할 것입니다. 여기에는 다음과 같은 의미가 있습니다.
Parcelize를 사용하고 있다면 동일한 주석과 API를 사용할 수 있습니다. 주석 패키지는 Parcelize로 변경되겠지만 모듈 수준 Gradle 파일에서는 android-kotlin-extensions 대신 독립형 kotlin-parcelize 플러그인 사용을 시작해야 합니다. Parcelize에 대한 문서는 Android 개발자 문서 사이트에서 확인하실 수 있습니다.
Android Kotlin Synthetics를 사용한다면 View Binding으로 마이그레이션해야 합니다. 자세한 내용은 마이그레이션 가이드를 참조하세요.