Slint:UI“氛围编码”的理想语言?
Slint是基于Rust的UI工具包,通过LSP实时反馈、热重载和新推出的MCP协议,让AI能够直接查看和操作运行时界面,从而加速UI开发。支持头模式在CI环境中运行,并兼容Rust、C++、Python和Node等多语言。
让“氛围编码”更顺畅
最近,一篇关于Rust是理想氛围编码语言的文章引起了我的思考。作为同时担任UX设计师和开发者的我,通常通过构建真实原型来验证设计——但这个过程很慢,五个想法往往只变成一个,最多两个原型。
AI改变了这一切,它将实验成本降低到几乎“免费”,让我能够尝试更多想法并更快学习。Slint是否会成为UI氛围编码的理想语言?它能避免应用程序不可避免的“草率化”吗?我们能否用AI加速Slint开发流程?
基于LSP构建
当AI生成Slint代码时,我们的LSP提供实时反馈,包括语法错误、绑定循环检测和代码检查。热重载省去了编译步骤,AI可以边生成边修复错误。
AI技能
仓库中有一个专门的“AI编码助手”文档页面,用于在Claude Code、Codex和Cursor中安装Slint技能。安装后,编码助手能充分利用Slint。
引入Slint MCP
AI的视觉推理能力有限。传统方法扫描所有UI文件并猜测运行时界面,这既慢又易错。新的Slint MCP无需外部服务,它被编译到你的应用中,让AI能够查看内部状态。虽然也可以截屏,但处理图像缓慢且消耗大量token。相反,AI直接访问真实的布局树,不再需要猜测UI外观,它能查看运行时的当前状态并响应问题。
让AI与真实应用交互
MCP可以列出窗口、检查窗口属性、获取/查询元素树、检查可访问性属性,还能执行点击、拖拽和键盘事件。这使得你可以设定目标,让AI自行验证进度。如果存在需要导航的视图和对话框,AI可以自己驱动UI,找到正确页面并截取结果。看到工作进展截图出现在聊天窗口中时,效果非常神奇。
无头MCP
Agent通常在CI、容器或沙箱中运行。你可以通过SLINT_BACKEND=headless运行MCP,包括截屏,无需显示服务器。这样AI仍然可以“看到”生成的内容并进行验证。
与热重载的配合
这是经典的UI开发循环。看似简单,但Rust的编译步骤通常需要几分钟。你知道吗,即使是Slint Rust应用也能热重载其UI?我们引入了一种方式,让你的Rust应用以解释器模式运行UI,并热重载变化的Slint文件。只要Rust代码或Slint UI与Rust之间的桥接API没有变化,就无需重新编译Rust。
当AI忙于更新代码时,这个过程变得非常快。现在,这个循环与MCP交互,让Agent能够“看到”实时UI,更快地修复和验证问题。
不止Rust
要开始使用,请查阅文档。Slint技能将确保你为所有支持的语言(C++、Python和Node.js)设置好环境。如果你有Figma设计,使用Figma MCP并让AI用Slint实现设计效果很好。你甚至可以将截图拖入Claude或Codex桌面应用中测试。
这只是第一步。同样的循环还有进一步降低token使用、更可预测地生成UI,以及通过更好的工具帮助你打磨和审查真实应用的机会。