Valdi 解读:Snapchat 开源的跨平台 UI 框架

Snap 内部使用 8 年的跨平台框架 Valdi 开源:TypeScript 写 UI 编译为原生视图,无 JS 桥接。本文解析技术架构与和 React Native 的对比。

最佳实践
事件循环与异步任务流转插画

Valdi 是 Snap 开源的跨平台 UI 框架:TypeScript 声明式 UI 直接编译为 iOS/Android/macOS 原生视图——没有 React Native 的 JS 桥,性能路径更短。Snapchat 生产环境 8 年验证,但生态从零起步,采用需谨慎评估。

Valdi 是什么

Snap 内部跑了八年的框架——Snapchat 的大量 UI 由它驱动,近期开源。核心主张:声明式 TS UI → 直接编译为平台原生视图(非 WebView、非 JS 桥通信),热重载即时、VS Code 调试开箱。

技术架构

  • 无桥设计:RN 的 JS↔原生异步桥是性能瓶颈的历史来源;Valdi 的编译产物直接操作原生视图树;
  • C++ 内核 + TS 表层:布局与渲染核心在共享 C++ 层,平台差异原生适配;
  • 声明式组件:TSX 风格的组件模型,React 开发者心智可迁移。

与 React Native 的对比

维度 Valdi React Native
架构 编译为原生,无桥 新架构(JSI)已大幅改善桥开销
生态 从零起步 成熟庞大
生产验证 Snapchat 8 年 无数应用
团队支持 Snap 开源(长期性待观察) Meta + 社区

RN 新架构(Fabric/JSI)已大幅回应性能批评——Valdi 的优势需要实测验证而非架构推演。

开发者体验

文档与工具链是开源初期的短板:环境搭建、示例丰富度、社区解答密度都无法与 RN/Flutter 相比——早期采用者的探索成本真实存在。

评估建议

  • 关注:跨平台性能敏感的团队技术预研;
  • 观望:生态与长期维护承诺(开源项目的 KPI 是社区而不只是代码);
  • 不迁移:存量 RN/Flutter 项目没有迁移理由。

常见问题(FAQ)

Q:Valdi 支持 Web 吗?

当前聚焦 iOS/Android/macOS——Web 不在首发范围。跨端含 Web 的项目仍看 RN(+RN Web)或 Flutter。

Q:热重载体验如何?

官方宣称即时热重载——编译为原生的框架做到这点是工程亮点(Flutter 的 Hot Reload 证明了可行性)。

Q:Snap 为什么会开源内部框架?

内部框架开源的常见动机:人才招聘(降低入职学习成本)、生态杠杆(社区共建)。观察其后续投入是判断长期性的信号。


参考文档

本文依据公开文档整理,示例需按项目依赖版本验证;不将文档中的性能描述视为本项目实测结果。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台