Kotlin Academy · Pelajaran

Berbagi Logika Bisnis

Gunakan kembali di iOS dan Android

Pelajaran 3 dari 413 langkah

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.

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

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