Menangani Intensi & Aksi Pengguna
Dorong perubahan status dari peristiwa UI
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. 🚀
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
- Basis ViewModel Lintas Platform
- Membuka Status UI sebagai StateFlow
- Menangani Intensi & Aksi Pengguna
- Menghubungkan ViewModel ke Setiap UI