การใช้ตรรกะทางธุรกิจร่วมกัน
นำกลับมาใช้ซ้ำบน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างโปรเจกต์ KMM
- expect และ actual
- การใช้ตรรกะทางธุรกิจร่วมกัน
- API ของแพลตฟอร์ม