0Pricing
Kotlin Multiplatform Academy · Pelajaran

Basis ViewModel Lintas Platform

Simpan status dan scope yang dapat digunakan kedua platform

Basis ViewModel Lintas Platform adalah pelajaran Kotlin Multiplatform Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Multiplatform Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Multiplatform Academy mencakup 4 pelajaran total.

Mengapa Membagikan ViewModel?

Sebuah ViewModel menyimpan status dan logika layar. Dalam KMP, Anda menulisnya sekali di kode bersama agar kedua aplikasi tetap sepenuhnya selaras. 🎉

Logika, Bukan Piksel

ViewModel bersama menentukan apa yang ditampilkan layar. Antarmuka pengguna asli menentukan cara menggambarnya. Pemisahan inilah inti KMP.

Mulai dari Kelas Biasa

Pada dasarnya, ViewModel hanyalah kelas Kotlin biasa yang berada di commonMain. Tidak ada keajaiban dan Anda tidak memerlukan kerangka kerja untuk memulainya.

class CounterViewModel {
    var count = 0
}

Membutuhkan Cakupan

Pekerjaan asinkron memerlukan CoroutineScope. Setiap ViewModel menyimpan satu cakupan agar dapat meluncurkan coroutine dan membatalkannya nanti dengan rapi.

val scope = CoroutineScope(
    SupervisorJob() + Dispatchers.Main
)

SupervisorJob Menjaga Coroutine Bersaudara Tetap Berjalan

Menggunakan SupervisorJob berarti satu coroutine yang gagal tidak akan membatalkan coroutine lain dalam cakupan yang sama. Kegagalan tetap terisolasi.

Kelas Dasar yang Dapat Digunakan Kembali

Letakkan cakupan bersama di dalam kelas dasar terbuka agar ViewModel setiap layar mewarisi pengelolaan siklus hidup yang sama tanpa usaha tambahan.

open class BaseViewModel {
    protected val scope =
        CoroutineScope(SupervisorJob() + Dispatchers.Main)
}

Selalu Sediakan Pembersihan

Tambahkan metode hapus() yang membatalkan cakupan. Saat layar ditutup, platform memanggilnya agar tidak ada pekerjaan yang bocor.

open fun clear() {
    scope.cancel()
}

Perluas Kelas Dasar

Sekarang layar nyata cukup memperluas kelas dasar tersebut. Layar itu mendapatkan cakupan siap pakai dan penghentian yang bersih tanpa mengulang kode pendukung.

class HomeViewModel : BaseViewModel() {
    // screen logic here
}

androidx Memiliki ViewModel Sendiri

KMP kini menyediakan androidx.lifecycle.ViewModel multiplatform. Komponen ini menyediakan viewModelScope yang dikelola pada setiap target.

viewModelScope Secara Otomatis

Perluas ViewModel tersebut dan Anda mendapatkan viewModelScope bawaan yang dibatalkan secara otomatis saat ViewModel dibersihkan.

class HomeViewModel : ViewModel() {
    fun load() = viewModelScope.launch { }
}

Satu Kelas, Dua Platform

Basis apa pun yang Anda pilih, ViewModel bersama yang sama menggerakkan Android dan iOS. Tulis perilakunya sekali dan percayakan pada semua tempat.

Pemeriksaan Singkat

Mari pastikan alasan ViewModel membawa sebuah cakupan.

Rangkuman

ViewModel bersama adalah kelas Kotlin biasa dengan CoroutineScope dan metode hapus() untuk membatalkannya. Bangun sekali dan gunakan kembali di kedua aplikasi. 🚀

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Basis ViewModel Lintas Platform” gratis?

Ya — teks lengkap “Basis ViewModel Lintas Platform” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Multiplatform Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Multiplatform Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Basis ViewModel Lintas Platform”?

Simpan status dan scope yang dapat digunakan kedua platform Kamu berlatih Kotlin Multiplatform 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 Multiplatform Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin Multiplatform 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 1 dari 4.

Berapa lama pelajaran “Basis ViewModel Lintas 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 Multiplatform Academy ini?

Ya. Setiap pelajaran Kotlin Multiplatform 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. Basis ViewModel Lintas Platform
  2. Membuka Status UI sebagai StateFlow
  3. Menangani Intensi & Aksi Pengguna
  4. Menghubungkan ViewModel ke Setiap UI
← Kembali ke Kotlin Multiplatform Academy