Menyiapkan lingkungan Anda (Multiplatform Kotlin)

Multiplatform Kotlin (KMP) memungkinkan berbagi kode Kotlin di berbagai platform. Sebelum mulai membangun aplikasi dengan KMP, Anda harus menyiapkan lingkungan seperti yang dijelaskan dalam dokumen ini. Anda juga dapat membaca dokumentasi resmi Jetbrain.

Instal atau update alat yang diperlukan

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

Membuat project Multiplatform Kotlin

Anda dapat menggunakan wizard Multiplatform Kotlin dari Jetbrains untuk membuat project KMP baru. Pastikan Anda memilih opsi Do not share UI untuk mempertahankan UI native.

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 Anda di modul androidApp dan UI aplikasi iOS Anda di iosApp. Kode apa pun yang ingin Anda bagikan antarplatform masuk dalam modul bersama.

Modul bersama menggunakan Gradle sebagai sistem build seperti project lainnya. Anda dapat mendeklarasikan dependensi umum dan khusus 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 dependensi khusus platform.

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 menambahkan library baru ke modul bersama aplikasi, pastikan Anda memeriksa dependensi yang diperlukan untuk setiap platform.