native-feel-skill

WindowsmacOSLinux

一個用於設計跨平台桌面應用程式的Agent Skill,使其感覺像原生應用 — 提煉自Raycast 2.0的技術深入探討,並基於對出貨的Raycast Beta.app 二進位檔進行逆向工程。

兩個目標通常互相矛盾:便利的跨平台開發與接近原生的效能。這項技能捕捉了結構性的選擇——八個架構原則、四層架構、WebKit/WebView2 生存指南、75項出貨審核清單——讓應用程式能兩者兼得。

這是什麼

為需要建置以下特性桌面應用程式的架構師、技術主管和工程師提供的參考:

這是四層架構:原生殼層 → 系統WebView(WKWebView/WebView2)→ Node後端 → Rust核心,透過一個統一的型別化IPC schema連接,並為每個執行時期生成客戶端。

這不是什麼

執行checklists/decision-tree.md 來判斷這個架構是否適合你的專案。它已經排除了幾個常見案例——直接說出來比過度調整建議更有用。

理念

這個架構解決的核心矛盾:當便利的跨平台開發與接近原生的效能通常互相矛盾時,桌面應用程式要如何兩者兼得? 八個原則說明了結構性的調整:

  1. 將接縫放在渲染層 — 在WebView之上共享,在之下分歧;這是唯一能同時兼顧開發體驗與原生感的層級。

  2. 一個schema,多種語言 — 多語言成本只在宣告時支付一次,不在呼叫端支付。

  3. 順應平台,而非與之競爭 — 作業系統繪製的模糊、滾動、材質和深色模式比你自己做的更好。

  4. 效能是感知的屬性 — 使用者感受到的,而不是Activity Monitor報告的。

  5. 短迭代循環就是產品 — 200毫秒的熱重載 vs 30秒的原生重建,這是一個150倍的複合優勢。

  6. 有意識地跨越邊界 — IPC有成本;將每次跨越設計為非同步、批次、schema型別。

  7. 身份就是肌肉記憶 — 快捷鍵、排序順序、動詞就是應用程式;其他都是實作細節。

  8. 將基準與邊際分離 — WebView+Node的底層是租來的;只有你的髒頁才值得最佳化。

先閱讀references/01-philosophy.md。其他一切都是推論結果。

關於Agent Skill

Agent Skills 是新興的標準,用於包裝領域知識,讓任何相容的代理(Claude Code、Claude Agent SDK或其他支援Agent Skill的執行環境)都能發現並載入。透過README頂部的提示安裝後,當代理對話涉及到跨平台桌面架構、WebView細節或Raycast風格的應用程式時,該技能會自動啟用——觸發條件在SKILL.md 的前置元資料中宣告。

資料來源

SHARE

分享

分享這個開源專案。

技能