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,以及透過更好的工具幫助你打磨和審查真實應用的機會。