1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年3月17日 |
---|
#768 in 图像
1.5MB
20K 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
将 'pub-sub' 机制添加到 Rust 的 futures 库中,这是一种使用流在用户界面周围分发事件的好方法。
--|||--
依赖项
~38MB
~702K SLoC