0Pricing
Kotlin Academy · บทเรียน

การใช้ตรรกะทางธุรกิจร่วมกัน

นำกลับมาใช้ซ้ำบน iOS และ Android

การใช้ตรรกะทางธุรกิจร่วมกัน เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงควรใช้ตรรกะทางธุรกิจร่วมกัน

ส่วนติดต่อผู้ใช้แตกต่างกันในแต่ละแพลตฟอร์ม แต่กฎอย่างการตรวจสอบความถูกต้อง การกำหนดราคา และกระแสข้อมูลเหมือนกัน การใช้กฎเหล่านี้ร่วมกันใน commonMain ช่วยลดโค้ดซ้ำและข้อผิดพลาด

แบบจำลองข้อมูลร่วมกัน

กำหนดแบบจำลองโดเมนของคุณเพียงครั้งเดียวในโค้ดร่วมกัน เมื่อใช้ kotlinx.serialization แบบจำลองเหล่านี้จะถูกแปลงเป็นข้อมูลอนุกรมเหมือนกันบนทั้งสองแพลตฟอร์ม

import kotlinx.serialization.Serializable

@Serializable
data class Product(val id: Int, val name: String, val price: Double)

กรณีใช้งานร่วมกัน

กฎทางธุรกิจล้วนจะอยู่ในโค้ดร่วมกันและไม่ต้องใช้ส่วนติดต่อการเขียนโปรแกรมของแพลตฟอร์ม

class CartTotal {
    fun total(items: List<Product>): Double =
        items.sumOf { it.price }
}

การสื่อสารเครือข่ายร่วมกันด้วยเคเทอร์

ไคลเอ็นต์ เคเทอร์ รองรับหลายแพลตฟอร์ม คุณเขียนชั้นส่วนติดต่อการเขียนโปรแกรมเพียงครั้งเดียว แล้วแต่ละแพลตฟอร์มจะจัดเตรียมกลไกการสื่อสารผ่านเว็บ

import io.ktor.client.HttpClient

class Api(private val client: HttpClient) {
    // suspend fun products(): List<Product> = client.get(...)
}

โครูทีนร่วมกัน

โครูทีนทำงานในโค้ดร่วมกันได้ ดังนั้นที่เก็บข้อมูลแบบไม่พร้อมกันก็ใช้ร่วมกันได้เช่นกัน ฟังก์ชันแบบพักการทำงานจะเปิดให้ทั้งสองแพลตฟอร์มใช้งาน

class Repository(private val api: Api) {
    suspend fun load(): List<Product> = api.products()
}

รูปแบบ Repository

รูปแบบทั่วไปคือ Repository ประสานงานระหว่างเครือข่ายกับแคช และเปิดเผยเมธอดที่สะอาด ทั้งสองแอปเรียกใช้ที่เก็บข้อมูลเดียวกัน

ViewModels ที่ใช้ร่วมกัน

ด้วยไลบรารีอย่าง ดีคอมโพส หรือ ViewModel ที่ใช้ร่วมกัน ตรรกะการนำเสนอและสถานะก็สามารถใช้ร่วมกันได้ เหลือเพียงการแสดงผลที่เป็นเนทีฟ

การเปิดเผยสถานะเป็นกระแสข้อมูล

เปิดเผยสถานะด้วย StateFlow เพื่อให้แอนดรอยด์รวบรวมสถานะได้โดยตรง และ iOS สังเกตสถานะผ่านตัวห่อหุ้ม

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
}

ฟังก์ชันแบบพักการทำงานและ iOS

ฟังก์ชันแบบพักการทำงานของคอตลินจะเปิดให้สวิฟต์ใช้เป็นเมธอดที่มีตัวจัดการเมื่อเสร็จสิ้นหรือเมธอดแบบไม่พร้อมกัน iOS เรียกใช้ฟังก์ชันเหล่านี้ด้วย async/await ของสวิฟต์

// Swift
// let products = try await repository.load()

ไม่นำส่วนติดต่อผู้ใช้ไว้ในโค้ดร่วมกัน

ควรหลีกเลี่ยงการใช้ส่วนติดต่อผู้ใช้ร่วมกัน การใช้ตรรกะร่วมกันแต่แสดงผลแบบเนทีฟจะมอบประสบการณ์ผู้ใช้ที่ดีที่สุด พร้อมทั้งลดกฎที่ซ้ำกัน

ตัวอย่างตรรกะที่เรียกใช้ได้

กรณีใช้งานร่วมกันเป็นคอตลินล้วน ในที่นี้จะทำงานแบบอิสระเพื่อคำนวณยอดรวมตะกร้า

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

ตรวจสอบความเข้าใจ

ในแอป KMM ที่มีโครงสร้างดี สิ่งใดเหมาะสมที่สุดสำหรับการใช้ร่วมกัน และสิ่งใดควรเป็นเนทีฟ

ทบทวน

คุณสามารถใช้ชั้นตรรกะร่วมกันได้:

  • แบบจำลอง กรณีใช้งาน ที่เก็บข้อมูล การสื่อสารเครือข่ายด้วยเคเทอร์ และโครูทีน
  • เปิดเผยสถานะผ่าน StateFlow ส่วน iOS ใช้ async/await กับฟังก์ชันแบบพักการทำงาน
  • ให้ส่วนติดต่อผู้ใช้และการนำทางเป็นเนทีฟ

ถัดไป: การเข้าถึงส่วนติดต่อการเขียนโปรแกรมของแพลตฟอร์ม

คำถามที่พบบ่อย

บทเรียน “การใช้ตรรกะทางธุรกิจร่วมกัน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การใช้ตรรกะทางธุรกิจร่วมกัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การใช้ตรรกะทางธุรกิจร่วมกัน”

นำกลับมาใช้ซ้ำบน iOS และ Android คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การใช้ตรรกะทางธุรกิจร่วมกัน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้างโปรเจกต์ KMM
  2. expect และ actual
  3. การใช้ตรรกะทางธุรกิจร่วมกัน
  4. API ของแพลตฟอร์ม
← กลับไปที่ Kotlin Academy