1 个不稳定版本

使用旧的Rust 2015

0.1.0 2018年3月17日

#5 in #flo


flow_between使用

Apache-2.0

255KB
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 库,它非常值得一看。由于 FlowBetween 的分离原则,它在任何 UI 框架中都是可重用的,并且对于那些接触过 Knockout 或 React 等库的人来说将非常熟悉。它本质上是一种将事件流转换为状态表示,反之亦然的方法,这是 UI 设计的核心问题之一。

有几个姊妹项目已迁移到自己的仓库。 desync 提供了异步功能,使用在数据上调度操作的概念(与通常在线程上调度数据的概念相反)。flo_curves 提供了 FlowBetween 生成矢量图形所需的算法库。flo_stream 将 'pub-sub' 机制添加到 Rust 的 futures 库中,这是一种使用流在用户界面周围分配事件的绝佳方式。

--|||--


Snoozing Flo

依赖关系

~26MB
~465K SLoC