RFFeatureToggle 1.0.5

RFFeatureToggle 1.0.5

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间上次发布2017年11月

Dunja Lalic 维护。




  • 作者:
  • Dunja Lalic

关于

A/B 测试框架,可以远程开启或关闭功能,并使更改立即在应用中体现。

使用方法

设置

使用 `params` 参数初始化默认设置,参数包含测试和生产的基准 URL。

NSDictionary *params = @{kRFFeatureToggleBaseURLStringForStagingKey : @"https://staging/",
                         kRFFeatureToggleBaseURLStringForProductionKey : @"https://production/"};

[RFFeatureToggleDefaults sharedDefaultsWithMode:RFFeatureToggleModeProduction params:params];

这里有 3 个方便的方法可以快速入门:

检查功能是否启用

[RFeatureToggle isEnabled:@"feature"];

如果 API 支持在功能内部再嵌套功能,这些可以使用点号来分隔,例如

[RFeatureToggle isEnabled:@"feature.subfeature.subsubfeature"];

刷新所有功能和缓存

[RFeatureToggle refresh];

此方法可以在 `applicationDidBecomeActive:` 或其他合适的时机调用。首次调用后,如果应用一直在前台运行,24 小时后功能会自动刷新。可以设置一个自定义的时间间隔,例如:[RFFeatureToggleDefaults sharedDefaults].refreshTimeInterval = 120.0f;

从缓存中检索所有功能

NSArray *features = [RFeatureToggle allFeatures];

附加信息

监控更新

订阅 RFFeatureToggleUpdatedNotification 以接收更新。只有当功能发生更改时,才会触发通知。

在不同模式之间切换

要切换到测试或生产环境,请使用以下方法

[RFFeatureToggleDefaults switchToMode:RFFeatureToggleModeProduction]

或者,要切换到在初始化时未提供的自定义 URL,有一个方便的方法

[RFFeatureToggleDefaults switchToCustomModeWithBaseURLString:@"https://testURL"]

调用 `"[RFFeatureToggleDefaults sharedDefaults].mode]"` 将返回正在运行的模式(生产、测试、自定义)。

微调

要微调,请查阅 CococaDocs

检查

要检查功能,RFFeature 类中有方便的方法

  • 描述,示例输出
feature2: disabled
  • 递归描述,示例输出
feature2: disabled  
    |_feature3: disabled        
        |_feature5: disabled
        |_feature6: enabled
    |_feature4: enabled

RFFeatureTableViewController

RFFeatureTableViewController 可以列出可以导航的所有特性。它具有刷新控制,以便可以刷新特性,确保存在最新的更改。这用于质量保证目的。

image

这在示例项目中得到了演示。要运行示例项目,请首先在示例目录中运行 pod install

深入了解

除了在 RFFeatureToggle 类中提供的便利方法外,还有基于 Data Mapper 设计模式的 RFFeature 模型-控制器扩展,以及处理持久性和自动更新的 RFFeatureCache 类。示例

处理获取所有特性时的错误

[RFFeature fetchFeaturesUsingBlock:^(BOOL succeeded, NSError *error) {
    if (!succeeded)
    {
        //handle error
    }
}];

检查上次成功更新日期

NSTimeInterval secondsSinceLastSuccessfulUpdate = [RFFeatureCache timeIntervalSinceLastSuccessfulUpdate];
if  (secondsSinceLastSuccessfulUpdate > 120.0f)
{
    //do something
}

日志记录

可以通过调用 [RFFeatureToggle setLoggingLevel:]; 来配置日志,使用预定义的日志级别之一

  • RFFeatureToggleLogLevelOff: 不记录任何内容
  • RFFeatureToggleLoggingLevelError: 记录所有错误
  • RFFeatureToggleLoggingLevelWarn: 记录警告和错误
  • RFFeatureToggleLoggingLevelInfo: 记录信息性、警告和错误消息
  • RFFeatureToggleLoggingLevelDebug: 记录所有调试、信息性、警告和错误消息
  • RFFeatureToggleLoggingLevelVerbose: 记录详细诊断、信息性、警告和错误消息

CocoaLumberjack

如果可用,RFFeatureToggle 将其日志直接发送到 CocoaLumberjack。你所需要做的只是确保在导入 RFFeatureToggle 之前导入 CocoaLumberjack,如下

#import <CocoaLumberjack/CocoaLumberjack.h>
#import <RFFeatureToggle/RFFeatureToggle.h>

要求

  • 一个返回特定格式功能列表的服务器。有关响应的示例,请参阅 组件
  • iOS7+

安装

RFFeatureToggle 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "RFFeatureToggle"

文档

要获取完整文档,请参阅 CocoaDocs

许可

RFFeatureToggle 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。