1 个不稳定版本

使用旧的Rust 2015

0.1.0 2018年3月17日

#2 in #flow-between


3 个crate中使用

Apache-2.0

125KB
2.5K SLoC

FlowBetween

Screenshot

FlowBetween是一款创建动画的工具。它也是一个矢量编辑器,旨在提供“画家风格”的工作流程,与其他大多数工具不同的是,编辑更侧重于使用画笔进行绘制而不是调整路径。

运行FlowBetween

构建FlowBetween

如果您使用的是OS X,您可以从网站下载预构建的二进制文件。

FlowBetween具有独特的架构,这使得其用户界面非常便携。在这个早期版本中,浏览器版本最容易尝试,因为它可以在所有操作系统上运行。请注意,要使用平板电脑与FlowBetween一起使用,您理想需要一个完全支持指针事件或触摸API的浏览器。在OS X上,Chrome或Firefox是您的最佳选择。在Windows上,仅Firefox。iOS上的Safari与Apple Pencil配合使用。

要构建并运行FlowBetween,请安装Rust并下载此仓库。输入

cargo run --features http --release

并在您选择的浏览器中连接到localhost:3000。选择画笔工具开始绘制。

在Linux上,您可以尝试Gtk端口

cargo run --features gtk --release

或者您可以通过将gtk和http UI合并到一个可执行文件中,来展示FlowBetween架构的更多有趣特性

cargo run --features gtk --features http --release

虽然这现在只是一个噱头,但它表明了一些事情:FlowBetween具有极其便携的架构(我知道没有其他应用程序能够在同一可执行文件中并行运行两个独立的UI端口)。更重要的是,这旨在演变成一个允许在桌面和移动设备上进行无缝编辑(以及单个画布的协作编辑)的功能。

一些技术细节

FlowBetween 的架构基于流,这与大多数其他应用程序基于对象的方式类似。任何在 SmallTalk 中编程过的人可能都会认识到这个想法。还有一个强制的原则,即将表示概念的库与提供具体实现的库分开。以一个重要的例子来说:flo_canvas 库提供了所有矢量绘图的原语,但没有提供任何实现。 flo_gtk_uiflo_http_ui 都能够接收这些更新流并使用它们各自的用户界面语言来实现。

当您在这里时,flo_binding 库值得一观。由于其分离原则,它在任何 UI 框架中都是可重用的,并且对于那些遇到过 Knockout 或 React 等库的人来说会感到熟悉。它基本上是将事件流转换为状态表示以及反之亦然的方法,这是 UI 设计的核心问题之一。

有几个姐妹项目已经转移到它们自己的存储库。 desync 提供了异步功能,使用对数据操作(线程上数据调度的传统概念的相反)进行调度。 flo_curves 提供了 FlowBetween 生成矢量图形所需的算法库。 flo_stream 为 Rust 的 futures 库添加了 'pub-sub' 机制,这是一种使用流在用户界面周围分发事件的好方法。

--|||--


Snoozing Flo


lib.rs:

用于描述和编辑 FlowBetween 动画的库

依赖关系

~4.5MB
~58K SLoC