SwiftFlowRecorder 0.2.2

SwiftFlowRecorder 0.2.2

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布日期最后发布2016年1月
SPM支持 SPM

Benjamin Encz 维护。



⚠️ 概念验证。需要很多爱! ⚠️

一个用于 Swift Flow 的记录存储。使得 Swift Flow 应用支持热重载和时间旅行。

关于 Swift Flow Recorder

Swift Flow Recorder 是 Swift Flow 的一个扩展,允许开发者记录和重放操作。Swift Flow Recorder 支持将操作序列化到磁盘,允许重放记录的会话,并在您停止的地方重新启动应用程序。

这在开发过程中非常有用。如果您在记录时遇到崩溃,现在您有一个包含所有需要重复产生崩溃的操作的记录 JSON 文件。如果您使用此记录会话重新启动应用程序,它将以相同的方式每次都崩溃 - 这允许您在没有手动在应用中反复导航的情况下修复根本问题。

此扩展的长期目标是实现一些最重要的 Redux Devtools 特性。

此扩展正在运行 - 您可以记录和重放操作,但它仍处于概念验证状态.

下一步

  • 让开发者更容易地将操作序列化,最好能够减少当前必要的某些样板代码。
  • 改进此扩展的实现,当前实现是一种黑客技巧。

配置

当创建您的应用程序 store 时,需要创建一个 RecordingStore 实例而不是一个 MainStore 实例。您还需要提供一个用于反序列化操作的 typeMaps 参数

RecordingMainStore(reducer: CombinedReducer([CounterReducer(), NavigationReducer()]),
    appState: AppState(), typeMaps:[counterActionTypeMap, SwiftFlowRouter.typeMap], recording: "recording.json")

typeMaps 数组是一个将类型名称(字符串)映射到动作类型。最后一个参数 recording 可以是 nil 或存储在应用程序文档目录中的记录路径。如果您为特定的记录设置路径,则在启动时 store 将加载所有操作并重放它们,从而恢复应用程序的状态。

有关如何使用 Swift Flow Recorder 的实际示例,请参阅 计数器应用程序示例