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

โครงสร้างโปรเจกต์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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