
第一部分:痛点与破局
有没有过这种崩溃时刻?辛辛苦苦用Electron/Tauri写完跨端桌面App,测试/设计/老板上来第一句就是“怎么感觉像个套壳网页啊?”——启动白闪、滚动掉帧、右键弹出Web默认菜单、行hover还冒手型光标,怎么调都差点意思。真想做原生吧,Mac写Swift、Windows写C#,两套代码维护成本直接翻倍,工期根本赶不上。
今天给大家掏的宝贝native-feel.skill,就是专门解决这个两难问题的:它是基于Raycast 2.0官方技术深度稿,加上对Raycast Beta二进制逆向总结出来的AI Agent技能,直接把大厂做跨端原生感App的全部方法论打包给你,不用再自己摸黑踩坑。
第二部分:核心功能深挖
核心功能1:双场景全覆盖,存量/增量都能打
不管你是要改老App的体验,还是从零搭新项目,都有现成方案:
- 存量App重构:自带75项原生体验上线审计清单,90%的Electron App都栽在最常见的6-8项上,改完就能通过「用户30秒直觉测试」:
- 列表行加了
cursor: pointer(清单第21项) - 用Web样式模态框而非原生Sheet(第19项)
- 硬编码品牌强调色而非系统强调色(第33项)
- 页面使用淡入淡出过渡(第40项)
- 窗口背景不透明未用平台材质(第31项)
- WebKit默认右键菜单未禁用(第23项)
- 列表行加了
- 新App从零搭建:先过决策树判断适配性,直接套用Raycast同款四层架构(原生壳→系统WebView→Node后端→Rust核心),帮你避开最高成本的错误决策。
核心功能2:全链路避坑知识库,踩过的坑不用再踩
所有参考资料都是经过实战验证的硬货:
03-webview-survival.md:WKWebView/WebView2的所有常见坑+对应修复方案,比如闪烁、启动白屏、字体渲染问题04-ipc-contract.md:跨Rust/Swift/C#/TS的类型化IPC实现方案,完全照搬Raycast线上在用的Coordinator/EventHandler模式05-memory-truths.md:教你正确识别Activity Monitor的6个常见统计误区,搞懂内存到底应该看什么06-native-conventions.md:70+项原生设计规范审计清单,直接拿去跟设计对齐需求07-evidence-raycast.md:Raycast Beta逆向的全部实证细节,所有方案都有大厂落地背书
核心功能3:明确适用边界,不做过度适配
它不会啥场景都吹自己能用,直接帮你排除不适合的场景,避免浪费时间:
- ❌ 不适合单OS的App(直接写原生就好)
- ❌ 不适合Electron“够用就行”的普通项目(这套方案的打磨成本是普通Electron项目的5-10倍)
- ❌ 不适合有严格<150MB内存限制、<100ms冷启动要求的项目(WebView+Node的底层开销有真实下限)
- ❌ 不适合游戏、文档编辑器、媒体播放器类项目
核心功能4:八大架构原则,从根上找对方向
所有架构决策都围绕这8条原则展开,从根本上平衡跨端效率和原生体验:
- 在渲染层划分边界:WebView以上的UI代码全共享,WebView以下的原生层分平台实现,这是唯一能同时保开发体验和原生体验的分层方式
- 一份Schema,多语言生成:只在声明层付一次多语言成本,调用层完全无负担
- 适配平台而非对抗平台:系统自带的模糊、滚动、材质、深色模式实现永远比你自己写的好
- 性能是感知属性:用户觉得快才是真的快,不是Activity Monitor里的数字好看
- 短迭代循环就是生产力:200ms热重载对比30s原生编译,带来的是150倍的复利优势
- 跨边界操作要刻意设计:IPC有开销,所有跨层调用都要设计成异步、批量、带Schema类型校验
- 产品身份是肌肉记忆:快捷键、操作顺序、核心交互才是产品的核心,其余都是实现细节
- 区分基线开销和可优化空间:WebView+Node的基线开销是固定的,只有你自己写的业务代码才是优化空间
第三部分:实战演示
安装(二选一)
方式1:用skills工具安装(支持所有兼容Agent)
npx skills add yetone/native-feel-skill -g
-g参数是全局安装,所有项目都能调用。
方式2:直接给你的AI Agent发这段提示词
Install the native-feel skill for me:
1. Clone https://github.com/yetone/native-feel-skill into your
user-level skills directory as `native-feel-cross-platform-desktop/`
(whatever path your agent reads skills from on this machine — e.g.
`~/.claude/skills/` for Claude Code).
2. Verify that SKILL.md plus the references/ and checklists/ subdirs
are present.
3. Confirm the install path when done.
调用方式
安装完成后,Agent会自动在对话涉及「跨端桌面架构、WebView坑、原生体验优化」这些话题时触发技能,比如:
- 问它「我的Electron App在Mac上感觉像网页,从哪开始改?」,它会直接给你对应清单和改造成本
- 问它「从零做跨端原生感桌面App用什么架构?」,它会先给你过决策树,再输出四层架构方案和优先要做的核心设计
第四部分:避坑指南与总结
几个避坑提示
- 先跑
checklists/decision-tree.md决策树,确认你的项目真的适合这套架构,不要上来就硬套,不合适的场景只会增加额外成本 - 存量App优化优先改75项清单里的常见问题,几个小时就能搞定,体验提升80%,不用上来就全量重构
- 新项目架构设计优先搞定IPC契约,这是整个架构的核心负载,前期设计不好后期要花几倍的成本改
适用人群
这套方案非常适合做跨端生产力工具、AI桌面客户端、启动器类产品的架构师、技术负责人、前端/客户端开发,尤其是产品核心卖点就是原生流畅体验的团队,直接抄Raycast的作业就能少踩半年的坑。
GitHub开源地址:https://github.com/yetone/native-feel-skill
夜雨聆风