Android KTX를 사용한 코드 샘플
String을 Uri로 변환
이 간단한 예부터 살펴보겠습니다. 일반적으로 문자열을 Uri로 변환하려면 Uri.parse(uriString)을 사용합니다. Android KTX는 문자열을 Uri로 더욱 자연스럽게 변환할 수 있는 확장 기능을 String 클래스에 추가합니다.
Kotlin
|
Android KTX 를 사용한 Kotlin
|
val uri = Uri.parse(myUriString)
|
val uri = myUriString.toUri()
|
SharedPreferences 편집
SharedPreferences를 편집할 때 Android KTX를 사용한다면 작성하는코드의 양도 줄이고 기존 대비 더 자연스러운 코드를 작성할 수 있습니다.
Kotlin
|
Android KTX 를 사용한 Kotlin
|
sharedPreferences.edit() .putBoolean(key, value) .apply()
|
sharedPreferences.edit { putBoolean(key, value) }
|
경로 차이 변환
아래 코드에서는 두 경로의 차이를 100px로 변환합니다.
Kotlin
|
Android KTX 를 사용한 Kotlin
|
val pathDifference = Path(myPath1).apply { op(myPath2, Path.Op.DIFFERENCE) }
val myPaint = Paint()
canvas.apply { val checkpoint = save() translate(0F, 100F) drawPath(pathDifference, myPaint) restoreToCount(checkpoint) }
|
val pathDifference = myPath1 - myPath2
canvas.withTranslation(y = 100F) { drawPath(pathDifference, myPaint) }
|
View에서 onPreDraw 콜백 처리
이 예에서는 View의 onPreDraw 콜백에서 수행하는 작업을 보여줍니다. Android KTX를 사용하지 않을 경우 상당히 많은 양의 코드를 작성해야 합니다.
Kotlin
|
view.viewTreeObserver.addOnPreDrawListener( object : ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { viewTreeObserver.removeOnPreDrawListener(this) actionToBeTriggered() return true } })
|
Android KTX를 사용한 Kotlin
|
view.doOnPreDraw { actionToBeTriggered() }
|
이 외에도 Android KTX를 사용하면 다양한 코드를 더 짧고 단순하게 작성할 수 있습니다. GitHub에서
전체 API 참조 문서를 읽어 보실 수 있습니다.
시작하기
Android Kotlin 프로젝트에서 Android KTX를 사용하려면 앱 모듈의 build.gradle 파일에 다음을 추가해야 합니다.
repositories {
google()
}
dependencies {
// Android KTX for framework API
implementation 'androidx.core:core-ktx:0.1'
...
}
그런 다음, 프로젝트를 동기화하면 Android KTX에서 제공하는 확장 함수들이 IDE의 자동 완성 목록에 자동으로 표시됩니다. 확장 함수를 선택하면 필요한 import 문이 파일에 자동으로 추가됩니다.
프리뷰 기간 중에는 API가 변경될 가능성이 크다는 점에 주의하세요. 프로젝트에 Android KTX를 사용하기로 결정할 경우 안정적인 버전이 출시되기 전에 많은 변화가 있을 거라는 점을 알고 계셔야 합니다.
androidx: Hello World!
Android KTX가
androidx로 시작하는 패키지 이름을 사용한다는 점을 알 수 있을 것입니다. 이는 새로운 패키지 이름 접두사이며, 이후 안드로이드 서포트 라이브러리에서 사용할 예정입니다. android.*와 androidx.*의 구분을 통해 플랫폼과 함께 번들로 제공되는 API가 무엇인지, 그리고 여러 버전의 Android에서 작업하는 앱 개발자에게 정적인 라이브러리는 무엇인지에 대해 더 명확히 알 수 있기를 바랍니다.
다음 단계
오늘의 프리뷰 출시는 시작에 불과합니다. 앞으로 몇 달 동안 여러분께서 제공해 주시는
피드백과 기여를 통합함에 따라 API 작업을 반복할 것입니다. API가 안정화되고 API 호환성을 충족할 수 있게 되면 Android KTX를 Android 지원 라이브러리의 일부로 출시할 계획입니다.
여러분과 함께 Android KTX를 빌드할 수 있기를 기대합니다. Kotlin으로 즐겁게 개발해 보시기 바랍니다!