Android KTX مجموعهای از اِکستِنشنهای زبان برنامهنویسی Kotlin است که برای کمک به دولوپرها به منظور کدنویسی اپهای اندرویدی به صورت اپنسورس عرضه شده است. با کمک این اِکستِنشنها، از یک سو حجم کد کاهش یافته و از سوی دیگر برنامهنویسی برای اندروید جذابتر خواهد شد. گوگل قول داده تا در آینده، بسته به میزان همکاری دیگر دولوپرها و بازخوردهای دریافت شده از سوی ایشان، یکسری API مربوطهٔ تکمیلی هم ارائه کند.
در نسخهٔ پیشنمایش، Android KTX یک لایه API و همچنین یک Support Library برای اندروید ارائه میکند که این ماژولها در گیتهاب نیز قابل دسترس هستند. گوگل قول داده است که قسمتهای دیگر Android KTX را که Support Library اندروید را پوشش میدهد، در نسخههای آتی این اِکستِنشنها عرضه کند. به منظور درک بهتر این موضوع، در ادامه کدی که در زبان کاتلین نوشته شده را مد نظر قرار میدهیم:
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
})
حال همین عملکرد را با استفاده از Android KTX ریفکتور کردهایم:
view.doOnPreDraw {
actionToBeTriggered()
}
روش استفاده از این اِکستِنشنها بدین شکل است که پس از انجام مرحلهٔ Sync پروژه، اِکستِنشنهای مربوطه به صورت خودکار در لیست Autocomplete محیط توسعه نمایش داده میشوند (شبیه سایر دستورات) و با انتخاب هر کدام از آنها، دستور ایمپورت لازم به کد اضافه خواهد شد.
گوگل گوشزد کرده است که احتمالاً APIها حین دورهٔ پیشنمایش تغییر کنند! به عبارتی، دولوپرها نباید از این APIها در پروژههای واقعی استفاده کنند چرا که تغییرات اساسی تا قبل از ارائه نسخهٔ پایدار محتمل است. هر وقت نسخهٔ API به حالت پایدار رسید و گوگل آن را تأیید کرد، دولوپرها میتوانند با خیال راحت Android KTX را به عنوان بخشی از Support Library اندروید مورد استفاده قرار دهند.
روش استفاده از Android KTX
به منظور استفاده از Android KTX، به سادگی میتوان کدهای زیر را به build.gradle پروژهٔ خود اضافه نمایید:
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:0.1'
}
از این پس، هرجایی که قصد استفاده از این اِکستِنشنها را داشتید، صرفاً نیاز است تا آنها را ایمپورت کنید.
همچنین لازم به ذکر است که نام پکیجهای مربوط به Android KTX، با عبارت androidx شروع میشود. بنا بر گفتهٔ گوگل، این عبارت برای نام پکیجهای آتی Support Library نیز استفاده خواهد شد. تفاوت در نام پکیجهایی که با android.* یا androidx.* شروع میشوند، تفاوت نسخهٔ APIهای استفاده شده را مشخص خواهد کرد که این موضوع برای دولوپرهایی که بر روی نسخههای متفاوت اندروید کار میکنند کارآمد خواهد بود.