Bow是一个Swift中的类型函数式编程的跨平台库。
文档
所有文档和API参考都发布在我们的网站上https://bow-swift.io/。一些指向库关键方面的链接
模块
Bow分为多个模块,这些模块可以独立使用。这些模块包括:
Bow
:核心库。包含高阶类型模拟、函数操作工具、类型类、数据类型、单子变换和原始类型的实例。BowOptics
:处理不同光学模块。BowRecursionSchemes
:处理递归方法的模块。BowFree
:处理自由单子的模块。BowGeneric
:处理泛型数据类型的模块。BowEffects
:处理效果的模块。BowRx
:提供与RxSwift整合的模块。
还有一些用于测试的模块
BowLaws
:核心模块中类型类的定律。BowOpticsLaws
:光学定律。BowEffectsLaws
:效果定律。BowGenerators
:为核心模块中的数据类型提供基于属性的测试生成器。BowFreeGenerators
:为BowFree中的数据类型提供基于属性的测试生成器。BowEffectsGenerators
:为BowEffects中的数据类型提供基于属性的测试生成器。BowRxGenerators
:为BowRx中的数据类型提供基于属性的测试生成器。
Bow可以通过Swift包管理器、CocoaPods和Carthage获取。
Swift包管理器
从Xcode 11开始,您可以使用IDE中的集成与Swift Package manager一起,将依赖项引入到您的项目中。您只需要存储库URL: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模块消费为一个Pod。您可以在方便时将这些行添加到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}
贡献
如果您想为此库做出贡献,请查看问题以了解一些待办任务。
如何运行项目
在Xcode 11(或更高版本)中打开Bow.xcodeproj
,您就可以开始了。Bow使用Swift Package Manager来处理其依赖。
如何运行文档项目
- 转到目录
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.