Ohhnews

分类导航

$ cd ..
Jetbrains Blog原文

Compose Multiplatform 1.12.0 版本发布

#compose multiplatform#跨平台开发#mcp#ai 助手#桌面窗口管理

Compose Multiplatform 1.12.0 发布!

此版本为 AI 助手带来了新的工具,改进了 Web 资源管理,并对桌面窗口状态提供了更精细的控制。

以下是此版本的亮点:

如需了解完整的更改概览,请查看 Compose Multiplatform 1.12.0 中的新特性GitHub 上的发布说明

开始使用 Compose Multiplatform

Compose Hot Reload 中面向 AI 代理的 MCP 服务器

Compose Hot Reload 现在附带了一个实验性的模型上下文协议(MCP)服务器,可将 AI 编码代理连接到正在运行的应用程序。

通过 MCP 服务器,代理可以触发重新加载、截取屏幕截图、检查语义树、模拟点击和文本输入,并读取应用程序日志。实际上,这意味着代理可以验证其自身编辑的结果。它可以确认重新加载成功,检查渲染后的 UI,捕获运行时异常,并进行迭代——所有这些都无需你描述屏幕上显示的内容。

[LOADING...]

有关可用工具的完整列表以及连接代理的说明,请参阅 Compose Hot Reload 文档

试用 Compose Hot Reload

Web 自动字体回退

Compose Multiplatform Web 现在可以处理应用程序字体未覆盖的字符。当它在渲染过程中遇到未解析的字符时,会按需下载匹配的 Noto 字体子集,并重组受影响的文本。这意味着日语、阿拉伯语、天城文和表情符号无需你为其捆绑字体即可正确渲染。

[LOADING...]

窗口和对话框 v2

此版本在 androidx.compose.ui.window.v2 包中引入了实验性的 WindowStateDialogState v2 API。它让你可以更精细地控制窗口和对话框的定位和大小。你可以:

  • 选择窗口显示在哪个屏幕上。
  • 提供自定义定位和大小逻辑,包括基于内容固有大小的逻辑。
  • 设置窗口的最小和最大尺寸。
  • 相对于其父窗口定位对话框。

v2 API 还明确了窗口状态更改的异步特性:它区分你请求的状态与窗口当前所处的状态。

例如,要使窗口居中并设置固定大小,请使用 WindowPositionProviderWindowSizeProvider

val windowState = rememberWindowState(
    initialBoundsProvider = WindowBoundsProvider(
        positionProvider = WindowPositionProvider.CenteredOnScreen,
        sizeProvider = WindowSizeProvider.Fixed(DpSize(400.dp, 200.dp))
    )
)

使用 v2 API,你还可以使用 WindowSizeProvider.Unconstrained 将窗口初始大小设置为其内容大小,同时仍允许内容在用户放大窗口时通过 fillMaxSize() 扩展到更大尺寸:

WindowBoundsProvider(
    positionProvider = WindowPositionProvider.CenteredOnScreen,
    sizeProvider = WindowSizeProvider.Unconstrained
)

请参阅 窗口和对话框 v2 文档 了解完整详细信息。


更新依赖项,试用新的 API,并告诉我们你对 Compose Multiplatform 1.12.0 的想法。

如需了解本文未涵盖的所有内容,请查看 完整发布说明新特性