Menyiapkan lingkungan Anda (Multiplatform Kotlin)

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

Menginstal atau mengupdate alat yang diperlukan

  • Instal atau update ke Android Studio 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 menambahkan 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 untuk memilih opsi Jangan bagikan UI agar UI tetap 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 di modul androidApp dan UI aplikasi iOS di iosApp. Setiap kode yang ingin Anda bagikan antar-platform akan ditempatkan di modul shared.

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 untuk memeriksa dependensi yang diperlukan untuk setiap platform.