Google 开源的 SDK,用一套 Dart 代码构建移动端、Web 和桌面端应用。
Snapchat/Valdi
跨平台 UI 框架,用声明式 TypeScript 编写界面,直接编译为 iOS、Android 和 macOS 原生视图。
- Star
- 16,379
- Fork
- 537
- 未关闭 Issue
- 22
- 最近提交
- 昨天
这是什么?
Valdi 是 Snap 推出的 UI 框架,用于构建移动端和桌面端界面。开发者使用 TSX 和 TypeScript 编写声明式组件,Valdi 将其编译为 iOS、Android 和 macOS 上的原生视图,不依赖 WebView 或 JavaScript 桥接。
框架内置跨页面的视图复用、组件独立重渲染、基于 C++ 的 Flexbox 布局引擎(支持 RTL),并且只渲染可见视图。开发环境支持热重载、VSCode 断点调试和堆转储,还提供组件级单元测试框架。
已有的 UIKit 或 Android 视图层级中可以嵌入 Valdi 组件,Valdi 布局中也能使用原生视图。性能敏感的模块可用 C++、Swift、Kotlin 或 Objective-C 编写,并生成类型安全的 TypeScript 绑定。项目目前处于 beta 阶段,采用 MIT 许可证。
核心功能
- 01将声明式 TSX 组件编译为 iOS、Android 和 macOS 原生视图
- 02支持热重载,以及带断点和堆转储的 VSCode 调试
- 03全局视图复用与视口感知渲染,提升滚动流畅度
- 04基于 C++ 的 Flexbox 布局引擎,自动支持 RTL
- 05自动生成 TypeScript 与 Kotlin、Swift、Objective-C 之间的类型安全绑定
- 06可将 Valdi 组件嵌入现有原生视图层级
适用场景
- 不借助 WebView 构建跨平台移动端界面
- 在已有的 iOS 或 Android 应用中逐步引入 Valdi 组件
- 用 C++ 或 Swift 编写性能敏感模块,并通过 TypeScript 调用
- 构建滚动密集型界面,例如信息流
快速上手
- 1
从 npm 安装 Valdi CLI
npm install -g @snap/valdi - 2
运行一键依赖安装命令
valdi dev_setup - 3
创建项目文件夹并初始化
mkdir my_project && cd my_project valdi bootstrap - 4
在 iOS 或 Android 上安装应用
valdi install ios
使用前须知
- 项目目前处于测试版,README 称其工具和文档仍需在开源社区中进一步检验。
- 构建 iOS 或 macOS 版本需要 Xcode 26.5 或 27,因此需要 Mac 电脑。
收录于专题
标签
常见问题
- Valdi 是什么?
- 跨平台 UI 框架,用声明式 TypeScript 编写界面,直接编译为 iOS、Android 和 macOS 原生视图。 Valdi 是 Snap 推出的 UI 框架,用于构建移动端和桌面端界面。开发者使用 TSX 和 TypeScript 编写声明式组件,Valdi 将其编译为 iOS、Android 和 macOS 上的原生视图,不依赖 WebView 或 JavaScript 桥接。
- Valdi 可以免费使用吗?用的什么许可证?
- Valdi 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- Valdi 还在维护吗?
- 活跃维护中。Valdi 最近一次提交是在 2026年11月6日。
- Valdi 适合用来做什么?
- 不借助 WebView 构建跨平台移动端界面 在已有的 iOS 或 Android 应用中逐步引入 Valdi 组件 用 C++ 或 Swift 编写性能敏感模块,并通过 TypeScript 调用 构建滚动密集型界面,例如信息流
- Valdi 怎么安装和运行?
- 从 npm 安装 Valdi CLI: npm install -g @snap/valdi 运行一键依赖安装命令: valdi dev_setup 创建项目文件夹并初始化: mkdir my_project && cd my_project valdi bootstrap 在 iOS 或 Android 上安装应用: valdi install ios
- 在哪里获取 Valdi?
- 源代码和安装说明在 GitHub 上:https://github.com/Snapchat/Valdi
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
18.1万+358 本周3.3万DartBSD-3-Clause维护活跃更新于 15小时前
开源 Python GUI 框架,一套代码即可部署到桌面、移动和嵌入式平台。
1.9万3143PythonMIT维护活跃更新于 昨天
为 React Native 应用提供 Lottie 启动动画,在 JS 包加载前即由原生层播放。
441JavaScriptMIT维护活跃更新于 昨天
基于 React 构建可同时运行于 Android、iOS 和 Web 的通用原生应用的开源框架。
5.3万+147 本周1.5万TypeScriptMIT更新于 14小时前
基于 Vue.js 的跨端框架,一套代码可发布到iOS、Android、鸿蒙、Web 及多家小程序平台。
4.2万3703JavaScriptApache-2.0更新于 19小时前