Android developer
مهاجرت از Groovy DSL به Kotlin DSL
قبل از وارد شدن به مبحث اصلی بهتر است در ابتدا یک تعریف مختصری داشته باشیم از Groovy و DSL و kotlin DSL
در واقع Groovy یک زبان بالغ در jvm است که برای توسعه دهندگان جاوا امکان ادغام یکپارچه با برنامه و کتابخانههای موجود را فراهم میکند.
و اما DSL(Domain Specific Language) زبانی است شامل واژگان غنی که برای یک دامنه خاص ساخته شده و بین برنامه نویسان به اشتراک گذاشته شده است.
یکی از ویژگیهای خوب Groovy که امکان ایجاد DSL را فراهم کرده syntax قوی این زبان است.
حال kotlin با معرفی Kotlin DSL یک جایگزین جدید برای Groovy DSL ارایه میدهد.
در ادامه با اعمال چند گام میتوانید از Groovy DSL به Kotlin DSL مهاجرت کنید
گام اول: ارتقا دادن gradle
در ابتدا gradle شما باید Gradle 4.10 یا بالاتر باشد که به راحتی در فایل gradle-wrapper.properties میتوانید نسخه خود را ارتقا دهید
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
اطمینان حاصل کنید که از آخرین نسخه Android Studio استفاده می کنید.
گام دوم: KTS extension
قبل از شروع بهتر است با KTS extension آشنا شوید:
در واقع kts پسوند ساختارهای Gradle Kotlin است. که در ادامه راه باید فایل build.gradle را به build.gradle.kts تغییر نام دهیم.
در این گام باید سه فایل را تغییر دهیم :
- Root > settings.gradle.kts
روی فایل settings.gradle بروید و آن را تغییر نام دهید (Shift + F6) به settings.gradle.kts سپس باید محتوای آن را تغییر دهید.
// before
include ':app'
// after
include(":app")
- Root > build.gradle.kts
فایل build.gradle را به build.gradle.kts تغییر نام دهید و سپس groovy را به کاتلین تبدیل کنید
befor
buildscript {
ext.kotlin_version = '1.3.61'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
after
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath ("com.android.tools.build:gradle:3.6.2")
classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61")
}
}
allprojects {
repositories {
google()
jcenter()
}
}
tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}
- App > build.gradle.kts
در اینجا هم تغییر نام را انجام دهید و جایگزینی کد را شروع کنید.
من از plugins شروع کردم
//befor
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
//after
plugins{
id("com.android.application")
kotlin("android")
kotlin("android.extensions")
kotlin("kapt")
}
تغییرات بلاک dependencies و android را در زیر ببینید
سورس کامل را میتوانید در آدرس زیر ببینید.
https://github.com/fvarmayar992/migrate-GroovyDSL-to-kotlinDSL
مطلبی دیگر از این انتشارات
معرفی سایتهای ترجمه مقاله
مطلبی دیگر از این انتشارات
موسسه اعزام دانشجو پارس ویزا
مطلبی دیگر از این انتشارات
مهاجرت به بلاروس