Repolode
Snapchat

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. 1

    从 npm 安装 Valdi CLI

    npm install -g @snap/valdi
  2. 2

    运行一键依赖安装命令

    valdi dev_setup
  3. 3

    创建项目文件夹并初始化

    mkdir my_project && cd my_project valdi bootstrap
  4. 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 数据每日更新。

相关项目