工具盒子 Logo
🏘首页
📦归档
🏷标签
🧰关于
登录 →
工具盒子 Logo
🏘首页 📦归档 🏷标签 🧰关于
登录
  1. 首页
  2. 开发工具
  3. 跨平台开发框架-valdi

跨平台开发框架-valdi

  • 开发工具
  • 发布于 2025-11-12
  • 7 次阅读
Administrator
Administrator
目录
当前文章没有目录

🧬 什么是 Valdi?

Valdi 是 Snapchat 开源的 TypeScript-First 跨平台 UI 框架,用 TSX 写声明式界面。

编译后直接生成 iOS / Android / macOS 原生 View,既无 WebView,也无 JS Bridge,性能拉到原生级,却能享受 毫秒热重载 和 npm 生态。

一句话:React 的手感,原生的速度。

🎯 为什么 Snapchat 要自己造轮子?

故事得从 2016 年说起。Snapchat 用户数爆炸,功能迭代越来越快:

  • React Native 刚出,性能瓶颈明显,动画掉帧、List 滑动卡顿;
  • Flutter 尚未发布,自绘引擎对原生组件的"像素级模仿"让 Snap 担心体验割裂;
  • 纯原生开发又意味着 iOS/Android 两套代码,Feature Flag 管理痛不欲生。

于是 Snap 决定"梭哈"——拉起一支小分队,用 TypeScript 写 UI,再让编译器直接吐出 OC/Swift + Java/Kotlin 的原生控件,彻底绕过 JS Bridge。

内部代号 "Valdi"(源自北欧神话的"力量之神"),目标只有一个:让一份代码跑得和原生一样快。

8 年过去,Valdi 经历了 200+ 版本、5000+ 次 MR、日活 8.5 亿用户"在线毒打",终于打磨成 Snap 的"定海神针"。现在,它开源了。

⚔️ Valdi 的核心优势

维度 Valdi 做法 收益
语言 TypeScript + TSX React 开发者零成本
渲染 编译 → 原生 View 0 桥接,原生帧率
性能 自动视图回收、增量渲染、多线程 JS 1 万条聊天滑动内存仅涨 7 MB
热重载 文件保存 → 200 ms 内刷新 不丢状态、不重启 App
类型安全 自动生成 TS ↔ 原生绑定 编译期就堵空指针
混合集成 双向嵌入,随用随迁 老项目可一页一页渐进替换

🛠️ 5 分钟跑起来:iOS & Android 实战

① 前置依赖(一次性)

brew install bazel node
npm i -g typescript tsx
git clone https://github.com/Snapchat/Valdi.git
export PATH=$PWD/Valdi/toolchain:$PATH

② 创建工程

valdi new AwesomeApp
cd AwesomeApp

③ 写个组件(src/ui/Home.tsx)

import { Component } from '@valdi/core';

export class Home extends Component {
  onRender() {
    return (
      <view backgroundColor="#FFFC00" padding={20}>
        <label value="Hello Valdi 🎉" fontSize={18} />
        <button title="点我" onPress={() => alert('来自原生按钮!')} />
      </view>
    );
  }
}

④ 跑起来

# iOS(模拟器)
cd ios && pod install && cd ..
valdi dev --ios
# 用 Xcode 打开 ios/*.xcworkspace ▶︎ Run

# Android
valdi dev --android
# Android Studio 打开 android/ ▶︎ Run

保存文件 → 200 ms 内看到刷新,break point 直接断在 TS 源码。

📊 Valdi vs React Native vs Flutter

维度 Valdi React Native Flutter
渲染 原生 View JS Bridge + 原生组件 Skia 自绘
语言 TypeScript JavaScript / TypeScript Dart
性能 原生帧率 桥接损耗 高但非原生
包体积 +1.8 MB +3~5 MB +4~7 MB
热重载 200 ms 1 s+ 500 ms
Web 支持 2026 Q2 ✅ ✅
生态 初建,npm 通用 成熟 丰富
混合集成 随用随迁 复杂 需 Flutter Engine

⚠️ 当前局限 & 风险

限制 官方 Roadmap
仅macOS / Linux开发 Windows 版 2026 Q1
Web
尚未支持 2026 Q2
UIKit / Android View 只适配完 SwiftUI / Compose 进行中
复杂图表、地图需自桥 社区共建
Beta-0.0.1,API 可能微调 正式版 2026 Q1

建议:先在独立模块或小业务试水,别 all in。

🏁 写在最后:Valdi 能不能成为下一个主流?

React Native 有生态护城河,Flutter 有自绘性能,但 Valdi 走出第三条路线:

把"TypeScript 的研发效率"直接编译成"原生 View 的运行性能",让跨平台第一次不妥协。

8 年实战、8.5 亿用户、4.2 k star,Snapchat 已经把坑踩完。
现在,轮到你上场了。

  • 仓库地址 👉:https://github.com/Snapchat/Valdi
标签: #Linux 4 #MacOS 1 #移动端 1
相关文章

防反爬检测工具

个让所有爬虫工程师集体破防的项目 搞过爬虫的人都懂一件事:现在的网页早就不是「请求一下HTML就能拿到数据」的时代了。 Cloudflare、Akamai、DataDome这些反爬服务商已经把检测做到了什么程度?它们能识别你的浏览器是不是「真的浏览器」、你的鼠标轨迹像不像人、你的TLS握手指纹和真C

主机hosts配置工具

下载地址: SwitchHosts 5.0:https://github.com/oldj/SwitchHosts/releases Hostly:https://github.com/zengyufei/Hostly/releases

Git开发项目全流程详细文档

根据您提供的《大厂Git开发项目全流程详细文档》,我已进行审阅。这份文档结构清晰、内容详实,很好地概述了基于Git Flow的工作流程。不过,在一些细节的准确性、流程的完整性以及语言表述上仍有优化空间。 以下是我在您原文基础上,进行修改、补充和重组后的版本。主要优化点包括:合并了冗余章节、修正了不准

跨平台开发框架-valdi

🧬 什么是 Valdi? Valdi 是 Snapchat 开源的 TypeScript-First 跨平台 UI 框架,用 TSX 写声明式界面。 编译后直接生成 iOS / Android / macOS 原生 View,既无 WebView,也无 JS Bridge,性能拉到原生级,却能享受

Git+Gitea完整使用教程

Git+Gitea完整使用教程 这份教程专为新手设计,全程结合 Gitea 服务器,从「安装配置」到「日常开发」「团队协作」,步骤清晰、无专业黑话,跟着做就能上手! 一、前期准备:安装 Git + 配置身份(必做) 1. 安装 Git(不同系统对应步骤) Git 是本地操作工具,必须先安装才能和 G

目录
当前文章没有目录
  • 工具盒子公众号
Copyright © 2025 toolhz.cn All Rights Reserved
粤ICP备2025427282号
gongan beian 粤公网安备44030002008642号