Caesura 1.0.1

Caesura 1.0.1

Luciano Polit维护。



Caesura 1.0.1

  • Luciano Polit

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一样。

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

时间旅行

你是否曾想过时间旅行?虽然这目前还不可能,但你的应用可以通过一个可选的内置模块轻松实现。

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

崩溃追踪

一个可选的内置模块可以检测崩溃并向您报告。每个报告都包含派发到商店的所有动作。因此,您可以重新播放完全相同的会话并轻松发现此类事件的根本原因。

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

会话注入

没有手动操作的方式注入此类报告,最后的特性就不完整。还有另一个可选的内置模块可以实现这一点。

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

ReRxSwift整合

还有一个可选的内置模块可以将ReRxSwift(《ReNxSwift》)的益处引入到《Caesura》中。

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

  • 更好的关注分离。理解视图控制器做什么以及它使用哪些数据变得更加容易。换句话说,它促进了局部推理。
  • 单元测试。由于关注点的分离,您可以轻松地对视图控制器进行单元测试,甚至可以测试到Interface Builder连接。
  • 更好的可重用性。重用您的视图控制器就像指定从状态到props以及从ReSwift动作到actions的不同映射一样简单。
  • 快速原型设计。您可以使用虚拟的propsactions轻松使用假数据,从而得到一个可运行的UI层原型。在不编写任何应用程序的业务逻辑的情况下,您可以以非常简单的方式实现表示层,从而可以用真实的状态和动作替换虚拟数据。

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

要求

  • Xcode 10.0+
  • Swift 5.0+

安装

Swift包管理器

要使用 Swift 包管理器Caesura 集成到项目中,请在您的 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 | [email protected]

许可

Caesura 可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。