1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018 年 3 月 17 日 |
---|
#904 in GUI
在 flow_between 中使用
515KB
10K SLoC
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_ui
和 flo_http_ui
都能够接收这些更新的流,并使用它们各自的用户界面语言实现它们。
在您访问期间,非常值得一试的是 flo_binding
库。由于 FlowBetween 的分离原则,它可以在任何 UI 框架中重用,并且对于那些接触过 Knockout 或 React 等库的人来说会非常熟悉。它本质上是一种将事件流转换为状态表示以及相反的方法,这是 UI 设计的核心问题之一。
有几个姊妹项目已迁移到自己的仓库。 desync
提供异步功能,使用在数据上调度操作的概念(与通常在线程上调度数据的概念相反)。flo_curves
为 FlowBetween 生成矢量图形提供所需算法库。flo_stream
为 Rust 的 futures 库添加了一个 'pub-sub' 机制,这是一种使用流在用户界面周围分配事件的好方法。
--|||--
依赖关系
~5.5MB
~80K SLoC