当前状态
什么是 Bio-me?
Biome 是一种简单的方法,用于在开发应用程序时管理不同环境中可能需要使用的变量集合。
开发人员面临的一个问题是,需要创建多个构建来测试他们的应用程序在不同环境中的功能。Biome 通过在运行时提供切换配置的机制,旨在减少需要进行的重构建数量。
Bi-o-me? Bi-om-ee?
不。是 Bi-ohm。
什么是“生态”?
根据定义
名词 生态学
生物群落 /ˈbaɪoʊm/ 是由具有相似气候特征的植物和动物组成的一种形成物,可以在多个大陆范围内找到。
根据我们的应用
生物群落是一系列变量和设置集合,由于具有相似的环境而具有共同特征,可跨越多个应用程序找到。
概念
管理者将同样类型的生物群组织成组,每个组最多只能有一个“活跃”的生物群。您可以命令 BiomeManager
切换到同一 BiomeGroup
内的不同 Biome
,管理者会通知提供的代理。
生物群
框架中最小概念单元——此对象定义了一组属性,其值在任何时间都可以与不同的值集合之一进行交换。
生物群组
用于管理类似类型的生物群对象的容器。生物群组提供存储生物群的功能,以及在该组中维护一个“当前活跃”的生物群。您不需要自己创建或管理组——BiomeManager
会自动处理。
生物群管理者
注册和跟踪生物群对象的通用接口。
支持
- Xcode 8.0 / Swift 4.0
- iOS >= 8.0(作为 嵌入式 框架使用)
- tvOS >= 9.0
- macOS >= 10.10
遇到运行演示版本遇到困难吗?
BiomeDemo/BiomeDemo.xcodeproj
是 iOS 的演示项目。- 确保您正在运行的 Xcode 版本是受支持的。
- 确保您的项目支持 Swift 4.0。
安装
手动安装
为了正确编译项目
- 将
Biome.xcodeproj
拖动到您的项目中 - 转到您的目标设置,在“嵌入式二进制文件”部分下按“+”,选择 Biome.framework
@import Biome
- 当在 Objective-C 项目中使用 Swift 时
- 您需要导入您的桥接头。通常它是 "YourProject-Swift.h"。
- (Xcode 8.1 及更早版本) 在“构建选项”下,勾选“嵌入式内容包含 Swift 代码”
- (Xcode 8.2+) 在“构建选项”下,勾选“始终嵌入 Swift 标准库”
CocoaPods 安装
将以下内容添加到您的 Podfile 中
pod 'Biome'
并运行 pod install
Carthage 安装
Biome 包含 Carthage 预构建的二进制文件。
github "ndizazzo/Biome" == 2.0.0
github "ndizazzo/Biome" ~> 2.0.0
为了构建新版本的二进制文件,请使用 carthage build --no-skip-current && carthage archive Biome
。
用法
在你的项目中实现Biome
要实现Biome,首先将Biome
导入你想要使用它的相关文件。
然后,通过定义一个符合Biome
协议的struct
来创建一个Biome。为您想要的对象添加尽可能多的字段,并实现keyCount
属性以返回对象上的属性数量。
一旦您有了Biome
对象,请使用BiomeManager.register(...)
来注册它们。这会做几件事情
- 将其添加到类似类型的Biome的管理组中。每个组允许一个唯一标识的Biome。
- 将其设置为管理它的
BiomeGroup
的当前Biome
。这个current
属性告诉您哪个Biome当前是活动的。
最后,通过扩展你的一个类来接收Biome切换时的事件
extension MyClass: BiomeManagerDelegate {
func switched(to biome: Biome?) {
print("The active biome has been switched to '\(to.name)'")
}
}
使用该代理方法做任何事情:清空数据库并从不同环境中重新加载数据,重新查询API获取新数据,刷新视图控制器的外观等。
功能路线图
显示Biome键名/值
- SR-7897 建议合成的
Codable
符合性也应该可选地生成CaseIterable
符合性。这将允许每个Biome
自动生成keyCount
,并且allItems
反射 Biome 的实际属性。
如果这项改进进入提案阶段,Biome.framework 可以添加对其的支持,允许开发者用这个库做更强大的事情;例如,它们可能会在某种类型的 UICollectionView / UITableView 中列出以供显示。
运行时属性修改
- 有时,开发者可能需要在编译时而不是编译前修改属性。这项功能允许开发者做类似调整动画时间之类的操作。
故障排除
无法编译?
- 请注意,安装从 CocoaPods 或 Carthage 中编译的框架与复制源代码之间的区别。
- 请重新阅读使用说明部分。
- 搜索问题。
- 在问题部分礼貌地提问。
其他问题/功能请求
- 搜索问题。
- 在问题部分礼貌地提问。
其他
第三方软件
Biome 不依赖于任何第三方库。它设计得很轻量,不会给你的项目增加很多开销。
贡献
如果您有想法或喜欢这里看到的内容,并想支持该项目,您可以
- 让人们知道这个库的存在
🚀 传播这个词🚀 ) - 贡献代码,问题和拉取请求
问题 & 问题
如果您有问题或遇到困难,您应该
- 确保您正在使用库的最新版本。请检查 版本部分。
- 在 Stack Overflow 上使用
ios-biome
标签搜索或打开问题 - 搜索已知问题以查找您的问题(未解决和已解决)
- 创建新问题(请先搜索已知问题并避免创建重复问题)
文档
文档以 Xcode 快速帮助的形式存在。请参阅 Apple 的文档 了解如何编写快速帮助文档。
或者您可以研究 BiomeDemo 项目以通过实例学习。
许可
Biome 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。