TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | Custom |
ReleasedLast Release | Dec 2014 |
由未声明的维护。
依赖项 | |
AFNetworking | ~> 2.1 |
AFOAuth2Client@phoenixplatform | ~> 0.1.1 |
YapDatabase | ~> 2.3 |
Tigerspike Phoenix SDK (TSPhoenix) 是用于Tigerspike Phoenix Platform的iOS SDK。它允许您在Phoenix Platform上构建iPhone / iPad应用程序。通过使用SDK而不是HTTP API,您可以大量节省开发工作量,连接objective-level APIs,并专注于UI。
TSPhoenix是在网络和数据库层之上构建的一个薄层。它包括:所有 Phoenix数据类型模型。它还包含一些辅助器,以简化与Phoenix API的工作。
TSPhoenixClient是SDK的Singleton入口点。它是AFHTTPClient的一个标准子类。它也拥有所有Phoenix模块(身份,媒体,联盟,消息,分析)。
Tigerspike Phoenix SDK (TSPhoenix) for iOS正在积极开发中。因此,API设计可能会在未来改变。这意味着,如果您有一个3-6个月内发布的项目,今天就可以开始使用SDK。
TSPhoenix已经在为新闻阅读器应用程序Fuse提供动力。通过使用SDK,Fuse开发人员将模型,缓存和网络管理工作完全委托给TSPhoenix。这样,他们可以专注于提供杀手级的用户体验,并将数据处理工作留给Phoenix。
如果你想阅读一些 Objective-C 代码,请查看 Source/ 和 Models/ 目录
如果你想知道模型是如何自动生成的,请查看 Generators/ 目录
为什么?你问,为什么 SDK 库中有依赖项?
原因很简单:不要重新发明轮子。我们已经在使用 AFNetworking 处理 HTTP 请求。YapDatabase 是建立在 SQLite 上的稳固的键值数据库。如果我们自己编写网络和数据库,将会消耗大量精力,而且结果也不一定更好。通过利用最好的开源组件,
AFNetworking, ~>2.1
YapDatabase ~> 2.3 数据库(缓存)层在 Phoenix SDK 中。
AFOAuth2Client:提供了 OAuth2,与 Phoenix 身份认证集成。使用 PhoenixPlatform 的这个库分支。
在 - applicationDidFinishLaunching
[TSPhoenixClient setUpWithBaseURL:[NSURL URLWithString:@"https://api.phoenixplatform.com.sg/"]
clientID:@"client_ID"
clientSecret:@"top_secret"
projectID:123];
由于 Phoenix 已部署在许多地区(还有更多),我们使 baseURL 可配置,以允许 TSPhoenix 指向任何地区(.sg、.uk 等)和任何环境(开发、测试、生产)。
[[TSPhoenixClient identity] authenticateWithUsername:self.userField.text
password:self.passwordField.text
success:^(AFOAuthCredential *credential) {
// Token is automatically saved to keychain
// It's also auto restored between app launches
} failure:^(NSError *error) {
// Handle error
}];
NSString *path = @"identity/v1/users/me";
[[TSPhoenixClient sharedInstance] GET:path
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *dict = [(AFJSONRequestOperation *)operation responseJSON];
dict = dict[@"Data"][0];
TSUser *user = [[TSUser alloc] initWithDictionary:dict];
// Do something about the user
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// Handle error
}];
更多示例可在 维基页面 中找到。
SDK 所有模块的单一入口。它是一个标准的 AFHTTPClient 子类,处理所有底层网络流量。[TSPhoenixClient sharedInstance]
所有模块都是共享实例的属性,即 [TSPhoenixClient sharedInstance].identity [TSPhoenixClient sharedInstance].syndicate
Phoenix 身份认证模块,负责 OAuth 登录/注销、加载会员资格等。
Phoenix 交换模块,负责加载数据库文章、将文章交互发送回 Phoenix。
请阅读 Phoenix 入门指南 了解 Phoenix API 的基本知识。对于循序渐进的教程,请参阅 入门
pod 'PhoenixPlatform-iOS-SDK', :git => 'https://github.com/phoenixplatform/phoenix-ios-sdk.git', :branch => 'develop'
在 Prefix.pch 中
#import <TSPhoenix/TSPhoenix.h>
在 AppDelegate.m -appDidFinishLaunching
[TSPhoenixClient setUpWithClientID:…]
TSPhoenix 提供了对 YapDatabase 的即插即用集成。所有模型对象都符合 NSCoding 协议,这意味着你可以选择使用你自己的数据库。
为什么我们选择 YapDatabase,而不是 Core Data/FMDB/SQLite 等?
选择为 TSPhoenix 设计数据库的标准:
我们评估了许多选项,包括Core Data和普通SQLite等。
Core Data不行,因为:a).它强制执行严格的模式,需要版本迁移。b).没有从服务器模型自动生成.xcdatamodel的方法。
普通SQLite非常底层。我们不希望人们在学会使用TSPheonix之前先学习SQL。他们应该讲Cocoa(NSObjects),而不是表、查询等。
来自YapDatabase维基页面
YapDatabase包含两个主要特性
- 一个基于sqlite的集合/键/值存储,用于iOS和Mac(基础)
- 一个插件架构,提供了如视图、辅助索引、全文搜索等高级功能
这个页面完美总结了为什么TSPhoenix需要一个键值数据库。
在过去的几个月里,我们对YapDatabase进行了压力测试,经历了多次版本升级,多次更改模型。YapDB轻松处理了一切。
我们遵循这个Git分支模型。如果您想向我们发送pull request,请遵循相同的模型。