Compose Hot Reload
Compose Hot Reload 可協助您在處理 Compose Multiplatform 專案時,視覺化並試驗使用者介面 (UI) 的變更。
目前,Compose Hot Reload 僅在您的多平台專案中包含桌面目標時可用。我們正在探索未來新增對其他目標的支援。同時,使用桌面應用程式作為您的沙盒,可讓您快速試驗通用程式碼中的 UI 變更,而不會中斷您的工作流程。
將 Compose Hot Reload 加入您的專案
Compose Hot Reload 可以透過兩種方式新增:
從頭開始
本節將引導您完成在 IntelliJ IDEA 和 Android Studio 中建立包含桌面目標的多平台專案的步驟。當您的專案建立後,Compose Hot Reload 會自動加入。
- 在 快速入門 中,完成 為 Kotlin Multiplatform 開發設定環境 的說明。
- 在 IntelliJ IDEA 中,選取 File | New | Project。
- 在左側面板中,選取 Kotlin Multiplatform。
- 在 New Project 視窗中指定 Name、Group 和 Artifact 欄位。
- 選取 Desktop 目標並點擊 Create。
加入到現有專案
本節將引導您完成將 Compose Hot Reload 加入到現有多平台專案的步驟。這些步驟以 建立具有共享邏輯和 UI 的應用程式 教學課程中的專案作為參考。
若要尋找最新版本的 Compose Hot Reload,請參閱 Releases。
在您的專案中,更新版本目錄。在
gradle/libs.versions.toml
中,新增以下程式碼:kotlincomposeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload"}
若要了解如何使用版本目錄集中管理專案中的依賴項,請參閱我們的 Gradle 最佳實踐。
在父專案的
build.gradle.kts
(ComposeDemo/build.gradle.kts
) 中,將以下程式碼新增到您的plugins {}
區塊:kotlinplugins { alias(libs.plugins.composeHotReload) apply false }
這可防止 Compose Hot Reload 外掛程式在您的每個子專案中多次載入。
在包含您的多平台應用程式的子專案的
build.gradle.kts
(ComposeDemo/composeApp/build.gradle.kts
) 中,將以下程式碼新增到您的plugins {}
區塊:kotlinplugins { alias(libs.plugins.composeHotReload) }
若要使用 Compose Hot Reload 的完整功能,您的專案必須在 JetBrains Runtime (JBR) 上執行,這是一個支援增強類別重定義的 OpenJDK 分支。 Compose Hot Reload 可以為您的專案自動提供相容的 JBR。為此,請將以下 Gradle 外掛程式新增到您的
settings.gradle.kts
檔案:kotlinplugins { id("org.gradle.toolchains.foojay-resolver-convention") version "0.10.0" }
點擊 Sync Gradle Changes 按鈕以同步化 Gradle 檔案:
使用 Compose Hot Reload
在
desktopMain
目錄中,開啟main.kt
檔案並更新main()
函數:kotlinfun main() = application { Window( onCloseRequest = ::exitApplication, alwaysOnTop = true, title = "composedemo", ) { App() } }
透過將
alwaysOnTop
變數設定為true
,生成的桌面應用程式會保持在所有視窗之上,使您更容易編輯程式碼並即時查看變更。在
commonMain
目錄中,開啟App.kt
檔案並更新Button
可組合項:kotlinButton(onClick = { showContent = !showContent }) { Column { Text(Greeting().greet()) } }
現在,按鈕的文字由
greet()
函數控制。在
commonMain
目錄中,開啟Greeting.kt
檔案並更新greet()
函數:kotlinfun greet(): String { return "Hello!" }
在
desktopMain
目錄中,開啟main.kt
檔案並點擊編輯器邊欄中的 Run 圖示。選取 Run 'composeApp [desktop]' with Compose Hot Reload (Alpha)。更新從
greet()
函數返回的字串,然後儲存檔案以查看桌面應用程式自動更新。
恭喜!您已經看到 Compose Hot Reload 的實際運作。現在您可以試驗更改文字、圖像、格式、UI 結構等,而無需在每次更改後重新啟動桌面執行設定。
尋求協助
如果您在使用 Compose Hot Reload 時遇到任何問題,請透過 建立 GitHub 問題 告知我們。