YMKit 3.2.0

YMKit 3.2.0

Yakov Manshin 维护。



YMKit 3.2.0

  • 作者
  • Yakov Manshin

YMKit

Build Status — master Build Status — dev

YMKit 是一个工具集合,可以加快并简化 iOS 应用开发。

该框架提供了一系列小巧的技巧,例如从 HEX 值初始化 UIColor,字符串本地化,日期和数字格式化等。

使用示例

以下是一些如何让 YMKit 让您的工作更简单的示例。

本地化字符串

当您需要在运行时用本地化值替换可本地化的字符串键时,通常的做法是这样做

// Without arguments
let helloWorld = NSLocalizedString("HelloWorldKey", comment: "")

// With arguments
let greeting = String(format: NSLocalizedString("LocalizableGreetingKey", comment: ""), firstName, lastName)

使用 YMKit,会更简洁和简单

// Without arguments
let helloWorld = "HelloWorldKey".localized

// With arguments
let greeting = "LocalizableGreetingKey".localized(with: firstName, lastName)

UIColor 从 HEX

当您需要解析 HEX 颜色字符串时(例如 #ff4600),情况变得如此糟糕,我甚至不想展示。

然而,使用 YMKit,只需要一行代码即可获取 UIColor 实例。

let myColor = UIColor(hexString: "#ff4600")

此单个初始化器与三位(#fff)和六位(#aeaeae)代码兼容;带或不带 # 字符。

UIColor提取单个RGB通道

如果你曾经需要从UIColor中提取单个通道,那么你肯定知道这是一场混乱,变量只用一次,输入-输出参数等等。

YMKit将使你的生活变得更轻松——更加轻松

let green = myColor.getRGBComponent(.green)

CMYK支持将在稍后推出。

数字格式化

针对不同区域格式化数字(例如价格)并非易事。幸运的是,你不必记住所有国家的格式——Foundation的NumberFormatter会帮你处理。不幸的是,使用它很快就会变得过于啰嗦。

YMKit采取了一种更声明性的方法。

假设你需要展示一个根据用户的区域显示格式化、最多保留两位小数的欧元价格。以下是如何使用NumberFormatter实现的

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .currency
numberFormatter.locale = .current
numberFormatter.currencyCode = currencyCode
numberFormatter.minimumIntegerDigits = 1
numberFormatter.minimumFractionDigits = 0
numberFormatter.maximumFractionDigits = 2

let priceString = numberFormatter.string(from: NSNumber(value: myItem.price))

以下是使用YMKit的实现方式

let priceString = myItem.price.getBasicPriceString(maxFractionDigits: 2, currencyCode: myItem.currencyCode)

当然还有许多其他自定义选项:"有效数字"、"分组分隔符"和货币符号字面量只是其中的几个例子。如果这些还不够,你甚至可以使用一个闭包并手动设置剩余的属性(如上面的第一个例子所示):使用起来会更方便,因为你不必手动创建和管理NumberFormatter对象的生命周期。

安装

有多种方法可以安装YMKit并保持其更新。

Swift包管理器

将YMKit添加到项目中最简单的方法是使用Swift包管理器(SPM)。Xcode 11已经内置了SPM客户端,因此你可以使用GUI。点击文件Swift包添加包依赖…,将YMKit仓库URL(https://github.com/yakovmanshin/YMKit)粘贴到搜索字段中,并选择首选更新策略(大多数使用中更新到下一个主要版本应该没问题)。

Xcode 将会不定时检查符合指定更新策略的新版本。您始终可以手动检查更新: 文件Swift 包更新到最新包版本

如果您更喜欢手动操作 Package.swift 文件,或者需要在您的 Swift 包中使用 YMKit 作为依赖项,请将以下条目添加到 Package.swift 文件中的 dependencies 数组中。

.package(url: "https://github.com/yakovmanshin/YMKit.git", from: "3.0.0")

如果您想了解更多关于 Swift 包和 SPM 的信息,可以参考这个 WWDC 会话。

CocoaPods

或者,您可以使用 CocoaPods 来安装 YMKit。如果您以前从未使用过 CocoaPods,请观看这个详细(并富有趣味)的 Google 视频教程,了解如何安装和使用此工具。

要安装 YMKit,请将以下内容添加到您的 Podfile 中

pod 'YMKit', '~>3.0'

在您的项目目录中运行以下命令以安装新添加的库

pod install

从现在开始,请使用创建/更新的 .xcworkspace(而非 .xcodeproj)来处理您的应用程序。

二进制 XCFramework

XCFramework 是框架分发的二进制格式,它解决了二进制框架最常见的麻烦问题:架构不兼容。一个包包含所有受支持架构的版本:物理设备(armv7arm64)和模拟器(i386x86_64)。有关二进制框架和 XCFramework 的更多信息,请参阅这个 WWDC 会话。

您可以在 版本发布页面 中找到从 v2.0.0 版本开始附加到 YMKit 发布的二进制 XCFramework 文件。要使用这些文件之一,只需将其解压并将 XCFramework 包拖动到目标 通用 设置中的 框架、库和嵌入式内容 部分。

请注意,目前 XCFramework 没有自动更新功能。每次发布新版本时,您都必须重复上述步骤。

通用使用提示

与所有框架一样,您需要在要使用其方法的文件中导入 YMKit。您可能之前已经做过这件事:最简单的一个例子就是 UIKit。建议将所有导入语句放在代码文件顶部,但实际上您可以在任何地方做。无论如何,只需在您的 .swift 文件中添加以下内容

import YMKit

这里有一个专业提示。您可以在项目中一次性激活所有内置类型的扩展(例如 DateUIColorString 等)—to do it, import YMKit in AppDelegate.swift

// AppDelegate.swift

import UIKit

// Import YMKit here:
import YMKit

// That's it!

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
// ...

这种修改不能与在YMKit中声明的类型一起使用,例如 YMFormatter:要使用它们,你还是需要在单个代码文件中导入YMKit。

深入文档

我的最终目标是 Cover 100% 的类型、属性和方法,提供准确、详尽和广泛的文档。目前,这个比例接近 90%。

要查看给定类型、属性或方法的文档,只需选择其名称的选项,就会出现熟悉的弹出窗口。当然,您也可以浏览源文件。

感谢 Jazzy,YMKit 的文档也可在kit.ym.dev 上在线查看。然而,它仅针对最新发布版本有效。