0Pricing
Kotlin Academy · Pelajaran

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.model

Memanggil API Android

androidMain menyediakan Android SDK secara lengkap karena dikompilasi terhadap platform Android.

import android.os.Build

fun deviceModel(): String = Build.MODEL

Pustaka 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 injected

Memilih 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/actual untuk 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.

Semua pelajaran dalam kursus ini

  1. Struktur Proyek KMM
  2. expect dan actual
  3. Berbagi Logika Bisnis
  4. API Platform
← Kembali ke Kotlin Academy