کوتلین چیست؟

کوتلین، زبان برنامه نویسی متن باز طراحی شده توسط JetBrains، در بین توسعه دهندگان جاوا به طور شگفت انگیزی محبوب شده است. این زبان بیشتر اوقات به عنوان جایگزین جاوا نام برده می شود. در مقایسه با جاوا، کوتلین تجربه توسعه بهتری را داراست، به دلیل اینکه آن نوین تر، رسا، و دقیق تر است.

اگر به دنبال زبانی جایگزین جاوا برای توسعه اندروید هستید، باید کوتلین رو امتحان کنید.  کوتلین به راحتی می تواند جایگزین یا در کنار جاوا در پروژه های اندرویدی شما استفاده شود.

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

برای ادامه کار، شما نیاز به:

  • آخرین نسخه Android Studio
  • و آشنایی پایه با قواعد نحوی کوتلین دارید.

اگر با زبان برنامه نویسی کوتلین آشنایی ندارید، پس به شما خواندن قسمت “شروع به کارمرجع کوتلین را برای آشنایی با این زبان پیشنهاد می کنم.

در منوی سریع Android Studio، گزینه های Configure > Plugins را انتخاب نمایید.

Configure Plugins

در صفحه بعد، بر روی …Install JetBrains plugin در پایین کلیک نمایید.

Install JetBrains plugin

 بر روی Kotlin Extensions For Android در لیست کلیک نمایید و در سمت راست بر روی Install Plugin کلیک نمایید.

Install Kotlin Extensions For Android

به دلیل اینکه افزونه بستگی به افزونه کوتلین دارد، از شما خواسته می شود که هر دو را نصب نمایید. بر روی Yes برای آغاز نصب کنید نمایید.

Plugin Dependencies Detected

وقتی نصب به پایان رسید، Android Studio را برای اعمال تغییرات از دوباره راه اندازی کنید.

در Android Studio، بر روی نام بسته راست کلیک کرده و New > Kotlin File را انتخاب نمایید.

New Kotlin File

در پنجره ای که باز می شود، نام Activity جدید را وارد کرده و Class را از منوی کشویی انتخاب نمایید. من نام کلاسم را MainActivity گذاشتم.

New Kotlin file dialog

وقتی کلاس ساخته شد، یک اخطار می بینید که از شما می خواهد تا ماژول برنامه خود را برای پشتیبانی از کوتلین تنظیم کنید.

Configure Kotlin alert

بر روی لینک اخظار کلیک نمایید و، در پنجره باز شده، بر روی OK کلیک نمایید تا ارزش های پیش فرض انتخاب شوند.

Configure Kotlin dialog

برای تنظیم پروژه برای پشتیبانی از کوتلین، افزونه کوتلین تغییراتی در فایل Build.gradle ایجاد می کند. این تغییرات را با کلیک بر روی دکمه Sync Now همان طوری که در زیر نشان داده شده است، تثبیت کنید.

Sync Now pop up

تا اینجا، تنظیمات پروژه شما به پایان رسید. به کلاس کوتلینی که چند لحظه پیش ساختید برای شروع کدنویسی کوتلین رجوع کنید.

برای ساده نگه داشتن مثال، به شما چگونگی ساخت یک Activity با یک TextView که یک String را نشان می دهد را نشان می دهم.

مطمئن شوید که کلاستان زیر کلاسی از Activity و رونویسی شده ی متد onCreate آن باشد.  مطمئنن، باید این کار را در کوتلین انجام دهید. اگر در کوتلین تازه کار هستید، به شما پیشنهاد می کنم که از قابلیت تولید کد Android Studio با فشردن دکمه های Control+O برای درست نوشتن متد ها استفاده کنید.

Override Members dialog

کلاس شما حال باید به این شکل باشد:

package com.hathy.kotlinsample
 
import android.app.Activity
import android.os.Bundle
 
public class MainActivity: Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

نمونه ای از TextView به عنوان یک متغیر محلی یکبار-تعریف با استفاده از کلمه کلیدی val بسازید.

val myMessage = TextView(this)

متد setText آن را برای تعیین String ای که میخواهید به نمایش در بیارید صدا بزنید و بعد setContentView را برای نمایش متن صدا بزنید.

myMessage.setText("Hello")
setContentView(myMessage)

همانند یک Activity جاوا، باید Activity کوتلین خود را در AndroidManifest.xml برنامه مشخص کنید تا آن توسط سیستم اندروید شناسایی شود.  اگر این تنها Activity در پروژه شماست، فایل manifest شما باید به این گونه باشد:

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

حال می توانید برنامه خود را تفسیر و بر روی دستگاه اندرویدی خود یا شبیه ساز اجرا کنید.  با این جال که مفسر کوتلین کمی آهسته تر از جاواست، احتمال دیدن تفاوت زمانی بسیار کم است.

افزونه بسط کوتلین اندروید به شما اجازه رفتار با ویجت های تعریف شده را در چیدمان XML یک Activity می دهد انگار که آنها خصوصیات آن Activityبوده اند.  به زبانی دیگر، اگر از این افزونه استفاده کنید، دیگر نیازی به استفاده از findViewById نخواهید داشت.  این خصوصیات، خصوصیات ترکیبی نامیده می شوند.

برای استفاده از این خصوصیت در برنامه خود، باید org.jetbrains.kotlin:kotlin-android-extensions را به عنوان اسکریپت مورد نیاز در ماژول Build.gradle برنامه خود طبق شکل زیر اضافه کنید.  فراموش نکنید تا بر روی دکمه Sync Now برای همگام سازی پروژه خود کلیک نمایید.

buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}

حال بیایید یک Activity مانند آن چیزی که در قدم پیشین ساختیم، بسازیم، اما از یک چیدمان XML برای تعیین TextView استفاده کنیم.  یک فایل چیدمان XML جدید با نام another_activity.xml بسازید. در فایل چیدمان XML، یک TextView با  شناسه ی myMessage معین می کنیم.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/myMessage" />
</LinearLayout>

یک کلاس کوتلین جدید با نام، AnotherActivity، بسازید، که Activity را داراست و متد onCreate را رونویسی می کند. باید به صورت صورت عمل کرده باشید:

package com.hathy.kotlinsample
 
import android.app.Activity
import android.os.Bundle
 
public class AnotherActivity: Activity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

در متد onCreate، باید setContentview را برای استفاده از چیدمان XML ای که تازه ساختید به عنوان چیدمان این Activity صدا بزنید.

setContentView(R.layout.another_activity)

حال، به جای صدا زدن findViewById برای گرفتن منبع TextView، می توانید با استفاده از تکه کد زیر آن را وارد کنید:

import kotlinx.android.synthetic.another_activity.myMessage

اگر ویجت های بیشتری در چیدمانتان داشتید، میتوانید همه آنها را با استفاده از تکه کد زیر وارد کنید:

import kotlinx.android.synthetic.another_activity.*

حال می توانید به TextView خود با استفاده از شناسه آن دسترسی داشته باشید به صورتی که آن یک خصوصیتی از کلاس Activity شماست.  برای مثال، برای تغییر متن TextView، می توانید بنویسید:

myMessage.setText("Hello")

می توانید از افزونه کوتلین برای تبدیل کلاس های جاوای پیشین به کوتلین استفاده نمایید.  برای آزمایش این خصوصیت، یک کلاس جدید جاوا با این فرضیات بسازید. این یک Activity ساده است که جمع دو عدد را محاسبه می کند.

public class YetAnotherActivity extends Activity {
 
    private int a,b;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        a=10;
        b=20;
        Log.d("MESSAGE", "The sum is "+(a+b));
    }
}

کلاس جاوا را به کلاس کوتلین با فشردن Control+Alt+Shift+J، یا، از منو، با انتخاب Code > Convert Java File to Kotlin File تبدیل کنید.

Convert Java file to Kotlin file

بعد از تبدیل، کلاس شما به این صورت خوااهد بود:

public class YetAnotherActivity : Activity() {
 
    private var a: Int = 0
    private var b: Int = 0
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        a = 10
        b = 20
        Log.d("MESSAGE", "The sum is " + (a + b))
    }
}

همچنین می توانید ببینید که پسوند java. به kt. تبدیل شده است.

در این آموزش، آموختید که چگونه از کوتلین در پروژه های اندروید خود بعد از نصب افزونه کوتلین و افزونه بسط های اندرویدی کوتلین برای Android Studio استفاده کنید.  به دلیل اینکه کلاس های جاوا و کوتلین خیلی شبیه به هم هستند، اگر هنوز در حال یادگیری کوتلین هستید، بهتر است که آرام آرام کوتلین را در پروژه های خود اعمال کنید.

برای یادگیری بیشتر درباره کوتلین، مرور بر منبع کوتلین را به شما پیشنهاد می کنم.  قسمت “شروع به کار” به شما کمک می کند سریع با این زبان آشنایی لازم را پیدا کنید.

نویسنده مطلب
علی پامناری

دیدگاه کاربران

این وب سایت متعلق است به آذین وب (طراحی سایت در اصفهان) و تمامی حقوق آن محفوظ است.

طـبق ماده 12 فصل سوم قانون جرائم رایانه ای هرگونه کپی برداری از قالب پیگرد قانونی دارد.