GitHub 上出现了一个 Flipper Zero Zig Template。它做的事很具体:让开发者用 Zig 写 Flipper Zero 应用,再通过 UFBT 生成可安装的 .fap 文件。

有意思的地方不在于“Flipper Zero 官方支持 Zig 了”。没有这回事。这个项目更像一套非官方脚手架,把 Zig、ARM Cortex-M4 交叉编译、Flipper SDK 和 UFBT 串成一条能跑的链路。

这对开发者的真实影响也很具体:懂 Zig、懂一点嵌入式的人,可以少花时间配路径、拼命令;只想跟教程写第一个 Flipper 应用的人,反而不一定省事。

它解决的是第一步:把 Zig 代码打成 .fap

Flipper Zero 外部应用开发,主线仍是 C/C++ 和 Flipper 固件 SDK。UFBT,也就是 Unofficial Flipper Build Tool,已经被很多外部应用开发者用来管理 SDK、链接并生成 .fap

这个模板的定位,是把 Zig 放进这条流程的前半段。Zig 负责编译 ARM Cortex-M4 目标对象文件,UFBT 负责后面的 SDK 链接和打包。

环节模板帮你做什么你还要自己管什么
初始化生成项目结构,配置 App ID、名称、作者等信息仍要理解 application.fam 里的分类、依赖和栈大小
编译用 Zig 编译 ARM Cortex-M4 对象文件,比如 app.o目标架构、ABI、优化级别不能乱配
打包通过 zig build fap 调用 UFBT,链接 SDK 并生成 .fap不能指望只跑 zig build 就得到可部署应用
部署可用 zig build launch 传到连接的 Flipper Zero 并启动USB、设备连接、解锁状态仍可能出问题

所以它的价值边界很清楚:省的是工程启动成本,不是替你理解 Flipper SDK。

如果你要写一个小型 GUI 应用、硬件接口测试工具,或者只是验证 NFC、红外、GPIO、Sub-GHz 相关想法,这个模板有用。它能让你更快进入“代码能不能跑”的阶段。

但如果你正在带一个小团队做可维护的 Flipper 应用,我会建议先把它当实验路径,而不是立刻迁移主线。更实际的动作是:用它开一个分支或样例项目,验证构建、部署和回调稳定性,再决定要不要把业务代码搬过去。

Zig 进来了,底层规矩没变

这个项目要求 Zig 0.15.1 及以上版本、UFBT 和 Python 3。Flipper SDK 由 UFBT 管理,通常在 ~/.ufbt 下面。

目前看,模板对 macOS ARM64 的路径预配置更明确。比如工具链 include 路径会指向类似 ~/.ufbt/toolchain/arm64-darwin/arm-none-eabi/include 的位置。

其他平台不是完全没机会,但不能当成已经打磨完。Linux 或其他环境可能需要修改 build.zig 里的 arm_libc_include。Windows 支持也更像待补项,不应被写成现成能力。

这里最容易误判的一点,是把 Zig 的语言特性当成嵌入式免死金牌。Zig 的类型检查、显式内存管理确实有吸引力,但 Flipper Zero 跑的是 STM32WB55,目标是 ARM Cortex-M4F。硬件约束不会因为换语言消失。

入口函数、回调函数要匹配 ARM AAPCS 或 AAPCS-VFP 调用约定。签名不对,应用可能启动失败,也可能跑到一半崩。栈大小不够,同样会出问题,仍要回到 application.fam 里调。

还有 SDK 头文件这一关。模板通过 Zig 的 @cImport() 引入 Flipper SDK,但不是所有 C 头文件都能被 Zig C translator 顺利处理。原项目提示过,部分包含 opaque type union 的输入相关头文件就可能卡住。

遇到这种情况,开发者要手写 extern fn 声明。这一步很朴素,也很说明问题:它还不是一套完整的 Zig SDK,只是把 C SDK 接进 Zig 世界的一座窄桥。

最该看的不是热度,是三件工程小事

对熟悉 Zig 或嵌入式交叉编译的人,这个模板值得试。建议的用法也别太重:先拿一个最小应用跑通初始化、构建、打包、部署,再把一个真实回调或 UI 流程移进去。

对 Flipper Zero 新手,C/C++ 官方路线和现有社区样例仍更稳。不是 Zig 不好,而是你遇到问题时,搜索结果、样例代码、排错经验都会更多。

我更在意后续三件事,它们比仓库热度更能说明项目能不能从“能跑”走向“好用”。

观察点为什么重要没解决前的影响
自动识别 UFBT SDK 和工具链路径减少不同机器上的路径改动新机器搭建仍容易卡在 include 路径
补齐 Windows 和更多 Linux 配置决定模板能不能被更广泛使用团队协作时容易出现“我这里能跑”
更稳定的 Flipper SDK Zig wrapper降低手写 extern fn 和头文件兼容成本开发者仍要懂 C ABI 和 SDK 细节

这也是我对它的判断:它已经把门推开了,但还没把房间收拾好。

如果你是个人开发者,想用 Zig 写一个 Flipper 小工具,可以现在试。成本主要是排构建链和 ABI 问题。

如果你要给团队选技术路线,就该慢一点。等路径检测、平台支持、SDK wrapper 更稳,再考虑把它放进正式开发流程。工具链这种事,最怕一开始爽,后面每次升级都补洞。