泡泡资讯网

真佩服 Vercel 的挖坑速度,又开了个大坑,后面就看能不能填上了。Nativ

真佩服 Vercel 的挖坑速度,又开了个大坑,后面就看能不能填上了。

Native SDK 是一套用 Zig 语言构建原生桌面应用的开发框架,它想解决的问题是用声明式标记语言写 Native UI。

要我说,在 AI 时代之前,这类框架真的挺有价值的,写一遍到处能运行。

现在 AI 时代,不如同一套设计,让 AI “翻译”到不同平台,Mac 你就老老实实用 AppKit(SwiftUI 都没必要),既能保证性能和兼容性,又能避免去踩跨平台框架带来的各种坑。

当然只是我观点,仅供参考,下面是项目的介绍:

主流方案(Electron 之类)往往要把一整个浏览器打包进去,应用体积和内存占用都很夸张。Native SDK 的做法是保留声明式的写法,但把浏览器换掉,用自己的渲染引擎直接往操作系统窗口里画像素。

开发体验上,界面写在 .native 后缀的标记文件里,逻辑用 Zig 写,架构是 Model/Message/Update 的单向数据流,跟 Elm 那一套思路类似。状态变更只发生在一个 update 函数里,界面层只负责绑定和派发消息,不能直接改数据。这种约束带来一个好处:整个应用的行为是确定性的,可以录制一次操作、无头回放、逐帧对比状态指纹来做自动化测试。

框架自带了一套组件库(按钮、输入框、Tab、对话框、虚拟列表、图表等),默认就有排版和配色,拿来就能用。定制走设计 Token 体系,换一套 Token 就能换一套视觉风格。CLI 工具链也比较完整:native init 创建项目,native dev 热重载开发,native check 做静态校验(能检查标记文件里的数据绑定是否跟 Zig 的 Model 和 Msg 类型匹配),native test 跑无头 UI 测试,native build 出发布包。最终产物是几 MB 的单体二进制文件,不带解释器和运行时。

一个有意思的设计是它把 AI Agent 协作作为一等公民考虑:每个应用内置自动化服务器,Agent 可以读取无障碍快照、操控控件、断言运行时状态、截取确定性截图。CLI 还自带 Agent 技能文件,用 native skills list 可以查看。

平台支持方面,macOS 最成熟(Metal 渲染、原生菜单、托盘),Linux 和 Windows 可用但功能少一些,iOS 和 Android 处于实验阶段。WebView 作为可选项在桌面端也能混用。项目目前还在 pre-1.0 阶段,API 仍在变动,采用 Apache 2.0 开源协议。

项目地址:网页链接