Berbagi Logika Bisnis
Gunakan kembali di iOS dan Android
Berbagi Logika Bisnis adalah pelajaran Kotlin 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 Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.
Mengapa Berbagi Logika Bisnis?
Antarmuka pengguna berbeda di setiap platform, tetapi aturan seperti validasi, penetapan harga, dan aliran data sama. Berbagi aturan tersebut di commonMain menghilangkan duplikasi dan bug.
Model Data Bersama
Definisikan model domain Anda sekali dalam kode umum. Dengan kotlinx.serialization, model tersebut juga diserialisasikan secara identik di kedua platform.
import kotlinx.serialization.Serializable
@Serializable
data class Product(val id: Int, val name: String, val price: Double)Kasus Penggunaan Bersama
Aturan bisnis murni berada dalam kode umum dan tidak memerlukan API platform.
class CartTotal {
fun total(items: List<Product>): Double =
items.sumOf { it.price }
}Komunikasi Jaringan Bersama dengan Ktor
Klien Ktor bersifat multiplatform. Anda menulis lapisan API sekali; setiap platform menyediakan mesin HTTP.
import io.ktor.client.HttpClient
class Api(private val client: HttpClient) {
// suspend fun products(): List<Product> = client.get(...)
}Coroutines Bersama
Coroutines berfungsi dalam kode umum, sehingga repositori asinkron juga dapat dibagikan. Fungsi suspend tersedia untuk kedua platform.
class Repository(private val api: Api) {
suspend fun load(): List<Product> = api.products()
}Pola Repositori
Pola yang umum: Repository mengoordinasikan jaringan dan cache serta menyediakan metode yang bersih. Kedua aplikasi memanggil repositori yang sama.
ViewModel Bersama
Dengan pustaka seperti Decompose atau ViewModel bersama, logika presentasi dan status juga dapat dibagikan sehingga hanya perenderan yang tetap native.
Mengekspos Status sebagai Flow
Ekspos status dengan StateFlow agar Android dapat mengumpulkannya secara langsung dan iOS dapat mengamatinya melalui pembungkus.
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
class ProductState {
private val _items = MutableStateFlow<List<Product>>(emptyList())
val items: StateFlow<List<Product>> = _items
}Fungsi Suspend dan iOS
Fungsi suspend Kotlin diekspos ke Swift sebagai metode dengan penangan penyelesaian atau metode asinkron. iOS memanggilnya dengan async/await milik Swift.
// Swift
// let products = try await repository.load()Jauhkan Antarmuka Pengguna dari Kode Bersama
Hindari berbagi antarmuka pengguna. Berbagi logika tetapi merendernya secara native memberikan pengalaman pengguna terbaik sekaligus menghilangkan duplikasi aturan.
Contoh Logika yang Dapat Dijalankan
Kasus penggunaan bersama ditulis dalam Kotlin biasa. Di sini, kasus tersebut dijalankan secara mandiri untuk menghitung total keranjang.
data class Product(val name: String, val price: Double)
fun total(items: List<Product>): Double = items.sumOf { it.price }
fun main() {
val cart = listOf(Product("Pen", 2.5), Product("Book", 12.0))
println("Total: " + total(cart))
}Pemeriksaan Singkat
Dalam aplikasi KMM yang terstruktur dengan baik, mana yang paling tepat untuk dibagikan dan mana yang sebaiknya tetap khusus platform?
Ringkasan
Anda dapat berbagi lapisan logika:
- Model, kasus penggunaan, repositori, komunikasi jaringan Ktor, dan coroutines
- Ekspos status melalui
StateFlow; iOS menggunakan async/await untuk fungsi suspend - Pertahankan antarmuka pengguna dan navigasi dalam implementasi native
Berikutnya: mengakses API platform.
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
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Berbagi Logika Bisnis” gratis?
Ya — teks lengkap “Berbagi Logika Bisnis” 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 “Berbagi Logika Bisnis”?
Gunakan kembali di iOS dan Android 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 3 dari 4.
Berapa lama pelajaran “Berbagi Logika Bisnis” 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
- Struktur Proyek KMM
- expect dan actual
- Berbagi Logika Bisnis
- API Platform