Banner

Build Coverage Swift Package Manager compatible CocoaPods compatible Gitter chat

目录

特性

单向数据流

继承自 ReSwift

ReSwift 是一个 Swift 中单向数据流架构的 Redux 式实现。 ReSwift 帮助您分离应用程序组件的三个重要关注点:

  • 状态:在 ReSwift 应用程序中,整个应用程序状态显式存储在数据结构中。 这有助于避免复杂的状态管理代码,从而更好地进行调试,并带来更多好处...
  • 视图:在 ReSwift 应用程序中,视图会在状态更改时更新。 您的视图会变成当前应用状态的简单可视化。
  • 状态更改:在 ReSwift 应用程序中,您只能通过操作来执行状态更改。 操作是描述状态更改的小段数据。 通过严格限制状态变化的途径,您的应用程序变得更容易理解,并且更容易与许多协作者一起工作。

前往 仓库 获取更多信息。

模块化

为了使用 ReSwift,您必须声明状态、reducer 和 store。 然后,在大多数情况下,该状态最终会遍布整个应用程序,这意味着很难保持模块像您可能希望的那样解耦。

这就是 Caesura 的用武之地。 它以这样一种方式封装了状态、reducer 和 store,使您唯一需要关心的是开发模块,而无需它们彼此依赖。 所有这些都不会失去在任何时刻停止应用程序并了解整个应用程序状态的能力。

因此,一个简单的应用程序看起来像:

查看 使用文档 获取更多信息。

导航路由

有一个基于操作的内置模块,它像 UIKit 一样灵活。

查看 使用文档 获取更多信息。

时间旅行

您是否梦想过在时间中来回旅行? 嗯,这目前还不可能。 但是您的应用程序可以使用一个可选的内置模块轻松地做到这一点。

查看 使用文档 获取更多信息。

崩溃追踪

一个可选的内置模块能够检测崩溃并报告它们。 每个报告都包含分发到 store 的所有操作。 因此,您可以重播完全相同的会话并轻松发现此类事件的原因。

查看 使用文档 获取更多信息。

会话注入

如果没有一种无需手动操作即可注入此类报告的方式,则最后一个功能就不完整。 还有另一个可选的内置模块可以做到这一点。

查看 使用文档 获取更多信息。

ReRxSwift 集成

还有一个可选的内置模块,可以将 ReRxSwift 的优势带入 Caesura

类似于 react-redux, ReRxSwift 允许您创建具有 propsactions 的视图控制器。 视图控制器从它们的 props 读取它们需要的所有数据(而不是直接从 state 中读取),并且它们通过调用 actions 定义的回调来更改数据(而不是直接分发 ReSwift 操作)。 这有一些不错的优势:

  • 更好地分离关注点。 更容易理解您的视图控制器做什么以及它使用什么数据。 换句话说,它促进了局部推理。
  • 单元测试。 由于关注点的分离,您可以轻松地对视图控制器进行单元测试,一直到 Interface Builder 连接。
  • 更好的可重用性。 重用您的视图控制器就像指定从 state 到 props 以及从 ReSwift 操作到 actions 的不同映射一样简单。
  • 快速原型设计。 您可以轻松地使用虚拟 propsactions,以便获得可用的 UI 层原型。 无需编写任何应用程序的业务逻辑,您就可以以一种非常简单的方式实现演示文稿层,以便用真实状态和操作替换虚拟对象。

查看 使用文档 获取更多信息。

要求

安装

Swift Package Manager

要使用 Swift Package ManagerCaesura 集成到您的项目中,请在您的 Package.swift 中指定它

// swift-tools-version:5.0

import PackageDescription

let package = Package(
    name: "YourPackageName",
    dependencies: [
        .package(
            url: "https://github.com/LucianoPolit/Caesura.git",
            .upToNextMajor(from: "1.0.0")
        )
    ],
    targets: [
        .target(
            name: "YourTarget",
            dependencies: [
                "Caesura",
                "CaesuraUI",
                "CaesuraStandardAction",
                "CaesuraMiddlewares",
                "ReRxCaesura"
            ]
        )
    ]
)

CocoaPods

要使用 CocoaPodsCaesura 集成到您的项目中,请在您的 Podfile 中指定它

pod 'Caesura', '~> 1.0'
pod 'Caesura/Core'
pod 'Caesura/UI'
pod 'Caesura/StandardAction'
pod 'Caesura/Middlewares'
pod 'Caesura/ReRxSwift'

通讯

作者

Luciano Polit | lucianopolit@gmail.com

许可证

Caesura 在 MIT 许可证下可用。 查看 LICENSE 文件获取更多信息。