CocoaBloc 1.0.8

CocoaBloc 1.0.8

测试测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年10月

John HeatonMark GlagolaDavid WarnerDavid Warner 维护。



CocoaBloc 1.0.8

  • John Heaton,Mark Glagola,David Warner 和 Josh Holat

CocoaBloc 允许任何 Cocoa 开发者通过预构建的功能和模型,即时访问 StageBloc API。因此,它应该允许在移动应用程序中更容易、更快地使用 StageBloc API 进行开发。CocoaBloc 有两个元素,API 和 UI 元素。

设置

CocoaBloc 可以通过 CocoaPods 简单地添加到任何项目中。只需将 CocoaBloc pod 添加到您的 Podfile,然后运行 pod install

pod "CocoaBloc", :git => "https://github.com/stagebloc/CocoaBloc.git"

一旦源代码在您的项目中,以下一行代码就足够使 CocoaBloc 准备就绪。可以在 StageBloc 后端的开发者部分内创建客户端 ID 和密钥。如果您打算让用户登录以进行认证请求,还可以使用 OAuth 重定向 URI。这些内容每个应用程序一次。

[SBClient setClientID:@"client_id" clientSecret:@"client_secret" redirectURI:@"my_app_uri://"];

关于依赖项和先决条件

ReactiveCocoa

CocoaBloc 广泛使用了出色的 ReactiveCocoa (RAC),并且实际上所有 API 客户端 (SBClient) 方法都不会自己发出请求,而是使用输入参数来组成一个 "冷" RACSignal,当订阅该信号时,会执行网络请求、验证、反序列化和将错误或整洁的模型对象传回。以这种方式构建我们的 API 使其具有对 API 请求、序列化作业等事物执行非常有用的转换、链接、限制等的能力。

Mantle

所有的 JSON<~>ObjC 模型映射和转换都由 Mantle 处理。因此,您会发现模型可以轻松地转换回 JSON,并且它们具有 MTLModel 子类的一切方法。

AFNetworking

该框架已成为考虑异步处理现代 web API 的黄金标准。我们还利用了 AFNetworking 的某些扩展,将其桥接到 ReactiveCocoa 世界中,这为我们操作客户端对象的核心提供了支持。

那么,我需要了解什么呢?

阅读 RAC 文档。真的。内容不多,但如果不熟悉,它将帮助您了解 RAC 和与之相伴的函数式响应式思维方式。

使用说明

要使用 CocoaBloc 进行未认证请求,或者为了在开发期间测试使用静态令牌的认证请求,你所需要做的只是实例化一个新的客户端。

// Creates an unauthenticated client. This client can still be used to access API
// endpoints that do not require authentication (read-only, public data).
// NOTE: You may set the OAuth token of this client manually for testing purposes
SBClient *client = [SBClient new];

要为 StageBloc 用户获取一个认证客户端,可以使用我们预配置的 OAuth 视图控制器,允许用户在 StageBloc 网站上(内嵌网页视图)安全登录,然后提供令牌。我们使用此令牌来构建一个具有以下功能的 SBClient

  1. 该令牌的引用
  2. 一个当前登录用户的已填充分页对象
  3. 访问以进行任何认证请求
SBAuthenticationViewController *authVC = [SBAuthenticationViewController new];

// Subscription to this presentation signal will show the view controller.
// Cancellation or completion of the subscription will dismiss it.
// Upon success, the signal will send a next value of the authenticated client.
  @weakify(client);
  [[[authVC presentFromParent:self.window.rootViewController]
      flattenMap:^RACStream *(NSString *authorizationCode) {
          @strongify(client);
          return [client logInWithAuthorizationCode:authorizationCode];
      }]
      subscribeNext:^(SBUser *loggedInUser) {
          // Success
      }
      error:^(NSError *error) {
          // Handle error
      }
      completed:^{
          // Signal completed. This will happen if there is no error, but if no
          // next value has been sent yet, this means that the
          // user pressed cancel and dismissed log in view.
      }];

文档

在每个构建过程中,使用 appledoc 生成从我们的头部注释中的 docset。强制要求您文档化框架中所有的公有类和方法。生成的文档文件可以轻松地导入到 Dash 中,每次构建都会提供即时更新的、风格仿苹果的、可搜索/索引的文档,无需额外努力。

Dash 设置

如果您是 Dash 的用户,这是 OS X 上出色的文档查看器应用程序,您可以导入这个动态 docset,并始终从上次构建获取最新的文档。

只需按 + 按钮,导航到 <this-repository>/Doc 并选择 docset(您至少需要编译一次以使其出现)。现在,您有了一些像苹果一样优良的文档可以工作,而不是要去查找头文件。

贡献

CocoaBloc 将随着 StageBloc API 的发展而扩展,理论上在任何时候都应实现所有可用的 API 端点。如果您愿意贡献并帮助实现这一目标,可以查看 Guidelines.txt 文件!