Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Android KTX

Android Jetpack의 일부인 Android KTX

Android KTX는 Android Jetpack 제품군의 일부인 Kotlin 확장 프로그램 세트로, Kotlin 사용을 위해 Jetpack과 Android 플랫폼 API를 최적화합니다. Android KTX는 개발자가 확장 함수/속성, 람다, 명명된 매개변수, 매개변수 기본값 등의 Kotlin 언어 기능을 활용하여 직관적인 표현을 사용하면서 더욱 간결하고 즐겁게 Android 스튜디오에서 Kotlin으로 개발할 수 있도록 만들어졌습니다. Android KTX는 기존 Android API에 새로운 기능을 추가하지 않습니다.

Android KTX에 관한 자세한 내용은 Google의 DevBytes 동영상을 참조하세요.

시작하기

Android KTX를 사용하려면 프로젝트의 build.gradle 파일에 다음 코드를 추가하세요.

repositories {
        google()
    }
    

Android KTX는 모듈로 구성되어 있으며, 각 모듈에는 하나 이상의 패키지가 포함되어 있습니다.

모듈을 사용할 때는 앱의 build.gradle 파일에 있는 각 Android KTX 아티팩트에 종속성을 포함하세요. 또한 아티팩트에 버전을 추가해야 합니다. 예를 들어 core-ktx 모듈을 사용하는 경우 완성된 종속성은 다음과 같습니다.

dependencies {
        implementation 'androidx.core:core-ktx:1.0.0'
    }
    

모듈

Android KTX는 다음 Maven 아티팩트로 구성되어 있습니다. API 참조 문서를 보려면 특정 패키지 이름을 클릭하고 확장 함수 요약을 참조하세요. 버전 번호는 변경될 수 있습니다. 사용 가능한 최신 버전을 사용 중인지 확인하려면 Google Maven 저장소를 확인하세요.

모듈(아티팩트) 버전 패키지
androidx.core:core-ktx 1.0.0 아래의 모든 핵심 패키지를 참조하세요.
androidx.fragment:fragment-ktx 1.0.0 androidx.fragment.app
androidx.palette:palette-ktx 1.0.0 androidx.palette.graphics
androidx.sqlite:sqlite-ktx 2.0.0 androidx.sqlite.db
androidx.collection:collection-ktx 1.0.0 androidx.collection
androidx.lifecycle:lifecycle-viewmodel-ktx 2.0.0 androidx.lifecycle
androidx.lifecycle:lifecycle-reactivestreams-ktx 2.0.0 androidx.lifecycle
android.arch.navigation:navigation-common-ktx 1.0.0-alpha06 androidx.navigation
android.arch.navigation:navigation-fragment-ktx 1.0.0-alpha06 androidx.navigation.fragment
android.arch.navigation:navigation-runtime-ktx 1.0.0-alpha06 androidx.navigation
android.arch.navigation:navigation-testing-ktx 1.0.0-alpha06 androidx.navigation.testing
android.arch.navigation:navigation-ui-ktx 1.0.0-alpha06 androidx.navigation.ui
android.arch.work:work-runtime-ktx 1.0.0-alpha10 androidx.work.ktx

핵심 모듈에는 다음 패키지가 포함됩니다.

Android KTX는 Sunflower 데모 앱에 사용되었습니다.

다음 예에서는 몇 가지 Android KTX 확장 함수를 보여줍니다. 이 예는 모듈(아티팩트) 이름별로 그룹화되어 있습니다. 확장 함수의 전체 목록은 전체 패키지 참조 문서를 참조하세요.

androidx.core:core-ktx

Kotlin

    sharedPreferences.edit()
        .putBoolean("key", value)
        .apply()
    

Kotlin과 Android KTX

    sharedPreferences.edit {
        putBoolean("key", value)
    }
    

Kotlin

    view.viewTreeObserver.addOnPreDrawListener(
        object : ViewTreeObserver.OnPreDrawListener {
            override fun onPreDraw(): Boolean {
                viewTreeObserver.removeOnPreDrawListener(this)
                actionToBeTriggered()
                return true
            }
        }
    )
    

Kotlin과 Android KTX

    view.doOnPreDraw {
         actionToBeTriggered()
    }
    

androidx.sqlite:sqlite-ktx

Kotlin

    db.beginTransaction()
    try {
        // insert data
        db.setTransactionSuccessful()
    } finally {
        db.endTransaction()
    }
    

Kotlin과 Android KTX

    db.transaction {
        // insert data
    }
    

androidx.fragment:fragment-ktx

Kotlin

    supportFragmentManager
        .beginTransaction()
        .replace(R.id.my_fragment_container, myFragment, FRAGMENT_TAG)
        .commitAllowingStateLoss()
    

Kotlin과 Android KTX

    supportFragmentManager.transaction(allowStateLoss = true) {
                replace(R.id.my_fragment_container, myFragment, FRAGMENT_TAG)
            }
    

의견

Google에서는 Jetpack 전체에 새로운 Kotlin 확장 프로그램을 지속적으로 추가할 예정이며, 여러분의 소중한 의견을 기다리고 있습니다. 문제를 신고하거나 기능을 제안하려면 Android KTX 문제 트래커에서 새 문제를 신고해 주시기 바랍니다.