NoskheKit 1.0.1

NoskheKit 1.0.1

Omid Golparvar维护。



NoskheKit 1.0.1

  • Omid Golparvar

نسخه‌کیت

ویژگی‌ها

📱支持iPhone和iPad。

😋美观。

🌓支持暗黑模式。

🥳用户友好。


预览!


这会做什么?!

使用这个微小的库,您可以以列表的形式展示每个版本的变化。同样的,您也可以事先向用户介绍未来的更新!😎

如何使用?

第一步. 安装

将以下语句添加到项目中的 Podfile 文件:

pod 'NoskheKit'

在执行 pod install 命令后,在需要使用的地方,加入 import NoskheKit


第二步. 显示更改

展示变更控制器的主方法具有以下签名:

NoskheKit.presentChangesController(
  from               sourceController : UIViewController,
  withData           versionsData     : NKVersionsData,
  andUIConfiguration uiConfiguration  : NKUIConfiguration
)

该方法的参数如下:

  • 参数 sourceController:类型为 UIViewController,表示源视图控制器。
  • 参数 versionsData:类型为 NKVersionsData。该模型向库提供更改列表的必要信息。
  • 参数 uiConfiguration:类型为 NKUIConfiguration。该模型准备与用户界面相关的设置。通过使用此模型,您可以自定义用户界面。




模型

模型 NKVersionsData

此模型提供用于显示更改列表所需的数据。为此模型的构建,已准备好几种方法


1️⃣构造函数 init?(plistFileConfiguration: PlistFileConfiguration)

使用 PlistFileConfiguration 类型的元素准备数据。实际上,此构造函数接收一个参数,该参数定义了具有变更列表的 Plist 文件的选项。

  • 由于可能不存在文件或未正确配置,因此此构造函数定义为 init?
  • 如果发生错误或出现特定条件,错误消息会在 Console 中打印。
  • 用于有效 Plist 文件的架构如下。如有必要,您可以在项目 Example 中查看 Versions-EN.plist 文件。
Root: Array
- Item 0  : Dictionary
  - number  : String
  - changes : Array
    - Item 0  : String
    - Item 1  : String
    - ...
- ...

2️⃣构造函数 init(from decoder: Decoder)

模型 NKVersionsData 实现了 Decodable 协议。因此,我们可以获取 API 的变更列表,并将接收的数据解码为此模型。

  • 用于此构造函数的有效 JSON 架构如下。
{
  items: [
    {
      number: 'string',
      changes: [
        'string',
        'string',
        ...
      ]
    },
    ...
  ]
}

模型 PlistFileConfiguration

此模型用于考虑Plist文件,以便为显示更改列表准备数据。

  • 此模型的构造函数为 init(bundle: Bundle, fileName: String),其中第一个参数是包,第二个参数是指定的Plist文件名。
  • 为此类型提供了一个default选项,它将使用main包中的Versions文件。

模型 NKUIConfiguration

此模型负责设置用户界面。此模型的特征如下

class NKUIConfiguration {
  var isRightToLeft: Bool = false
  var submitReviewButtonStatus: SubmitReviewButtonStatus = .notExist
  var versionsDisplayConfiguration: VersionsDisplayConfiguration = .init()
}
  • 特征 isRightToLeft:指定视图是否配置为从右到左的语言。
  • 特征 submitReviewButtonStatus:准备“提交评论”按钮的设置。
  • 特征 versionsDisplayConfiguration:此特征指定显示版本的相关设置。

模型 SubmitReviewButtonStatus

实际上是一个enum,具有以下case

  • 选项 notExist:不显示“提交评论”按钮。
  • 选项 exist(configuration: Configuration):“提交评论”按钮显示,并使用configuration准备显示设置。

模型 SubmitReviewButtonStatus.Configuration

此模型如下

class Configuration {
  let title           : String
  var font            : UIFont
  var backgroundColor : UIColor
  var textColor       : UIColor
}
  • Besides title,the rest of the properties have default values.

当前版本显示配置 CurrentVersionDisplayConfigurationOtherVersionDisplayConfiguration

这两个模型用于设置显示版本信息。前者用于显示当前版本的变化,后者用于显示其他版本的变化。

这两个模型结构相似,只有一个区别:前者还有一个用于显示“新特性”的属性。

它们的整体结构如下

class ... {
  var whatsNew     : WhatsNewUIConfiguration? //ONLY in CurrentVersionDisplayConfiguration

  var titleColor   : UIColor
  var titleFont    : UIFont
  var changesColor : UIColor
  var changesFont  : UIFont
}
  • 所有属性都有默认值。

新特性UI配置 WhatsNewUIConfiguration

用于设置“新特性”的显示。它只有两个属性。

struct WhatsNewUIConfiguration {
  var text      : String
  var textColor : UIColor
}

结束。😎