โครงสร้างโปรเจกต์ KMM
โค้ดที่ใช้ร่วมกันและโค้ดเฉพาะแพลตฟอร์ม
โครงสร้างโปรเจกต์ KMM เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
KMM คืออะไร
คอตลิน มัลติแพลตฟอร์มสำหรับอุปกรณ์เคลื่อนที่ (KMM) ช่วยให้คุณใช้โค้ดร่วมกันระหว่าง iOS และแอนดรอยด์ได้ โดยยังคงใช้ส่วนติดต่อผู้ใช้แบบเนทีฟ คุณเขียนตรรกะทางธุรกิจเพียงครั้งเดียวด้วยคอตลิน
โมดูลที่ใช้ร่วมกัน
โครงการ KMM มี โมดูลที่ใช้ร่วมกันเป็นศูนย์กลาง โมดูลนี้คอมไพล์เป็นไลบรารี JVM สำหรับแอนดรอยด์ และเป็นเฟรมเวิร์กเนทีฟสำหรับ iOS
- แอนดรอยด์ใช้โมดูลนี้เป็นการพึ่งพาทั่วไป
- iOS นำเข้าโมดูลนี้เป็นเฟรมเวิร์กอ็อบเจกทีฟ-ซี/สวิฟต์
ชุดซอร์สโค้ด
โมดูลที่ใช้ร่วมกันแบ่งออกเป็น ชุดซอร์สโค้ด:
commonMain— โค้ดที่ใช้ร่วมกันและไม่ขึ้นกับแพลตฟอร์มandroidMain— โค้ดเฉพาะแอนดรอยด์iosMain— โค้ดเฉพาะ iOS
commonMain
commonMain ใช้ได้เฉพาะไลบรารีมาตรฐานของคอตลินและไลบรารีหลายแพลตฟอร์มเท่านั้น และต้องไม่อ้างอิงส่วนติดต่อการเขียนโปรแกรมของแอนดรอยด์หรือ iOS โดยตรง
// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
fun greet(): String = "Hello, KMM!"
}การกำหนดค่าเป้าหมาย
build.gradle.kts ของโมดูลที่ใช้ร่วมกันจะประกาศแพลตฟอร์มที่จะสร้างด้วยปลั๊กอินหลายแพลตฟอร์ม
kotlin {
androidTarget()
iosX64()
iosArm64()
iosSimulatorArm64()
}เฟรมเวิร์ก iOS
เป้าหมาย iOS จะถูกรวมเป็น เฟรมเวิร์ก เดียวที่เอกซ์โค้ดนำเข้า
kotlin {
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework {
baseName = "Shared"
}
}
}การพึ่งพาร่วมกัน
ไลบรารีหลายแพลตฟอร์ม เช่น โครูทีน การทำซีเรียลไลซ์ และเคเทอร์ จะอยู่ใน commonMain เพื่อให้ทุกเป้าหมายใช้ร่วมกัน
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
}
}
}โมดูลแอปแอนดรอยด์
โมดูลแอปแอนดรอยด์พึ่งพา shared เช่นเดียวกับโมดูล Gradle อื่น ๆ และสร้างส่วนติดต่อผู้ใช้แอนดรอยด์ด้วยเจ็ตแพ็ก คอมโพสหรือมุมมอง
// androidApp/build.gradle.kts
dependencies {
implementation(project(":shared"))
}แอป iOS
แอป iOS เป็นโครงการเอกซ์โค้ดมาตรฐาน โดยลิงก์กับเฟรมเวิร์ก Shared ที่สร้างขึ้น และเรียกใช้คลาสคอตลินจากสวิฟต์
// Swift
// import Shared
// let text = Greeting().greet()สิ่งที่ควรใช้ร่วมกัน
โค้ดที่มักใช้ร่วมกัน ได้แก่ การสื่อสารเครือข่าย แบบจำลองข้อมูล ที่เก็บข้อมูล กรณีใช้งาน และการตรวจสอบความถูกต้อง ควรให้ส่วนติดต่อผู้ใช้ การนำทาง และเซ็นเซอร์ของแพลตฟอร์มเป็นเนทีฟ
คำทักทายแบบทำงานได้ในตัว
ตรรกะที่ใช้ร่วมกันเป็นคอตลินล้วน ต่อไปนี้คือคลาสเดียวกันที่ทำงานแบบอิสระ เพื่อแสดงให้เห็นว่านี่เป็นโค้ดทั่วไป
class Greeting {
fun greet(): String = "Hello, KMM!"
}
fun main() {
println(Greeting().greet())
}ตรวจสอบความเข้าใจ
คุณควรวางโค้ดที่ต้องไม่มีการอ้างอิงส่วนติดต่อการเขียนโปรแกรมของแอนดรอยด์หรือ iOS ไว้ที่ใด
ทบทวน
คุณได้เรียนรู้โครงสร้าง KMM แล้ว:
- โมดูล
sharedที่มีcommonMain,androidMain,iosMain - ประกาศเป้าหมายในปลั๊กอินหลายแพลตฟอร์ม และ iOS จะได้รับเฟรมเวิร์ก
- แอนดรอยด์พึ่งพาผ่าน
project(":shared")ส่วน iOS นำเข้าเฟรมเวิร์ก
ถัดไป: expect และ actual
คำถามที่พบบ่อย
บทเรียน “โครงสร้างโปรเจกต์ KMM” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โครงสร้างโปรเจกต์ KMM” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โครงสร้างโปรเจกต์ KMM”
โค้ดที่ใช้ร่วมกันและโค้ดเฉพาะแพลตฟอร์ม คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “โครงสร้างโปรเจกต์ KMM” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างโปรเจกต์ KMM
- expect และ actual
- การใช้ตรรกะทางธุรกิจร่วมกัน
- API ของแพลตฟอร์ม