Menyiapkan lingkungan Anda (Multiplatform Kotlin)

Multiplatform Kotlin (KMP) memungkinkan berbagi kode Kotlin di seluruh platform yang berbeda. Sebelum mulai membangun aplikasi dengan KMP, Anda harus mengatur lingkungan Anda seperti yang dijelaskan dalam dokumen ini. Anda juga dapat merujuk ke Dokumentasi resmi Jetbrain.

Menginstal atau mengupdate alat yang diperlukan

  • Instal Android Studio atau update ke versi stabil terbaru.
  • Mengupdate plugin Kotlin yang dipaketkan dengan Android Studio ke versi terbaru untuk menghindari masalah kompatibilitas.
  • (Opsional) Untuk pengembangan iOS, instal Xcode untuk membuat dan tambahkan kode Swift atau Objective-C sesuai kebutuhan.

Membuat project Multiplatform Kotlin

Anda dapat menggunakan wizard Multiplatform Kotlin dari Jetbrains untuk membuat proyek KMP baru. Pastikan untuk memilih tombol Jangan bagikan UI untuk tetap mempertahankan native UI.

Struktur project

Project KMP mengikuti struktur project yang mirip dengan project Android.

Project KMP berisi modul khusus platform beserta modul bersama. Tambahkan kode khusus platform Anda ke modul yang relevan. Misalnya, tambahkan UI aplikasi Android di modul androidApp dan UI aplikasi iOS di iosApp. Kode apa pun yang ingin Anda bagikan antarplatform akan masuk ke modul bersama.

Modul bersama menggunakan Gradle sebagai sistem build, sama seperti modul lainnya proyek. Anda dapat mendeklarasikan dependensi umum dan spesifik per platform menggunakan set sumber. Misalnya, jika aplikasi Anda menggunakan Ktor untuk jaringan, Anda perlu menambahkan dependensi OkHttp untuk Android dan dependensi darwin untuk iOS. Perhatikan bahwa beberapa library hanya memerlukan dependensi umum dan tidak memerlukan platform dependensi.

sourceSets {
   commonMain.dependencies {
       //put your multiplatform dependencies here
       //...
       implementation(libs.ktor.client.core)
       implementation(libs.ktor.client.content.negotiation)
       implementation(libs.ktor.serialization.kotlinx.json)
       //...
   }
   androidMain.dependencies {
       implementation(libs.ktor.client.okhttp)
   }
   iosMain.dependencies {
       implementation(libs.ktor.client.darwin)
   }
}

Saat Anda menambahkan library baru ke modul bersama aplikasi, pastikan untuk memeriksa dependensi yang diperlukan untuk setiap platform.