آموزش تبدیل build scripts اندروید از Groovy به Kotlin DSL

فروردین 25, 1399| سنا عبادی
آموزش تبدیل build script از groovy به Kotlin DLS در اندروید استدیو | وبلاگ مارکت سورس اندروید ریور

در این مقاله آموزش تبدیل Build Script اندروید از Groovy به Kotlin DSL توضیح داده شده است پس یک لیوان قهوه داغ آماده کنید و محکم روی صندلی بشینید و در ادامه با من همراه باشید.

Gradle 5.0 با بسیاری از ویژگی ها و به ویژه با پشتیبانی از Kotlin DSL منتشر شد . در این مقاله گام هایی برای مهاجرت اسکریپت های فایل های Gradle از Groovy به Kotlin DSL را دنبال خواهیم کرد . پس با ما همراه باشید .

توجه : برای داشتن فایل های گریدل به زبان کاتلین حتما از نسخه گریدل پروژه مطمئن شوید . باید نسخه ی 5 به بالا را داشته باشید.

#Fri Apr 10 08:18:21 EDT 2020
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

آموزش گام به گام مهاجرت از Groovy به Kotlin DSL

گام اول :

تمامی single quotes ها را به double quotes تبدیل کنید . یعنی تمامی ‘ ها را به ” عوض کنید برای اینکار از شورتکات CTRL + SHIFT +R استفاده کنید .

مثال :

implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0.0'

به

implementation "androidx.lifecycle:lifecycle-viewmodel:2.0.0"

گام دوم :

تمامی Space ها را به () و یا = تبدیل کنید . اگر function بود پس باید () را استفاده کنیم ولی اگر با property سر و کار داشتیم پس از = استفاده می کنیم .

مثال :


applicationId "androidriver.net"

به

applicationId = "androidriver.net"

و برای فانکشن , مثال زیر را خواهیم داشت :

implementation "androidx.lifecycle:lifecycle-viewmodel:2.0.0"

به

implementation("androidx.lifecycle:lifecycle-viewmodel:2.0.0")

گام سوم :

در فایل build.gradle ماژول اتون قسمت plugin ها را به این صورت تغییر دهید :

از


apply plugin: "com.android.application"
apply plugin: "kotlin-android"
apply plugin: "kotlin-android-extensions"

به

plugins {
    id("com.android.application")
    id("kotlin-android")
    id("kotlin-android-extensions")
}

گام چهارم :

اضافه کردن .kts به انتهای فایل های گریدل . یعنی فایل settings.gradle به settings.gradle.kts تبدیل میشود و برای فایل های بعدی نیز به همین صورت اقدام کنید .

همچنین بخوانید :  تغییر فونت سورس اندروید به کمک Styles

گام پنجم :

در فایل build.gradle سطح پروژه قسمت task / clean دستخوش تغییراتی میشود :

tasks.register("clean").configure {
    delete("build")
}

و نیز در فایل buil.gradle سطح ماژول اتون با تغییراتی مانند تبدیل release به getByName(“release”) و نیز تبدیل minifyEnabled به isMinifyEnabled و هم چنین تبدیل fileTree به fileTree(Map args) !

   buildTypes {
        getByName("release") {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

گام ششم :

ایجاد دایرکتوری buildSrc و ایجاد فایل Dependencies.kt برای تمامی دپندسی های پروژه !

با کلیک راست روی اسم پروژه و انتخاب New Directory ‌و انتخاب اسم buildSrc میتوانید اقدام به ایجاد این فایل کنید .

سپس یک دایرکتوری در buildSrc به اسم src بسازید . سپس برای src دایرکتوری دیگری به نام main و سپس دایرکتوری دیگری برای main به نام java بسازید .

سپس در دایرکتوری java شما فایل کاتلینی به اسم Dependencies.kt را بسازید .

در این فایل تمامی ورژن های دپندسی های مورد نیاز خود را وارد کنید . برای مثال در پروژه ی پیش رو ما این فایل را به این صورت خواهیم داشت :

const val kotlinVersion = "1.3.71"

object BuildPlugins {

    object Versions {
        const val buildToolsVersion = "3.6.2"
    }

    const val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.buildToolsVersion}"
    const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
    const val androidApplication = "com.android.application"
    const val kotlinAndroid = "kotlin-android"
    const val kotlinAndroidExtensions = "kotlin-android-extensions"

}


object AndroidSdk {
    const val min = 21
    const val compile = 29
    const val target = compile
}

object Libraries {
    private object Versions {
        const val jetpack = "1.0.0-beta01"
        const val constraintLayout = "1.1.2"
        const val ktx = "1.1.0-alpha05"
    }

    const val kotlinStdLib = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
    const val appCompat = "androidx.appcompat:appcompat:${Versions.jetpack}"
    const val constraintLayout =
        "androidx.constraintlayout:constraintlayout:${Versions.constraintLayout}"
    const val ktxCore = "androidx.core:core-ktx:${Versions.ktx}"
}

object TestLibraries {
    private object Versions {
        const val junit4 = "4.12"
        const val testRunner = "1.1.0-alpha4"
        const val espresso = "3.1.0-alpha4"
    }

    const val junit4 = "junit:junit:${Versions.junit4}"
    const val testRunner = "androidx.test:runner:${Versions.testRunner}"
    const val espresso = "androidx.test.espresso:espresso-core:${Versions.espresso}"
}



همه چیز بسیار ساده و واضح هست و نیازی به توضیح اضافه ایی نیست لذا گام بعدی را شروع میکنیم .

همچنین بخوانید :  آموزش افزودن ادموب در Basic4android

در همان دایرکتوری buildSrc یک فایل به نام build.gradle.kts بسازید و این محتویات را بدون تغییر در آن قرار دهید و سپس پروژه را sync کنید .

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

repositories {
    jcenter()
}

plugins {
    `kotlin-dsl`
    kotlin("jvm") version "1.3.71"
}

kotlinDslPluginOptions {
    experimentalWarning.set(false)
}

سپس به فایل های گریدل خود باز گردید و به جای نام هر دپندسی و یا ورژن آن کافیست از کلاس Dependencies.kt ‌استفاده کنید به این صورت :

فایل buil.gradle :


// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath (BuildPlugins.androidGradlePlugin)
        classpath (BuildPlugins.kotlinGradlePlugin)
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

tasks.register("clean").configure {
    delete("build")
}

و نیز فایل build.gradle ماژول :

plugins {
    id(BuildPlugins.androidApplication)
    id(BuildPlugins.kotlinAndroid)
    id(BuildPlugins.kotlinAndroidExtensions)
}

android {
    compileSdkVersion(AndroidSdk.compile)
    defaultConfig {
        applicationId = "info.sanaebadi.kotlindsl"
        minSdkVersion(AndroidSdk.min)
        targetSdkVersion(AndroidSdk.target)
        versionCode = 1
        versionName = "1.0"
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        getByName("release") {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
}


dependencies {

    implementation(Libraries.kotlinStdLib)
    implementation(Libraries.appCompat)
    implementation(Libraries.ktxCore)
    implementation(Libraries.constraintLayout)

    testImplementation(TestLibraries.junit4)
    androidTestImplementation(TestLibraries.testRunner)
    androidTestImplementation(TestLibraries.espresso)
}



خب الان با sync کردن شما یک پروژه ی اندرویدی با گریدل از جنس کاتلین خواهید داشت .

در آخر برای شما لینک ویدیویی که در کانال یوتوب ام قرار دادم و همچنین پروژه ی کاملی که در این مقاله آموزش داده شد در اکانت رسمی اندروید ریور در گیت هاب قرار دادم .

امیدوارم که از این آموزش مانند آموزش های قبلی بهره لازم را ببرید .

5/5 (2 Reviews)
سنا عبادی CO-Founder نویسنده مقاله

توسعه دهنده موبایل به ویژه سیستم عامل اندروید ، هم بنیانگذار اندروید ریور و در تلاش برای تحقق یک رویا..



می تونی سنا عبادی رو توی شبکه های اجتماعی هم دنبال کنی ...

مقالات مرتبط را بخوانید :


سورس های اندروید شامل تخفیف رو ببین !


  تخفیف ها و اخبار ویژه رو در تلگراممون دنبال کن :)
به این مقاله امتیاز دهید :
5/5 (2 Reviews)
  خرید سورس های حرفه ای بازی و اپلیکیشن اندروید

دسته‌ها: آموزش برنامه نویسی اندروید

دیدگاهتان را بنویسید

راهنما : برای نوشتن موارد مختلف در دیدگاه می توانید از راهنمای نگارش اندروید ریور استفاده کنید : نگارش کد کوتاه `your code`
نگارش کد بلند یا نگارش بخش عمده یک سورس کد :
[sourcecode lang="your code language"] your code here [/sourcecode]