Android Studio memberikan dukungan penuh untuk Kotlin, sehingga memungkinkan Anda untuk menambahkan file Kotlin ke project yang ada dan mengonversi kode bahasa Java ke Kotlin. Selanjutnya, Anda dapat menggunakan semua alat yang ada di Android Studio dengan kode Kotlin Anda, termasuk pelengkapan otomatis, pemeriksaan lint, pemfaktoran ulang, proses debug, dan lainnya.
Jika Anda memulai project baru dan ingin menggunakan Kotlin, lihat Membuat project.
Untuk contoh, lihat contoh kode Kotlin kami.
Menambahkan Kotlin ke project yang sudah ada
Untuk menambahkan Kotlin ke project Anda, lakukan hal berikut:
Klik File > New, lalu pilih salah satu dari berbagai template Android, misalnya Fragment kosong baru, seperti yang ditunjukkan pada gambar 1. Jika Anda tidak melihat daftar template dalam menu ini, buka jendela Project terlebih dahulu, lalu pilih modul aplikasi Anda.
Gambar 1. Pilih dari template yang tersedia, misalnya fragmen atau aktivitas. Di wizard yang muncul, pilih Kotlin untuk Source Language. Gambar 2 menampilkan dialog New Android Activity jika Anda ingin membuat aktivitas baru.
Gambar 2. Dialog New Android Activity tempat Anda dapat memilih Kotlin sebagai Source Language. Lanjutkan melalui wizard.
Atau, Anda dapat mengklik File > New > Kotlin File/Class untuk membuat file Kotlin dasar. Jika Anda tidak melihat opsi ini, buka jendela Project lalu pilih direktori java. Jendela New Kotlin File/Class memungkinkan Anda menentukan nama file dan menyediakan beberapa pilihan untuk jenis file: File, Class, Interface, Enum Class, atau Object. Pilihan yang Anda buat menentukan scaffolding dasar yang dibuat untuk Anda pada file Kotlin baru. Jika Anda memilih Class, Android Studio akan membuat file sumber Kotlin baru dengan nama tertentu dan definisi class yang cocok. Jika Anda memilih Interface, antarmuka dideklarasikan dalam file, dan sebagainya.
Jika ini adalah pertama kalinya Anda menambahkan class atau file Kotlin baru ke project secara langsung (tidak menggunakan template Android), Android Studio akan menampilkan peringatan bahwa Kotlin tidak dikonfigurasi dalam project ini, seperti yang ditunjukkan pada gambar 3. Konfigurasikan Kotlin dengan mengklik Configure di pojok kanan atas editor atau di notifikasi log aktivitas yang muncul di pojok kanan bawah.
![dialog peringatan yang meminta Anda mengonfigurasi Kotlin untuk project Anda](https://developer.android.google.cn/static/images/kotlin/configure-kotlin.png?authuser=9&hl=id)
Pilih opsi All modules containing Kotlin files untuk mengonfigurasi Kotlin jika diminta, seperti yang ditunjukkan pada gambar 4:
![memilih untuk mengonfigurasi Kotlin untuk semua modul yang berisi kode Kotlin](https://developer.android.google.cn/static/images/kotlin/all-modules.png?authuser=9&hl=id)
Setelah Anda mengklik Oke, Android Studio akan menambahkan Kotlin ke classpath project Anda dan
menerapkan plugin Android Kotlin ke setiap modul yang berisi file Kotlin.
File build.gradle
Anda akan terlihat seperti contoh di bawah ini:
Groovy
// 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") } }
Groovy
// 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") }
Organisasi sumber
Secara default, file Kotlin baru disimpan di src/main/java/
, yang memudahkan Anda melihat file Kotlin dan Java di satu lokasi. Jika Anda lebih suka memisahkan file Kotlin dari file Java, Anda dapat menempatkan file Kotlin di src/main/kotlin/
. Jika melakukannya, Anda juga harus menyertakan direktori ini
dalam konfigurasi sourceSets
Anda, seperti yang ditunjukkan di bawah ini:
Groovy
android { sourceSets { main.java.srcDirs += 'src/main/kotlin' } }
Kotlin
android { sourceSets { getByName("main") { java.srcDir("src/main/kotlin") } } }
Mengonversi kode Java yang sudah ada ke kode Kotlin
Untuk mengonversi kode Java ke Kotlin, buka file Java di Android Studio, lalu pilih Code > Convert Java File to Kotlin File. Atau, buat file Kotlin baru (File > New > Kotlin File/Class), kemudian tempel kode Java Anda ke file tersebut. Selanjutnya, Android Studio akan menampilkan perintah dan menawarkan untuk mengonversi kode Anda ke Kotlin, seperti yang ditunjukkan pada gambar 5. Klik Yes untuk mengonversi. Anda bisa mencentang Don't show this dialog next time secara opsional, yang membuat konversi selanjutnya menjadi otomatis.
![memilih untuk mengonfigurasi Kotlin untuk semua modul yang berisi kode Kotlin](https://developer.android.google.cn/static/images/kotlin/convert-code.png?authuser=9&hl=id)
Konversi kode dan nullability
Proses konversi Android Studio menghasilkan kode Kotlin yang setara secara fungsional yang dapat dikompilasi dan dijalankan. Namun, Anda mungkin perlu melakukan pengoptimalan tambahan pada kode yang dikonversi. Misalnya, Anda mungkin ingin menyempurnakan cara kode yang dikonversi menangani jenis nullable.
Di Android, hal ini umum untuk menunda inisialisasi objek View
dan komponen lainnya hingga fragmen atau aktivitas yang dilampirkan mencapai status siklus proses yang tepat. Misalnya, Anda mungkin memiliki referensi ke tombol pada salah satu fragmen, seperti yang ditunjukkan pada cuplikan berikut:
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) {
...
}
});
}
}
Meskipun variabel tombol bersifat nullable, untuk semua tujuan praktis variabel tersebut tidak boleh berupa null jika digunakan dalam contoh ini. Namun, karena nilainya tidak ditetapkan pada titik konstruksi, kode Kotlin yang dihasilkan akan memperlakukan Button
sebagai jenis nullable dan menggunakan operator pernyataan non-null untuk membuka tombol saat menambahkan pemroses klik, seperti yang ditunjukkan di bawah ini:
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 { }
}
}
Untuk kasus ini, konversi tersebut kurang ideal daripada menggunakan lateinit
, karena Anda dipaksa membuka referensi tombol dengan pernyataan non-null atau operator panggilan aman di setiap tempat yang diakses.
Dalam kasus lain, jika null
adalah penetapan variabel yang valid berdasarkan
kasus penggunaan aplikasi Anda, menggunakan operator panggilan aman (?.) dengan operator elvis penghentian (?:) dapat menjadi cara yang tepat untuk secara aman membuka
objek nullable atau mengonversi ke nilai default non-null yang logis. Android Studio tidak memiliki cukup informasi untuk menentukan hal ini selama proses konversi. Meskipun didefaultkan untuk pernyataan non-null, Anda harus menindaklanjuti dan menyesuaikan kode yang dikonversi sesuai kebutuhan.
Informasi selengkapnya
Untuk informasi selengkapnya tentang cara menggunakan kode Java dan Kotlin di project Anda, lihat Memanggil kode Java dari Kotlin.
Untuk informasi selengkapnya tentang menggunakan Kotlin dalam skenario perusahaan, lihat Mengadopsi Kotlin untuk tim besar.
Untuk informasi tentang wrapper Kotlin idiomatis untuk API Android yang sudah ada, lihat Android KTX.