Biome 2.1.0

Biome 2.1.0

Nick DiZazzo 维护。



Biome 2.1.0

  • ndizazzo

当前状态

Version Downloads Supported Platforms License Platform BuddyBuild

什么是 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。

安装

手动安装

为了正确编译项目

  1. Biome.xcodeproj 拖动到您的项目中
  2. 转到您的目标设置,在“嵌入式二进制文件”部分下按“+”,选择 Biome.framework
  3. @import Biome
  4. 当在 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(...)来注册它们。这会做几件事情

  1. 将其添加到类似类型的Biome的管理组中。每个组允许一个唯一标识的Biome。
  2. 将其设置为管理它的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 不依赖于任何第三方库。它设计得很轻量,不会给你的项目增加很多开销。

贡献

如果您有想法或喜欢这里看到的内容,并想支持该项目,您可以

  • 让人们知道这个库的存在🚀传播这个词🚀)
  • 贡献代码,问题和拉取请求

问题 & 问题

如果您有问题或遇到困难,您应该

文档

文档以 Xcode 快速帮助的形式存在。请参阅 Apple 的文档 了解如何编写快速帮助文档。

或者您可以研究 BiomeDemo 项目以通过实例学习。

许可

Biome 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。