编程 Compose Multiplatform 1.12.0 发布:MCP 服务器、Web 自动字体回退与桌面窗口 API v2

2026-09-06 18:15:57

Compose Multiplatform 1.12.0 发布:MCP 服务器、Web 自动字体回退与桌面窗口 API v2

JetBrains 官方博客发布文章,由 Elvira Mustafina 撰写,宣布 Compose Multiplatform 1.12.0 正式发布。Compose Multiplatform 是 JetBrains 基于 Google Jetpack Compose 开发的跨平台 UI 框架,支持使用 Kotlin 编写一次代码,在 Android、iOS、桌面(Windows/macOS/Linux)和 Web 上运行。1.12.0 版本带来了多项重要更新,包括面向 AI 助手的新工具、Web 资源管理改进,以及更精细的桌面窗口状态控制。

版本亮点

Compose Multiplatform 1.12.0 的核心更新包括:

  1. MCP 服务器 for AI agents in Compose Hot Reload:通过 Model Context Protocol(MCP)服务器,将 AI 编码 Agent 连接到运行中的应用
  2. Web 自动字体回退(Automatic font fallback for web):Web 平台自动处理应用字体未覆盖的字符
  3. 桌面窗口和对话框 API v2:引入实验性的 v2 版本窗口和对话框 API

MCP 服务器:AI Agent 与运行中应用的连接

什么是 MCP

Model Context Protocol(MCP)是一个开放协议,用于连接 AI 模型与外部工具和数据源。通过 MCP,AI 编码 Agent 可以:

  • 访问外部工具和 API
  • 获取运行时上下文
  • 执行操作并获取反馈
  • 与开发环境无缝集成

MCP 正在成为 AI 编码工具的标准协议,被 Cursor、Claude Code、GitHub Copilot 等主流工具支持。

Compose Hot Reload 的 MCP 服务器

Compose Multiplatform 1.12.0 在 Compose Hot Reload 中内置了实验性的 MCP 服务器,将 AI 编码 Agent 连接到运行中的应用。

通过 MCP 服务器,AI Agent 可以执行以下操作:

1. 触发热重载(Trigger reloads)

AI Agent 可以在修改代码后自动触发热重载:

  • 检测代码变更
  • 触发 Compose Hot Reload
  • 验证重载是否成功
  • 减少人工操作

2. 截图(Take screenshots)

AI Agent 可以获取运行中应用的截图:

  • 查看当前 UI 状态
  • 验证 UI 变更效果
  • 检测布局问题
  • 记录 UI 状态用于分析

3. 检查语义树(Inspect the semantic tree)

AI Agent 可以检查 Compose 的语义树:

  • 查看 UI 组件结构
  • 理解组件层级关系
  • 检查组件属性和状态
  • 定位特定的 UI 元素

4. 模拟点击和文本输入(Simulate clicks and text input)

AI Agent 可以模拟用户交互:

  • 点击特定的 UI 元素
  • 输入文本
  • 触发交互事件
  • 测试用户流程

5. 读取应用日志(Read application logs)

AI Agent 可以读取应用的运行日志:

  • 检测运行时异常
  • 分析错误信息
  • 监控应用状态
  • 诊断问题

实际价值

MCP 服务器的实际价值在于让 AI Agent 能够验证自己的编辑结果:

传统的 AI 编码工作流:

  1. AI Agent 修改代码
  2. 开发者手动运行应用
  3. 开发者查看 UI 效果
  4. 开发者告诉 AI Agent 结果
  5. AI Agent 根据反馈继续修改

使用 MCP 服务器后的工作流:

  1. AI Agent 修改代码
  2. AI Agent 触发热重载
  3. AI Agent 检查渲染的 UI
  4. AI Agent 检测运行时异常
  5. AI Agent 自动迭代修复

这意味着 AI Agent 可以自主完成 UI 开发的闭环,不需要开发者不断描述屏幕上显示的内容。

如何使用

使用 Compose Hot Reload 的 MCP 服务器:

  1. 启用 Compose Hot Reload
  2. 启动应用
  3. 在 AI 编码工具中配置 MCP 连接
  4. AI Agent 自动发现可用工具
  5. AI Agent 使用工具与应用交互

完整的工具列表和连接说明可以在 Compose Hot Reload 文档中找到。

Web 自动字体回退

问题背景

在 Web 平台上,字体处理一直是挑战:

  • 应用通常只打包特定的字体
  • 不同语言需要不同的字体(日语、阿拉伯语、天城文等)
  • Emoji 需要专门的字体
  • 打包所有字体会显著增加应用体积
  • 未覆盖的字符会显示为方框或乱码

传统解决方案:

  • 手动打包所有需要的字体
  • 使用系统字体(但不同系统字体不同)
  • 动态加载字体(但需要手动管理)

自动字体回退机制

Compose Multiplatform 1.12.0 for Web 引入了自动字体回退机制:

当渲染遇到应用字体未覆盖的字符时:

  1. 检测到未解析的字符
  2. 自动下载匹配的 Noto 字体子集
  3. 使用下载的字体重新渲染受影响的文本
  4. 缓存已下载的字体子集,避免重复下载

支持的字符

自动字体回退支持多种字符集:

  • 日语:平假名、片假名、汉字
  • 阿拉伯语:阿拉伯字母及其变体
  • 天城文(Devanagari):印地语、梵语等使用的文字
  • Emoji:各种表情符号
  • 其他 Noto 字体覆盖的字符集

优势

自动字体回退的优势:

  • 无需手动打包字体:减少应用体积
  • 正确渲染所有字符:避免方框和乱码
  • 按需加载:只下载需要的字体子集
  • 自动缓存:提高后续渲染性能
  • 开发者无感知:不需要额外的代码

桌面窗口和对话框 API v2

背景

Compose Multiplatform 桌面平台的窗口管理 API 一直在演进:

  • 早期版本提供基本的窗口创建和管理
  • 随着应用复杂度增加,需要更精细的控制
  • 不同平台(Windows/macOS/Linux)的窗口行为有差异
  • 需要更现代、更一致的 API 设计

API v2 的改进

Compose Multiplatform 1.12.0 引入了实验性的 v2 版本窗口和对话框 API,主要改进包括:

1. 更精细的窗口状态控制

  • 窗口位置和大小的更精确控制
  • 窗口状态(最小化、最大化、全屏)的管理
  • 窗口焦点和激活状态的控制
  • 窗口透明度和模糊效果

2. 更一致的跨平台行为

  • 统一不同平台的窗口 API
  • 减少平台特定的代码
  • 提供一致的默认行为
  • 允许平台特定的扩展

3. 更现代的 API 设计

  • 使用 Kotlin 的现代语言特性
  • 更类型安全的 API
  • 更好的组合性
  • 与 Compose 的状态管理更好集成

4. 对话框改进

  • 更灵活的对话框创建
  • 模态和非模态对话框的统一处理
  • 对话框位置和大小的控制
  • 自定义对话框内容的更好支持

实验性状态

窗口和对话框 API v2 目前是实验性的:

  • API 可能在未来版本中发生变化
  • 需要显式启用实验性 API
  • 鼓励开发者试用并提供反馈
  • 稳定版本将在未来发布

其他改进

性能优化

1.12.0 版本还包含多项性能优化:

  • 更快的组合(Composition)性能
  • 更高效的重组(Recomposition)
  • 减少内存分配
  • 改进的渲染性能
  • 更快的启动时间

兼容性

  • 与 Kotlin 最新版本兼容
  • 与 Jetpack Compose 最新版本对齐
  • 支持 Android、iOS、桌面、Web 全平台
  • 向后兼容现有代码

工具链改进

  • 更好的 IDE 支持
  • 改进的调试体验
  • 更详细的错误信息
  • 更好的 Hot Reload 稳定性

升级指南

版本更新

在项目中升级到 Compose Multiplatform 1.12.0:

// build.gradle.kts
plugins {
    id("org.jetbrains.compose") version "1.12.0"
}

迁移注意事项

  1. 检查依赖兼容性:确保所有依赖与 1.12.0 兼容
  2. 测试现有功能:全面测试应用的所有功能
  3. 尝试新功能:逐步引入 MCP 服务器、自动字体回退等新功能
  4. 关注实验性 API:窗口 API v2 是实验性的,生产环境谨慎使用
  5. 查看迁移指南:参考官方的 What's new 和发布说明

完整更新说明

完整的变更列表可以在以下位置找到:

  • What's new in Compose Multiplatform 1.12.0
  • GitHub 上的发布说明(Release Notes)
  • Compose Multiplatform 官方文档

对开发者的意义

AI 驱动的 UI 开发

MCP 服务器的引入标志着 UI 开发进入 AI 驱动的新阶段:

  • AI Agent 可以自主完成 UI 开发闭环
  • 减少开发者与 AI 之间的反复沟通
  • 提高 UI 开发的效率和质量
  • 降低 UI 开发的门槛

跨平台开发的成熟

Compose Multiplatform 的持续成熟表明:

  • Kotlin 跨平台开发已经生产就绪
  • 一次编写、多平台运行成为现实
  • 跨平台 UI 框架可以达到原生级别的体验
  • JetBrains 在跨平台领域的持续投入

Web 平台的增强

Web 平台的自动字体回退等改进表明:

  • Compose Multiplatform for Web 正在成熟
  • Web 平台的体验正在接近原生
  • 更多的 Web 特定功能正在被支持
  • Web 成为 Compose Multiplatform 的一等平台

总结

Compose Multiplatform 1.12.0 是一个重要的版本更新,带来了 MCP 服务器、Web 自动字体回退和桌面窗口 API v2 三项核心更新。MCP 服务器通过 Model Context Protocol 将 AI 编码 Agent 连接到运行中的应用,让 Agent 能够触发热重载、截图、检查语义树、模拟交互和读取日志,从而自主验证编辑结果,实现 UI 开发的闭环。Web 自动字体回退机制自动处理应用字体未覆盖的字符,按需下载 Noto 字体子集,确保日语、阿拉伯语、天城文和 Emoji 等字符正确渲染,同时避免打包所有字体增加应用体积。桌面窗口 API v2 提供了更精细的窗口状态控制、更一致的跨平台行为和更现代的 API 设计。这些更新表明 Compose Multiplatform 正在 AI 驱动开发、跨平台一致性和平台特定功能等方向持续演进。对于使用 Kotlin 进行跨平台 UI 开发的团队来说,1.12.0 版本值得关注和升级。

来源:https://blog.jetbrains.com/kotlin/2026/08/compose-multiplatform-1-12-0/

推荐文章

程序员茄子在线接单