1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018 年 3 月 17 日 |
---|
#6 in #flo
在 flow_between 中使用
460KB
8K 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
或者,您可以展示 FlowBetween 架构的更多有趣功能,通过将 gtk 和 http UI 合并到单个可执行文件中
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' 机制,这是使用流在用户界面周围分发事件的好方法。
--|||--
依赖项
~17MB
~305K SLoC