发布于 2026-01-06 0 阅读
0

Revery - 具有理性分析功能的跨平台桌面应用程序

Revery - 具有理性分析功能的跨平台桌面应用程序

封面图片由 Frank Brown 拍摄,来自 Flickr。

目前,我正在研究我的下一个项目,一本关于创建软件 MVP 的书,其中一个经常出现的需求是能够使用一个代码库构建跨平台应用程序。

虽然我认为 React Native 是最佳选择,但了解一下其他解决方案总是没错的。例如,Flutter 最近就非常火爆——它是一个使用 Dart 编程语言构建跨平台应用程序的框架。

今天我想探讨另一种很有前景的方法:白日梦。

什么

“Revery 就像一个超快的原生 Electron——它捆绑了 React、Redux 和一个快速构建系统——一切准备就绪!”

Revery 是一个(目前处于实验阶段的)跨平台桌面应用程序框架,使用 Reason 编程语言构建。

Reason是一种新的 OCaml 语法,旨在让 JavaScript 开发者更容易上手;它还具有类似 JSX 的语法。虽然它主要用于通过名为BuckleScript的工具编译成 JavaScript,但它也可以编译成原生二进制文件。

Reason 提供了一个健全的类型系统,具有非空类型和模式匹配,这应该可以解决 JavaScript 代码库中最臭名昭著的错误。

Revery 不渲染原生控件,而是借助 GPU 加速渲染来渲染自己的控件。

为什么

虽然Electron目前无疑是构建桌面应用程序最快的方式,但它的缺点是体积较大,并且存在一些性能问题。Electron 自带一个完整的浏览器,方便开发者利用 Web 生态系统。

像React-Native这样的框架采用使用原生组件的方法,这可以带来更好的性能和更小的应用程序,这对移动设备来说是一个巨大的优势,但也导致了不一致性,因为 iOS 和 Android 在原生组件甚至它们的行为方面并没有 100% 的重叠。

那么为什么不选择 Flutter 呢?

我认为主要原因是 Flutter 目前专注于移动开发。

Revery 已将移动平台列入其发展路线图,但目前仍专注于桌面平台。

如何

让我们看看如何启动并运行 Revery示例项目。

首先,我们需要安装esy,它是Reason原生开发的包管理器。它可以通过npm安装。

$ npm install -g esy

接下来,我们需要从 Github 使用 git 克隆示例项目并打开该项目。

$ git clone git@github.com:revery-ui/revery-quick-start.git
$ cd revery-quick-start

现在我们需要安装依赖项并使用 esy 编译所有内容。

$ esy install
$ esy build

首次编译需要一些时间,但之后我们就可以直接运行编译好的二进制文件了。

$ _build/install/default/bin/App

这将打开应用程序并显示一个带有文本和按钮的窗口。

截屏

我们在这里App.re找到源头,并可以根据需要进行更改。

结论

我认为 Revery 是跨平台框架领域的一个很好的补充,而 Reason/OCaml 也确实是一门有趣的语言,它有很多优秀的特性,可以解决我在日常 JavaScript 工作中遇到的问题。

Revery借鉴了React的概念,这一点让我对它特别感兴趣。

文章来源:https://dev.to/kayis/revery---cross-platform-desktop-apps-with-reason-2efj