API Platform
Akses fitur asli
API Platform adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.
Mengakses Fitur Bawaan Platform
Kode bersama terkadang memerlukan fitur perangkat—penyimpanan, pengaturan, jam, dan mesin jaringan. KMM menyediakan beberapa cara untuk mengakses API bawaan platform dengan rapi.
expect/actual untuk Nilai Primitif
Untuk nilai platform yang sederhana, gunakan expect/actual. Kode bersama tetap rapi, sementara setiap platform melengkapi detailnya.
// commonMain
expect fun currentTimeMillis(): Long
// androidMain
actual fun currentTimeMillis(): Long = System.currentTimeMillis()Injeksi Dependensi Kode Platform
Pendekatan yang lebih fleksibel adalah mendefinisikan antarmuka dalam kode bersama, lalu memasukkan implementasi platform dari setiap aplikasi.
// commonMain
interface Storage {
fun save(key: String, value: String)
fun load(key: String): String?
}Implementasi Android
Android mengimplementasikan antarmuka tersebut dengan SharedPreferences dan menyediakannya untuk kode bersama.
// androidMain
import android.content.SharedPreferences
class AndroidStorage(private val prefs: SharedPreferences) : Storage {
override fun save(key: String, value: String) {
prefs.edit().putString(key, value).apply()
}
override fun load(key: String): String? = prefs.getString(key, null)
}Implementasi iOS
iOS mengimplementasikan antarmuka yang sama dengan NSUserDefaults dari kerangka kerja Foundation.
// iosMain
import platform.Foundation.NSUserDefaults
class IosStorage : Storage {
private val defaults = NSUserDefaults.standardUserDefaults
override fun save(key: String, value: String) = defaults.setObject(value, key)
override fun load(key: String): String? = defaults.stringForKey(key)
}Memanggil API Bawaan iOS
Dari iosMain, Anda dapat memanggil kerangka kerja Apple secara langsung karena Kotlin/Native membuat pengikatan interoperabilitas untuknya.
import platform.UIKit.UIDevice
fun deviceModel(): String = UIDevice.currentDevice.modelMemanggil API Android
androidMain menyediakan Android SDK secara lengkap karena dikompilasi terhadap platform Android.
import android.os.Build
fun deviceModel(): String = Build.MODELPustaka Multiplatform Siap Pakai
Sering kali Anda tidak memerlukan interoperabilitas khusus. Pustaka yang tersedia sudah membungkus fitur-fitur umum:
- multiplatform-settings — penyimpanan kunci-nilai
- Ktor — jaringan
- SQLDelight — basis data lokal
Menyediakan Implementasi
Masukkan implementasi platform saat aplikasi dimulai, biasanya melalui kerangka kerja DI seperti Koin, agar kode bersama menerima implementasi yang tepat.
// Android: provide AndroidStorage(prefs)
// iOS: provide IosStorage()
// Shared Repository(storage) uses whichever was injectedMemilih Pendekatan
Panduan:
- Nilai kecil →
expect/actual - Perilaku dengan beberapa metode → antarmuka + injeksi
- Kebutuhan umum → gunakan pustaka multiplatform yang sudah tersedia
Demo Abstraksi yang Dapat Dijalankan
Gagasan antarmuka ini menggunakan Kotlin biasa. Di sini, implementasi dalam memori digunakan sebagai pengganti penyimpanan platform.
interface Storage {
fun save(key: String, value: String)
fun load(key: String): String?
}
class MemoryStorage : Storage {
private val map = mutableMapOf<String, String>()
override fun save(key: String, value: String) { map[key] = value }
override fun load(key: String): String? = map[key]
}
fun main() {
val s: Storage = MemoryStorage()
s.save("name", "Ada")
println(s.load("name"))
}Pemeriksaan Singkat
Anda memerlukan fitur penyimpanan dengan beberapa metode, yang diimplementasikan secara berbeda di setiap platform dan mudah diuji. Pendekatan apa yang disarankan?
Ringkasan
Anda dapat mengakses fitur bawaan platform dengan rapi:
expect/actualuntuk nilai primitif- Antarmuka bersama + implementasi platform yang dimasukkan untuk perilaku
- Interoperabilitas langsung dalam
androidMain/iosMain - Gunakan kembali pustaka multiplatform jika memungkinkan
Dengan ini, kursus Dasar-Dasar KMM selesai.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “API Platform” gratis?
Ya — teks lengkap “API Platform” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “API Platform”?
Akses fitur asli Kamu berlatih Kotlin Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Kotlin Academy?
Tidak diperlukan pengalaman sebelumnya. Kotlin Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “API Platform” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Academy ini?
Ya. Setiap pelajaran Kotlin Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.