Kotlin'i mevcut bir uygulamaya ekleyin

Android Studio, Kotlin için tam destek sunarak Kotlin dosyalarını mevcut projenize dönüştürür ve Java dil kodunu Kotlin'e dönüştürür. Ardından, Android Studio'nun mevcut araçlarını Kotlin kodunuzla kullanabilirsiniz. Otomatik tamamlama, hata analizi kontrolü, yeniden düzenleme, hata ayıklama ve diğer özellikleri içerir.

Yeni bir projeye başlıyor ve Kotlin'i kullanmak istiyorsanız Proje oluşturun.

Örnekler için şuraya göz atın: Kotlin kod örnekleri.

Kotlin'i mevcut bir projeye ekleme

Kotlin'i projenize eklemek için aşağıdakileri yapın:

  1. Dosya > Yeni'yi tıklayın ve aşağıdakiler gibi çeşitli Android şablonlarından birini seçin: yeni boş bir Parça olarak görünür. Listeyi görmüyorsanız birini seçin, önce Proje penceresini açın ve ardından istediğiniz şablonu seçin inceleyebilirsiniz.

    yeni boş parça oluştur
    Şekil 1. Kullanılabilir şablonlar arasından seçim yapın (ör. parça) olabilir.
    'nı inceleyin.
  2. Görüntülenen sihirbazda Kaynak Dil olarak Kotlin'i seçin. Şekil 2'de, aşağıdakileri yapmak istediğinizde Yeni Android Etkinliği iletişim kutusu gösterilmektedir yeni bir etkinlik oluşturun.

    kaynak diliniz için Kotlin'i seçmenize olanak tanıyan iletişim kutusu
    Şekil 2. Yapabileceğiniz Yeni Android Etkinliği iletişim kutusu Kaynak Diliniz olarak Kotlin'i seçin.
  3. Sihirbazla devam edin.

Alternatif olarak, Dosya > Yeni > Kotlin Dosyası/Sınıfı'nı kullanarak temel Kotlin dosyasıdır. Bu seçeneği görmüyorsanız Proje penceresini açın ve Java dizinini seçin. Yeni Kotlin Dosyası/Sınıfı penceresi, dosya adını tanımlar ve dosya türü için birkaç seçenek sunar: Dosya, Sınıf, Arayüz, Enum Sınıfı veya Nesne. Yaptığınız seçim yeni Kotlin dosyasında sizin için oluşturulan temel yapı iskelesini belirler. Şu durumda: Sınıf'ı seçerseniz Android Studio, verilen ve eşleşen bir sınıf tanımıdır. Arayüz'ü seçerseniz bir arayüz içine alınmış olması gerekir.

Sayfalarınıza ilk kez yeni bir Kotlin sınıfı veya dosyası eklediyseniz doğrudan projeniz varsa (Android şablonlarını kullanmadan) Kotlin'in projede yapılandırılmadığını belirten uyarının (Şekil 3'te gösterildiği gibi) yapıldığını unutmayın. Chrome'un sağ üst köşesindeki Yapılandır'ı tıklayarak Kotlin'i yapılandırın. düzenleyiciye veya sağ alt köşede görüntülenen etkinlik günlüğü uyarısına yazın.

için Kotlin'i yapılandırmanızı isteyen uyarı iletişim kutusu
      proje
Şekil 3. Android Studio, Kotlin çalıştırıldığında bir uyarı iletişim kutusu gösteriyor yapılandırılmamış olabilir.

Kotlin içeren tüm modüller için Kotlin'i yapılandırma seçeneğini belirleyin dosyaları istendiğinde aşağıdaki gibidir:

Kotlin kodunu içeren tüm modüller için Kotlin'i yapılandırmayı tercih etme
Şekil 4. Şu öğeyi içeren tüm modüller için Kotlin'i yapılandırmayı seçin: Kotlin kodu.

Tamam'ı tıkladığınızda Android Studio, Kotlin'i proje sınıf yolunuza ekler ve Kotlin dosyaları içeren her modüle Kotlin Android eklentisini uygular. build.gradle dosyalarınız aşağıdaki örneklere benzer olmalıdır:

Eski

// Project build.gradle file.
buildscript {
    ext.kotlin_version = '1.4.10'
    ...
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

Kotlin

// Project build.gradle.kts file.
buildscript {
    extra["kotlin_version"] = "1.4.10"
    ...
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
    }
}

Eski

// Inside each module using kotlin
plugins {
    ...
    id 'kotlin-android'
}

...

dependencies {
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

Kotlin

// Inside each module using kotlin
plugins {
    ...
    kotlin("android")
}

...

val kotlin_version: String by rootProject.extra

dependencies {
    implementation("androidx.core:core-ktx:1.3.2")
    implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
}

Kaynak kuruluş

Yeni Kotlin dosyaları varsayılan olarak src/main/java/ bölümüne kaydedilir. Böylece kolayca hem Kotlin hem de Java dosyalarını tek bir konumda görüntülemenizi sağlar. Ya da benzer yapıda Kotlin dosyalarınızı kaydetmek için, Kotlin dosyalarını Bunun yerine src/main/kotlin/. Bunu yaparsanız bunu da sourceSets içindeki dizin aşağıdaki gibi yapılandırma gerekir:

Eski

android {
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

Kotlin

android {
    sourceSets {
        getByName("main") {
            java.srcDir("src/main/kotlin")
        }
    }
}

Mevcut Java kodunu Kotlin koduna dönüştürün

Java kodunu Kotlin'e dönüştürmek için Java dosyasını Android Studio'da açın ve şunu seçin: Kod > Java Dosyasını Kotlin Dosyasına Dönüştür'ü tıklayın. Alternatif olarak yeni bir Kotlin oluşturabilirsiniz (Dosya > Yeni > Kotlin Dosyası/Sınıfı) açın ve Java kodunuzu yapabilirsiniz. Android Studio, bunun ardından bir istem ve kodunuzu dönüştürmeyi önerir. gibi bir özellik içerir. Dönüştürmek için Evet'i tıklayın. İsterseniz Bir dahaki sefere bu iletişim kutusunu gösterme'yi işaretleyin. Bu durumda, gelecekteki dönüşümler otomatik olarak ayarlanır.

Kotlin kodunu içeren tüm modüller için Kotlin'i yapılandırmayı tercih etme
Şekil 5. Android Studio, Java kodunu Kotlin'e dönüştürebilir.

Kod dönüştürme ve boş değer atanabilirliği

Android Studio'nun dönüştürme süreci, işlevsel olarak eş değer Kotlin kodu üretiyor derlenen ve çalışan bir uygulamadır. Ancak, muhtemelen yeni aboneleriniz için dönüştürme işlemlerini yapabilirsiniz. Örneğin, çalışanlar için dönüştürülen kod boş değerli türleri işler.

Android'de, View nesnelerin ve diğer cihazların ilk kullanıma hazırlanmasını geciktirmek yaygın bir durumdur. parçası oldukları parça veya etkinlik, hedefine ulaşana kadar uygun bir yaşam döngüsü durumuna sahip olursunuz. Örneğin, elinizdeki düğmesini aşağıdaki snippet'te gösterildiği gibi parçalarınızdan birine ekleyin:

public class JavaFragment extends Fragment {

    // Null until onCreateView.
    private Button button;

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.fragment_content, container,false);

        // Get a reference to the button in the view, only after the root view is inflated.
        button = root.findViewById(R.id.button);

        return root;
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        // Not null at this point of time when onViewCreated runs
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ...
            }
        });
    }
}

Düğme değişkeni boş değerli olsa da, tüm pratik amaçlar için bu örnekte kullanıldığında hiçbir zaman null olmamalıdır. Ancak, değeri oluşturulan Kotlin kodu, Button değerini dikkate alır. bir null değer türü olarak kullanır ve düğmenin sarmalamasını açmak için null olmayan onay operatörünü kullanır aşağıdakileri göz önünde bulundurun:

class JavaFragment : Fragment() {

    // Null until onCreateView.
    private var button: Button? = null

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
            savedInstanceState: Bundle?): View? {
        ...
        // Get a reference to the button in the view, only after the root view is inflated.
        button = root.findViewById(R.id.button)
        ...
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        // Not null at the point of time when onViewCreated fires 
        // but force unwrapped nonetheless
        button!!.setOnClickListener { }
    }
}

Bu dönüşüm, bu durumda lateinit kullanmak kadar ideal değildir çünkü boş olmayan bir onay veya güvenli çağrı ile düğme referansını açmaya zorlanır. operatörünün eriştiği her yerde geçerli olur.

Diğer durumlarda, null değeri metriğinize dayalı olarak geçerli bir değişken atamasıdır. uygulamanın kullanım alanında, sonlandırılan bir elvis ile güvenli çağrı (?.) operatörü operatörü (?:) operatörü, null nesne veya null olmayan makul bir varsayılan değere zorlama. Android Studio bu kararı vermek için yeterli bilgiye sahip olmadığı dönüşüm süreci üzerinden görüntüleyebilirsiniz. Varsayılan olarak null olmayan onaylamaya karşılık gelse de bunu takip edin ve dönüştürülen kodu gerektiği gibi ayarlayın.

Daha fazla bilgi

Projenizde hem Kotlin hem de Java kodunu kullanma hakkında daha fazla bilgi için Kotlin'den Java kodu çağırma.

Kurumsal senaryolarda Kotlin kullanma hakkında daha fazla bilgi edinmek için Kotlin'i büyük ekipler için kullanmaya başlama.

Mevcut Android API'lerinin deyimsel Kotlin sarmalayıcıları hakkında bilgi edinmek için Android KTX.