اولین پروژه با کاتلین – آموزش برنامه نویسی kotlin ، ما در پست های قبل مربوط به آموزش برنامه نویسی kotlin بطور کامل با کاتلین و توانایی هایی که گوگل برای اون مشخص کرده آشنا شدیم و اینکه چرا باید از جاوا به kotlin منتقل بشیم با دلایل قانع کننده !! اما در این پست و در ادامه پست های آموزش برنامه نویسی kotlin میخواهیم اولین پروژه با kotlin ( پروژه Hello World با کاتلین ) ایجاد کنیم.
برای ساخت پروژه کاتلین ما میتونیم از IDE(integrated development environment) های زیر استفاده کنیم
خب هرکدام از محیط های برنامه نویسی فوق به اندازه خود قدرتمند و کارا هستند اما ما از Android Studio که از خانواده های Intellij هست استفاده میکنیم که یکی از قدرتمندترین های برنامه نویسی برای اندروید است.درحال حاضر آخرین نسخه اندروید استودیو 3.4.1 هستش که بصورت کامل از کاتلین پشتیبانی میکند.در نسخه های قبل از 3 اندروید استودیو در کانفیگ داخلی خود قابلیت پشتیبانی از kotlin را نداشت و میباست بصورت دستی کانفیگ های مورد نیاز کاتلین رو به پروژه اضافه میکردیم.
اگر اندروید استودیو رو نصب ندارید با مراجعه به این لینک از سایت اصلی اندروید میتونید اندروید استودیو رو برای هر سه سیستم عامل مک , لینوکس و ویندوز دانلود و نصب کنید.
نکته:
نکته قابل توجه اینکه دیگر نیازی به نصب جداگانه JDK (Java Development Kit) و SDK (software development kit) ندارید چراکه از نسخه 3 به بعد تمامی پکیج های پیش نیاز اندروید استودیو درون خود فایل نصبی اندروید استودیو قرار گرفتند و با نصب اندوروید استودیو بقیه پیش نیاز هایش هم نصب خواهند شد.
همچنین بخوانید: همه چیز درباره اندروید استودیو 3.3
پس از نصب اندروید استودیو و اجرا کردن آن با کلیک کردن بر روی گزینه زیر یک پروژه جدید ایجاد کنید
Start a new Android Studio project
در صفحه بعد گزینه Empty Project رو انتخاب کنید و به صفحه آخر مطابق تصویر زیر میرسیم
همونطور که در بخش Language میبینید به ما امکان انتخاب زبان Kotlin رو هم میده ( منظور همان پشتیبانی داخلی اندروید استودیو از kotlin ) که با انتخاب این زبان میتونیم خیلی راحت کلاس های کاتلین رو در کنار کلاس های جاوا (بسته به نیاز) ایجاد کنیم و به راحتی با هم تعامل دارند.
همچنین دو آپشن دیگه هم در این پنجره هست که دونستن اونها هم خالی از لطف نیست
This project will support instant apps
که قابلیت پشتیبانی از حالت instant برای اپ رو میدهد.برای مطالعه بیشتر درباره اپ های instant میتونید به این پست از تجاری اپ مراجعه کنید.و آپشن
User androidx.* artifacts
که امکان استفاده از androidx بجای support library رو به شما میدهد
همچنین بخوانید: همه چیز درباره AndroidX جانشین Support Library
خب حالا پروژه رو با کلیک کردن بر روی دکمه Finish ایجاد میکنیم
پس از build کامل پروژه میتونیم نگاهی به ساختار پروژه کاتلین و تفاوت های آن با جاوا بیندازیم.حتی آیکن کلاس های کاتلین هم متفاوت با جاواست و همچنین پسوند فایل های kotlin که .kt ست
خب حالا برای اینکه ببینیم چه کانفیگ های مخصوص کاتلینی به پروژه اضافه شده کافیست فایل
build.gradle(Project:kotlinprac)
رو باز کنید و خواهید دید که علاوه بر کتابخانه های همیشگی یک کتابخانه کاتلین هم به این فایل اضافه شده
buildscript {
ext.kotlin_version = '1.3.31'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
و همچنین در فایل
build.gradle(Module:app)
میبینید که ابتدای فایل دو پلاگین کاتلین اضافه شده
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
و در ادامه در بخش وابستگی ها یا dependency ها هم وابستگی کاتلین اضافه شده
dependencies {
…
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
…
}
خب درصورتی که پروژه ما به طور اتوماتیک از kotlin پشتیبانی نکند با اضافه کردن این دستورات میتونیم پروژه را کاتلین کنیم و این بدین معنی نیست که فایل های جاوا پاک یا خراب می شوند بلکه تنها یک آپشن به آپشن های پروژه اضافه خواهد شد.
حالا داخل فایل MainActivity.kt خواهیم دید که چنین دستوراتی داریم
package com.tejariapp.kotlinprac
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
این همان اکتیوتی های ابتدایی جاواست و بلاک onCreate تنها با کمی تفاوت سینتکسی.
برای درک بهتر یک اکتیویی جاوا هم میسازم و خواهیم دید کدهای فایل جاوا بدین صورت است
package com.tejariapp.kotlinprac;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
}
با یک مقایسه کلی به این دستورات میتونیم چند نکته کلیدی از کاتلین رو متوجه بشیم برای مثال
فعلا درک همین تفاوت ها کافیست در پست های بعدی عمیق تر به دستورات kotlin میپردازیم
حالا داخل اکتیوتی کاتلین چنین کدی مینویسیم
Toast.makeText(this,"Hello world",Toast.LENGTH_LONG).show()
Log.d("first prc","Hello world")
خب میشه گفت بین دستورات toast ، log در کاتلین و جاوا هیچ تفاوتی جز نبود Semicolon نیست.
حالا پروژه رو اجرا میکنیم و خواهیم دید هم در لاگ کت و هم بصورت پیغام toast ما Hello world رو میبینم.خب این هم از اولین پروژه اندروید با کاتلین که خیلی هم سخت نبود !
در پست بعدی درباره نحوه تعریف متغیر ها و انواع انها در کاتلین میپردازیم پس با ما همراه باشید