ADNKit 是一个全新的 Objective-C 框架,用于构建 App.net iOS 和 OS X 应用程序。指导设计原则是:
注意:此框架的基本核心结构基于 Matt Rubin 在他 AppDotNet 项目中的出色架构工作。
如果您想在列表上添加应用程序,请提交一个问题!
有关完整文档,请参阅 wiki。
ADNKit 使用子模块作为其依赖项。在克隆仓库后,在尝试构建框架之前,请从顶级目录运行 git submodule update --init --recursive
。还有一个包含最新稳定二进制发布版(适用于 Mac OS X 和 iOS)和头文件的 Release 文件夹。
多亏了 Ash Furrow,ADNKit 也可通过 CocoaPods 获取。
对于 iOS 应用程序,请确保您已经将包含 ADNKit 头文件文件夹的文件夹添加到您的头文件搜索路径中。此文件夹可以从 Release/ADNKit 复制,或者如果 ADNKit 是项目中作为子模块,您可以直接指向该位置(即路径可能类似于 'Vendor/ADNKit/Release/ADNKit')。另外,将 Release 文件夹本身添加到头文件和库搜索路径中。
还要确保将 -all_load
和 -ObjC
链接器标志添加到“其他链接器标志”。如果 ADNKit 已作为子模块添加,并且您计划使用 Release 文件夹中的二进制构建,则需要将 Release 文件夹本身添加到您的头文件搜索路径中(非递归)。这样做将允许 ADNKit.h 使用的格式在您的项目中工作。
ADNKit 需要使用 OS X 10.7 或更高版本,或 iOS 5.0 或更高版本。通过使用优秀的 Deploymate 工具确保操作系统版本兼容性。
有关如何使用 ADNKit 进行认证的更多信息,包括如何设置和实现用户名/密码和 OAuth 认证,请访问此处。
如果您正在编写 iOS 应用程序,请务必查看 ADNKit 提供的功能,这些功能可以帮助您在 iOS 上更轻松地实现身份验证[访问功能](https://github.com/joeldev/ADNKit/wiki/Easy-authentication-for-iOS-apps)。
/* this assumes you have two text fields, usernameField and passwordField */
// ask for permission to see user information and send new Posts
ANKAuthScope requestedScopes = ANKAuthScopeBasic | ANKAuthScopeWritePost;
// handler to call when finished authenticating
id handler = ^(BOOL success, NSError *error) {
if (success) {
NSLog(@"we are authenticated and ready to make API calls!");
} else {
NSLog(@"could not authenticate, error: %@", error);
}
};
// authenticate, calling the handler block when complete
[[ANKClient sharedClient] authenticateUsername:usernameField.text
password:passwordField.text
clientID:@"xxxxxx"
passwordGrantSecret:@"zzzzzz"
authScopes:requestedScopes
completionHandler:handler];
一旦成功响应完成,即可立即开始使用 API 的其余部分。
现在我们已经通过 App.net 完成认证,让我们发表第一个帖子
[[ANKClient sharedClient] createPostWithText:@"Hello, world!" completion:^(ADNPost *post, NSError *error) {
NSLog(@"post created! %@", post ?: error);
}];
就这么简单!您应该在自己的流中看到来自自己的新帖子,以及在控制台中的 Post 对象!
您也可以通过以下方式实现相同的操作
ADNPost *post = [[ADNPost alloc] init];
post.text = @"Hello, world!";
[[ANKClient sharedClient] createPost:post completion:^(ADNPost *post, NSError *error) {
NSLog(@"post created! %@", post ?: error);
}];
直接使用模型对象可以让您完全设置它们(例如,设置 post.annotations)。不是每个设置都有一个便捷方法,因此更复杂的情况应通过创建模型对象、按您的需求设置它,然后将它直接传递给 ANKClient 方法来处理。
有关如何支持多个用户账户的文档和示例代码可在此处找到 [链接](https://github.com/joeldev/ADNKit/wiki/Supporting-multiple-logged-in-Users)。总结如下:不要使用 ANKClient 的 sharedClient,而是为每个用户分配和初始化自己的客户端对象。
在 wiki 上有许多值得阅读的文章和文档 [访问wiki](https://github.com/joeldev/ADNKit/wiki)。
ADNKit 使用以下依赖项
BSD 3-Clause License
版权所有 (C) 2013, Joel Levin。保留所有权利。
以下条件成立,允许以源代码形式或二进制形式重新分发或使用,无论是否修改
- 源代码重分发必须保留上述版权声明、本条件列表以及以下免责声明。
- 二进制形式的重新分发必须在文档和/或其他与分发一起提供的材料中复制上述版权声明、本条件列表和以下免责声明。
- 未经事先书面许可,不得使用 ADNKit 或其贡献者的姓名来认可或推广源自本软件的产品。
本软件由版权所有者和贡献者“按原样”提供,并不承担任何明示或暗示的保证,包括但不限于适销性和适用于特定目的的隐含保证。在任何情况下,版权所有者或贡献者不对因使用本软件而造成的任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的丧失;或业务的中断)承担责任,即使已通知了此类损害的可能性。