Kotlin Multiplatform Academy · Pelajaran

Menangani Intensi & Aksi Pengguna

Dorong perubahan status dari peristiwa UI

Pelajaran 3 dari 413 langkah

Menangani Intensi & Aksi Pengguna adalah pelajaran Kotlin Multiplatform Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

UI Bertanya, Anda yang Memutuskan

Saat pengguna mengetuk tombol, UI tidak seharusnya menjalankan logika sendiri. UI mengirimkan sebuah niat ke ViewModel, yang menentukan tindakan berikutnya.

Beri Nama pada Niat Anda

Modelkan setiap tindakan pengguna yang mungkin sebagai kelas tersegel. Kini setiap niat yang dapat dikirim layar memiliki nama dan tipe, serta tidak mungkin salah eja.

sealed class HomeIntent {
    object Refresh : HomeIntent()
    data class Search(val q: String) : HomeIntent()
}

Satu Titik Masuk

Tampilkan satu fungsi onIntent. Setiap peristiwa layar melewatinya, sehingga Anda memiliki satu tempat yang rapi untuk mengarahkan perilaku.

fun onIntent(intent: HomeIntent) {
    // route to the right handler
}

when Mengarahkan Setiap Tindakan

Di dalam onIntent, sebuah when mencocokkan setiap jenis niat. Karena kelasnya tersegel, kompilator memastikan semua kasus telah ditangani.

when (intent) {
    HomeIntent.Refresh -> refresh()
    is HomeIntent.Search -> search(intent.q)
}

Penangan Memperbarui Status

Setiap penangan melakukan tugasnya, lalu memperbarui StateFlow. UI dirender ulang dari satu status tersebut, sama seperti sebelumnya.

private fun refresh() = scope.launch {
    _state.update { it.copy(isLoading = true) }
}

Mengapa Bukan Metode Publik?

Anda dapat menampilkan banyak metode publik, tetapi satu saluran niat membuat seluruh kontrak layar terlihat dalam satu tipe. Bersih dan mudah diuji.

Bawa Data di Dalam Niat

Niat yang memerlukan masukan menggunakan kelas data. Kueri atau id pengguna ikut dibawa di dalam tindakan itu sendiri.

data class Search(val query: String) : HomeIntent()

Peristiwa Sekali Jalan Itu Berbeda

Status tetap ada, tetapi toast atau navigasi hanya terjadi sekali. Untuk peristiwa sekali jalan, gunakan Channel atau SharedFlow, bukan StateFlow.

Salurkan Peristiwa dengan Channel

Simpan Channel privat untuk peristiwa dan tampilkan sebagai Flow. UI mengumpulkannya untuk menampilkan pesan atau menavigasi tepat satu kali.

private val _events = Channel<String>()
val events = _events.receiveAsFlow()

Kedua Aplikasi, Aliran yang Sama

Android mengirim niat dari Compose, sedangkan iOS mengirimnya dari SwiftUI, tetapi keduanya mencapai onIntent yang sama. Perilaku tidak akan pernah berbeda antarplatform.

Siklus yang Mudah Diprediksi

Niat masuk, status keluar: siklus satu arah ini membuat layar mudah dipahami, di-debug, dan diuji. Tidak ada jalur samping tersembunyi.

Pemeriksaan Singkat

Mari periksa cara peristiwa UI seharusnya mencapai logika bersama.

Rangkuman

Modelkan tindakan sebagai tipe niat tersegel, arahkan melalui satu onIntent, lalu perbarui status dari sana. Gunakan Channel untuk peristiwa sekali jalan. 🚀

Gratis untuk memulai

Belajar Kotlin dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menangani Intensi & Aksi Pengguna” gratis?

Ya — teks lengkap “Menangani Intensi & Aksi Pengguna” 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 “Menangani Intensi & Aksi Pengguna”?

Dorong perubahan status dari peristiwa UI 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 3 dari 4.

Berapa lama pelajaran “Menangani Intensi & Aksi Pengguna” 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