Kotlin Multiplatform 快速入門
透過本教學,您可以讓一個簡單的 Kotlin Multiplatform 應用程式快速啟動並運行。
設定環境
Kotlin Multiplatform (KMP) 專案需要特定的環境,但大多數要求會透過 IDE 中的預檢(preflight checks)清楚說明。
從 IDE 和必要的插件開始:
選擇並安裝 IDE。 IntelliJ IDEA 和 Android Studio 都支援 Kotlin Multiplatform,因此您可以使用您偏好的 IDE。
JetBrains Toolbox App 是安裝 IDE 的推薦工具。 它允許您管理多個產品或版本,包括 搶先體驗計畫 (EAP) 和每夜發佈 (Nightly releases)。
對於獨立安裝,請下載 IntelliJ IDEA 或 Android Studio 的安裝程式。
Kotlin Multiplatform 所需的插件需要 IntelliJ IDEA 2025.1.1.1 或 Android Studio Narwhal 2025.1.1。
安裝 Kotlin Multiplatform IDE 插件 (不要與 Kotlin Multiplatform Gradle 插件混淆)。
適用於 Windows 或 Linux 上 IDE 的 Kotlin Multiplatform 插件尚未提供。 但在這些平台上它也不是嚴格必要的: 您仍然可以依照本教學生成並運行 KMP 專案。
為 IntelliJ IDEA 安裝 Kotlin Multiplatform IDE 插件也會安裝所有必要的依賴項(如果您尚未安裝它們)(Android Studio 已綁定所有必要的插件)。
如果您正在 Windows 或 Linux 上使用 IntelliJ IDEA,請確保手動安裝所有必要的插件:
- Android
- Android Design Tools
- Jetpack Compose
- Native Debugging Support
- Compose Multiplatform for Desktop IDE Support (僅在您沒有 Kotlin Multiplatform 插件時才需要)。
如果您尚未設定
ANDROID_HOME
環境變數,請配置您的系統以識別它:將以下命令新增到您的
.profile
或.zprofile
中:shellexport ANDROID_HOME=~/Library/Android/sdk
對於 PowerShell,您可以使用以下命令新增一個持久環境變數(詳情請參閱 PowerShell 文件):
shell[Environment]::SetEnvironmentVariable('ANDROID_HOME', '<path to the SDK>', 'Machine')
對於 CMD,請使用
setx
命令:shellsetx ANDROID_HOME "<path to the SDK>"
若要建立 iOS 應用程式,您需要一台安裝了 Xcode 的 macOS 主機。 您的 IDE 將在底層運行 Xcode 以建構 iOS 框架。
在開始使用 KMP 專案之前,請確保至少啟動一次 Xcode,以便它完成初始設定。
每次 Xcode 更新時,您都需要手動啟動它並下載更新的工具。 Kotlin Multiplatform IDE 插件會執行預檢,當 Xcode 狀態不正確而無法工作時會提醒您。
建立專案
在 macOS 上
在 macOS 上,Kotlin Multiplatform 插件在 IDE 內部提供了一個專案生成精靈:
使用 IDE 精靈建立新的 KMP 專案:
- 在主選單中選擇 檔案 | 新增 | 專案。
- 在左側列表中選擇 Kotlin Multiplatform。
- 根據需要設定專案的名稱、位置和其他基本屬性。
- 我們建議選擇一個版本的 JetBrains Runtime (JBR) 作為您專案的 JDK,因為它提供了重要的修復,特別是為了提高桌面 KMP 應用程式的相容性。 每個 IntelliJ IDEA 發行版中都包含相關版本的 JBR,因此無需額外設定。
- 選擇您希望作為專案一部分的平台:
- 所有目標平台都可以設定為從一開始就使用 Compose Multiplatform 共用 UI 代碼(不包含 UI 代碼的伺服器模組除外)。
- 對於 iOS,您可以選擇兩種實作方式之一:
- 共用 UI 代碼,使用 Compose Multiplatform,
- 完全原生的 UI,使用 SwiftUI 製作並與具有共用邏輯的 Kotlin 模組連接。
- 桌面目標包含 Compose Hot Reload 功能的 Beta 版本,它允許您在更改相應代碼後立即看到 UI 變更。 即使您不打算製作桌面應用程式,您可能也會想使用桌面版本來加速編寫 UI 代碼。
選擇完平台後,點擊 建立 (Create) 按鈕,等待 IDE 生成並匯入專案。
Kotlin Multiplatform IDE 插件嚴重依賴 K2 功能,沒有它將無法如描述般運作。 因此,在開始之前,請確保 K2 模式已啟用: 設定 | 語言與框架 | Kotlin | 啟用 K2 模式。
使用 IDE 精靈建立新的 KMP 專案:
在主選單中選擇 檔案 | 新增 | 新增專案。
在預設的 手機和平板 範本類別中選擇 Kotlin Multiplatform。
根據需要設定專案的名稱、位置和其他基本屬性,然後點擊 下一步 (Next)。
選擇您希望作為專案一部分的平台:
- 所有目標平台都可以設定為從一開始就使用 Compose Multiplatform 共用 UI 代碼(不包含 UI 代碼的伺服器模組除外)。
- 對於 iOS,您可以選擇兩種實作方式之一:
- 共用 UI 代碼,使用 Compose Multiplatform,
- 完全原生的 UI,使用 SwiftUI 製作並與具有共用邏輯的 Kotlin 模組連接。
- 桌面目標包含 Compose Hot Reload 功能的 Beta 版本,它允許您在更改相應代碼後立即看到 UI 變更。 即使您不打算製作桌面應用程式,您可能也會想使用桌面版本來加速編寫 UI 代碼。
當專案生成後,我們建議選擇一個版本的 JetBrains Runtime (JBR) 作為您專案的 JDK,因為它提供了重要的修復,特別是為了提高桌面 KMP 應用程式的相容性。 每個 IntelliJ IDEA 發行版中都包含相關版本的 JBR,因此無需額外設定。
選擇完平台後,點擊 完成 (Finish) 按鈕,等待 IDE 生成並匯入專案。
在 Windows 或 Linux 上
如果您正在使用 Windows 或 Linux:
- 使用 web KMP 精靈 生成一個專案。
- 解壓縮歸檔檔並在您的 IDE 中打開生成的資料夾。
- 等待匯入完成,然後前往 未定義 部分了解如何建構和運行應用程式。
諮詢預檢
您可以透過打開 專案環境預檢 (Project Environment Preflight Checks) 工具視窗來確保專案設定沒有環境問題:點擊右側邊欄或底部工具欄上的預檢圖示
在此工具視窗中,您可以查看與這些檢查相關的訊息、重新運行它們或更改其設定。
預檢命令也可在 隨處搜尋 (Search Everywhere) 對話框中找到。 按下雙擊 並搜尋包含「preflight」一詞的命令:
運行範例應用程式
IDE 精靈建立的專案包括為 iOS、Android、桌面和 Web 應用程式生成的運行配置,以及運行伺服器應用程式的 Gradle 任務。 在 Windows 和 Linux 上,請參閱下方每個平台的 Gradle 命令。
若要運行 Android 應用程式,請啟動 composeApp 運行配置:
要在 Windows 或 Linux 上運行 Android 應用程式,請建立一個 Android 應用程式 (Android App) 運行配置,並選擇模組 [專案名稱].composeApp。
預設情況下,它會在第一個可用的虛擬裝置上運行:
您需要 macOS 主機才能建構 iOS 應用程式。
如果您為專案選擇了 iOS 目標並設定了安裝 Xcode 的 macOS 機器, 您可以選擇 iosApp 運行配置並選擇一個模擬裝置:
當您運行 iOS 應用程式時,它會在底層使用 Xcode 建構,並在 iOS 模擬器中啟動。 首次建構會收集編譯所需的原生依賴項,並為後續運行預熱建構:
桌面應用程式的預設運行配置建立為 composeApp [desktop]:
要在 Windows 或 Linux 上運行桌面應用程式,請建立一個 Gradle 運行配置,指向 [應用程式名稱]:composeApp Gradle 專案,並使用以下命令:
desktopRun -DmainClass=com.example.myapplication.MainKt --quiet
透過此配置,您可以運行 JVM 桌面應用程式:
Web 應用程式的預設運行配置建立為 composeApp [wasmJs]:
要在 Windows 或 Linux 上運行 Web 應用程式,請建立一個 Gradle 運行配置,指向 [應用程式名稱]:composeApp Gradle 專案,並使用以下命令:
wasmJsBrowserDevelopmentRun
當您運行此配置時,IDE 會建構 Kotlin/Wasm 應用程式並在預設瀏覽器中打開它:
疑難排解
Java 和 JDK
Java 的常見問題:
- 某些工具可能找不到要運行的 Java 版本或使用了錯誤的版本。 為了解決這個問題:
將
JAVA_HOME
環境變數設定為安裝了適當 JDK 的目錄。我們建議使用 JetBrains Runtime, 這是一個支援類別重新定義的 OpenJDK 分支。
將
JAVA_HOME
內的bin
資料夾路徑附加到PATH
變數中, 以便 JDK 中包含的工具可在終端機中使用。
- 如果您在 Android Studio 中遇到 Gradle JDK 的問題,請確保其配置正確: 選擇 設定 | 建構、執行、部署 | 建構工具 | Gradle。
Android 工具
與 JDK 相同,如果您在啟動 adb
等 Android 工具時遇到問題, 請確保將 ANDROID_HOME/tools
、ANDROID_HOME/tools/bin
和 ANDROID_HOME/platform-tools
的路徑新增到您的 PATH
環境變數中。
Xcode
如果您的 iOS 運行配置報告沒有可運行的虛擬裝置,請確保啟動 Xcode 並查看 iOS 模擬器是否有任何更新。
獲取協助
- Kotlin Slack。獲取 邀請 並加入 #multiplatform 頻道。
- Kotlin Multiplatform 工具問題追蹤器。回報新問題。
接下來
了解更多關於 KMP 專案結構和編寫共用代碼的資訊:
- 一系列關於使用共用 UI 代碼的教學:建立您的 Compose Multiplatform 應用程式
- 一系列關於將共用代碼與原生 UI 結合使用的教學:建立您的 Kotlin Multiplatform 應用程式
- 深入了解 Kotlin Multiplatform 文件:
- 了解 Compose Multiplatform UI 框架、其基礎知識和平台特定功能: Compose Multiplatform 和 Jetpack Compose。
探索已為 KMP 編寫的代碼:
- 我們的 範例 頁面,包含 JetBrains 官方範例以及展示 KMP 功能的精選專案列表。
- GitHub 主題:
- kotlin-multiplatform,使用 Kotlin Multiplatform 實作的專案。
- kotlin-multiplatform-sample, 使用 KMP 編寫的範例專案列表。
- klibs.io – KMP 函式庫搜尋平台,迄今已索引超過 2000 個函式庫, 包括 OkHttp、Ktor、Coil、Koin、SQLDelight 等。