Bow 是一个 Swift 的跨平台库,用于类型化函数式编程。
文档
所有文档和 API 参考都在我们的网站上发布 我们的网站。一些关于库关键方面的链接
模块
Bow 被分割成多个模块,可独立使用。这些模块包括
Bow
:核心库。包含高阶类型模拟、函数操作工具、类型类、数据类型、单子转换器以及原始类型的实例。BowOptics
:用于操作不同光学模块。BowRecursionSchemes
:用于操作递归方案的模块。BowFree
:用于操作自由单子的模块。BowGeneric
:用于操作泛型数据类型的模块。BowEffects
:用于操作效果的模块。BowRx
:提供与 RxSwift 集成的模块。
还有一些用于测试的模块
BowLaws
:核心模块中类型类的定律。BowOpticsLaws
:光学的定律。BowEffectsLaws
:效果的定律。BowGenerators
:用于核心模块中数据类型基于属性的测试的生成器。BowFreeGenerators
:用于 BowFree 中数据类型基于属性的测试的生成器。BowEffectsGenerators
:用于 BowEffects 中数据类型基于属性的测试的生成器。BowRxGenerators
:用于 BowRx 中数据类型基于属性的测试的生成器。
Bow 可通过 Swift Package Manager、CocoaPods 和 Carthage 使用。
Swift 包管理器
从 Xcode 11 开始,您可以使用 IDE 中的集成工具,借助 Swift 包管理器将依赖项导入到您的项目中。您只需要提供仓库 URL:[https://github.com/bow-swift/bow.git](https://github.com/bow-swift/bow.git)。对于更早版本的 Xcode,创建一个类似于下一个文件的 Package.swift
文件,并按照您的需要使用依赖项。
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "BowTestProject",
dependencies: [
.package(url: "https://github.com/bow-swift/bow.git", from: "{version}")
],
targets: [
.target(name: "BowTestProject",
dependencies: [
"Bow",
"BowOptics",
"BowRecursionSchemes",
"BowFree",
"BowGeneric",
"BowEffects",
"BowRx"]),
.testTarget(name: "BowTestProjectTests",
dependencies: [
// Type class laws
"BowLaws",
"BowOpticsLaws",
"BowEffectsLaws",
// Generators for PBT with SwiftCheck
"BowGenerators",
"BowFreeGenerators",
"BowEffectsGenerators",
"BowRxGenerators"])
]
)
要构建它,只需运行:
$ swift build
CocoaPods
您可以将每个 Bow 模块作为一个独立的库来使用。您可以在您的 Podfile 中添加以下行以方便使用。
pod "Bow", "~> {version}"
pod "BowOptics", "~> {version}"
pod "BowRecursionSchemes", "~> {version}"
pod "BowFree", "~> {version}"
pod "BowGeneric", "~> {version}"
pod "BowEffects", "~> {version}"
pod "BowRx", "~> {version}"
测试法
pod "BowLaws", "~> {version}"
pod "BowOpticsLaws", "~> {version}"
pod "BowEffectsLaws", "~> {version}"
SwiftCheck 的基于属性的测试生成器
pod "BowGenerators", "~> {version}"
pod "BowFreeGenerators", "~> {version}"
pod "BowEffectsGenerators", "~> {version}"
pod "BowRxGenerators", "~> {version}"
Carthage
Carthage 会下载整个 Bow 项目,但会为每个可重用模块编译单独的框架,您可以单独使用。将此行添加到您的 Cartfile 中。
github "bow-swift/Bow" ~> {version}
贡献
如果您想为这个库做出贡献,您可以通过检查 Issues 来查看一些待完成的任务。
如何运行项目
在 Xcode 11(或更新版本)中打开 Bow.xcodeproj
,您就可以准备开始了。Bow 使用 Swift 包管理器来处理其依赖项。
如何运行文档项目
- 进入目录
contents/Documentation
。 - 运行
pod install
以安装所有依赖项。 - 打开
Documentation.xcworkspace
并运行项目。
了解更多信息,请参阅我们的贡献指南。
如何创建新版本
您可以通过运行 bundle exec fastlane release version_number:
创建新版本。例如,bundle exec fastlane release version_number: 0.7.0
。
以下步骤将被执行
- 更新
*.podspec
文件中的version
。 - 在
CHANGELOG
文件中添加信息创建标签。 - 部署 podspec 文件并使其公开可用。
许可协议
Copyright (C) 2018-2020 The Bow Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://apache.ac.cn/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.