Ecno 3.0.0

Ecno 3.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2019年4月
SPM支持 SPM

Diego ErnstMathias Claassen 维护。



Ecno 3.0.0

Build status Platform iOS Swift 5 compatible Carthage compatible CocoaPods compatible License: MIT

Xmartlabs SRL 提供。

简介

Ecno 受到 Once Android 库的启发。它是一个基于 UserDefaults 的纯 Swift 4 构建的任务状态管理器。这种抽象允许您将“任务”标记为已完成、待办并检查这些状态。

Ecno 适用于

  • 在应用程序内仅显示一次教程。
  • 周期性地执行某些任务。
  • 根据用户操作触发一个任务。

使用方法

首先您需要初始化它

Ecno.initialize()

注意:您应该在应用程序启动时初始化它。

然后,您可以检查一个任务是否完成

if !Ecno.beenDone("task") {
  //...
  Ecno.markDone("task")
}

您还可以检查关于特定任务的特定要求

if Ecno.beenDone("task", scope: .appSession, numberOfTimes: .moreThan(3)) {
  // do stuff
}

或者

if Ecno.beenDone("task", scope: .since(20.minutes), numberOfTimes: .lessThan(3)) {
  // do stuff
}

此外,您可以通过以下方式编程一个“待办”任务

Ecno.toDo("show banner", scope: .until(3.hours), info: ["name": "bannerName"])

然后查询是否需要执行该任务

if Ecno.needToDo("show banner") {
  let info = Ecno.infoForToDo("show banner") // ["name": "bannerName"]
  // ...
}

任务

任何符合 Task 协议的类型。由于这将是最常见的用例,所以 String 类型已经符合 Task

public protocol Task {

    var tag: String { get }

}

范围

范围表示应用程序中的时间段。

  • .appInstall
    这个时间段表示应用程序的所有时间。
  • .appVersion
    从安装当前应用程序版本开始的时间段。
  • .appSession
    从启动应用程序开始的时间段。
  • .since(TimeInterval)
    从现在起的 TimeInterval 时间段开始。例如,.since(2.days)
  • .until(TimeInterval)
    从现在起的 TimeInterval 有效的时段。例如,.until(3.hours)。这可以用来设置一个将过期的“待办事项”。

函数

  • func toDo(_ task: Task, scope: Scope? = nil, info: [AnyHashable: Any]? = nil)
    在给定范围内标记任务为“待办”,如果已经在该范围内标记为“待办”或已完成,则不会重新标记。如果范围是 nil,则仍会标记为“待办”。
  • func needToDo(_ task: Task) -> Bool
    检查任务是否当前标记为“待办”。
  • func infoForToDo(_ task: Task) -> [AnyHashable: Any]?
    获取与“待办”任务关联的信息。(仅在 toDo(...) 函数中提供时)
  • func lastDone(_ task: Task) -> Date?
    给定任务的最后完成时间戳。
  • func beenDone(_ task: Task, scope: Scope = .appInstall, numberOfTimes: CountChecker = .moreThan(0)) -> Bool
    检查任务是否符合给定要求。
  • func markDone(_ task: Task)
    标记任务为已完成。

要求

  • iOS 8.0+
  • Swift 4.0+
  • Xcode 9.0+

参与贡献

  • 如果您想 贡献,请随时 提交 pull requests
  • 如果您有 功能请求,请 创建问题
  • 如果您发现 错误 或需要 帮助,请 检查旧问题

在参与贡献之前,请查阅 CONTRIBUTING 文件以获取更多信息。

如果您在您的应用中使用了 Ecno,我们非常乐意了解相关信息!请在 twitter 上联系我们。

示例

按照以下 3 个步骤运行示例项目

  • 克隆 Ecno 仓库
  • 打开 Ecno 工作空间并运行 示例 项目。

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。

要安装 Ecno,请在 Podfile 中添加以下行

pod 'Ecno', '~> 3.0'

Carthage

Carthage 是 Cocoa 的一个简单的、分布式的依赖管理器。

要安装 Ecno,只需在 Cartfile 中添加以下行

github "xmartlabs/Ecno" ~> 3.0

作者

变更日志

可在CHANGELOG.md 文件中找到。