將 Kotlin Multiplatform 新增至現有專案

如要在 Android 專案中建立 Kotlin Multiplatform (KMP) 模組,請使用 Kotlin Multiplatform 共用模組範本,該範本適用於 Android Studio Meerkat 和 Android Gradle 外掛程式 8.8.0 以上版本。

模組範本會自動建立新模組,並採用指定 Android 和 iOS 平台的最低設定。KMP 也支援其他目標 (例如電腦和網頁),您稍後可以將這些目標新增至模組。如需完整清單,請參閱「支援平台的穩定性」。如要宣告目標,請參閱多平台 Gradle DSL 參考資料中的「目標」。

設定共用 KMP 模組

如要建立共用 KMP 模組,請按照下列步驟操作:

  1. 依序選取「File」>「New」>「New Module」
  2. 在「Templates」面板中,選取「Kotlin Multiplatform Shared Module」範本:
建立新的 KMP 模組
圖 1. 建立新的 KMP 模組

範本中的欄位如下:

  • Module name:定義 Gradle 模組名稱和 iOS 架構名稱 (日後可變更)
  • Package name:定義這個模組中檔案的套件名稱
    1. 按一下「Finish」,讓 Gradle 與專案同步。系統可能也會提示您將新建立的模組檔案加入來源控制系統。

完成後,Android Studio 的「Project View」會顯示新的共用模組,以及各平台的來源集。

顯示新共用模組的專案檢視畫面
圖 2. 顯示新共用模組的專案檢視畫面

模組精靈不會將新建立的模組新增為任何現有模組的依附元件。接下來,您需要將共用模組連結至現有的 Gradle 模組,方法與其他 Android 依附元件類似:

dependencies {
    ...
    implementation(project(":shared"))
}

啟用後,您就能照常存取程式碼。您可以從 Android 應用程式存取 androidMain 或 commonMain 中的程式碼。

如要進一步瞭解 Kotlin Multiplatform 專案結構,請參閱「Kotlin Multiplatform 專案結構基本概念」

在 iOS 應用程式中設定共用模組

Swift 無法直接使用 Kotlin 模組,必須產生已編譯的二進位架構。

Android Studio 中的新模組範本會設定共用模組,為每個 iOS 架構產生框架。您可以在共用模組的 build.gradle.kts 檔案中找到下列程式碼:

val xcfName = "sharedKit"

iosX64 {
  binaries.framework {
    baseName = xcfName
  }
}

iosArm64 {
  binaries.framework {
    baseName = xcfName
  }
}

iosSimulatorArm64 {
  binaries.framework {
    baseName = xcfName
  }
}

如要瞭解如何定義其他架構類型,請參閱「階層式專案結構」。

如要允許 iOS 專案存取共用程式碼,請新增指令碼階段,在編譯 Swift 來源前產生 Kotlin 架構:

  1. 在 Android Studio 中,對檔案按一下滑鼠右鍵,然後依序選取「Open In」和「Open in Associated Application」。這樣做會在 Xcode 中開啟 iOS 應用程式。
在關聯的應用程式中開啟
圖 3. 在相關聯的應用程式中開啟
  1. 在專案導覽器中按兩下專案名稱,開啟專案設定
Xcode 專案設定對話方塊
圖 4. Xcode 專案設定對話方塊
  1. 將預設的「Run Script」名稱變更為「Compile Kotlin Framework」,以便更清楚地識別這個階段執行的動作。按兩下「Run script」標題即可編輯。
  2. 展開建構階段,然後在「Shell」文字欄位中輸入下列指令碼:
新增執行指令碼建構階段
圖 5. 執行指令碼建構階段
  1. 將「Run Script」階段拖曳至「Compile Sources」階段之前。

    在編譯來源前執行指令碼建構階段
    圖 6. 在編譯來源前執行指令碼建構階段

  2. 按一下 ⌘B 或前往「Product」選單,然後選取「Build」,即可在 Xcode 中建構專案。

建構成功後,您會看到下列圖示。

Xcode 顯示建構成功
圖 7. 建構成功

在 iOS 應用程式中存取共用程式碼

如要確認 iOS 應用程式能成功存取共用模組的程式碼,請按照下列步驟操作:

  1. 在 iOS 專案中,開啟 ContentView.swift 檔案:Sources/View/ContentView.swift
  2. 在檔案頂端新增匯入 sharedKit。
  3. 修改 Text 檢視畫面,在顯示的字串中加入 Platform_iosKt.platform() 資訊,如下所示:

這項更新會檢查應用程式是否能從共用模組呼叫 platform() 函式,該函式在 iOS 平台上執行時應傳回「iOS」。

執行 iOS 應用程式的 Xcode 模擬器
圖 8.Xcode 模擬器執行 iOS 應用程式

其他資源