ADNKit is a brand new Objective-C framework for building App.net iOS and OS X applications. The guiding design principles are:
- Simple and powerful API
- As much heavylifting as possible is done for you (aka, tons of convenience methods)
- 100% App.net API and features support
- No external dependencies other than AFNetworking
- Multi-user support
Note: the basic core structure of this framework is based off of Matt Rubin's fantastic architectural work in his AppDotNet project.
- [Passport by App.net] (http://blog.app.net/2013/05/08/app-net-passport-for-ios-is-now-available/) (first-party application).
- [Climber] (http://climbr.co) by [@rrbrambley] (https://alpha.app.net/rrbrambley)
- [Sprinter] (http://sprintr.co) by [@rrbrambley] (https://alpha.app.net/rrbrambley)
- [Orbit] (http://orbitapp.net) by [@joeldev] (https://alpha.app.net/joeldev) and [@lavoy] (https://alpha.app.net/lavoy)
- [Twentysecs] (http://twentysecs.com) by [@ctarda] (https://alpha.app.net/ctarda)
- [Stream] (http://getstreamapp.net) by [@kolin] (https://alpha.app.net/kolin) and [@christian] (https://alpha.app.net/christian)
- Dot by [@nerd] (https://alpha.app.net/nerd) and [@amc] (https://alpha.app.net/amc)
- Dayspring by [@nerd] (https://alpha.app.net/nerd) and [@amc] (https://alpha.app.net/amc)
- [Ohai] (http://ohaiapp.net/) by [@stevestreza] (https://alpha.app.net/stevestreza)
- Multiple unannounced projects
Please file an issue to get your app added if you'd like to be on the list!
Please see the wiki for full documentation.
ADNKit makes use of submodules for its dependency. After cloning the repo, make sure to run git submodule update --init --recursive from the top level before trying to build the franework. There is also a Release folder containing the latest stable binary release (for both OS X and iOS) and headers.
ADNKit is also available via CocoaPods, thanks to [Ash Furrow] (https://alpha.app.net/ashfurrow).
For iOS apps, make sure that you have added the folder containing the ADNKit headers folder to your header search paths. This folder can either be copied from Release/ADNKit or you can point directly to that location if ADNKit is a submodule in your project (aka, path would be something like 'Vendor/ADNKit/Release/ADNKit'). Additionally, add the Release folder itself to both header and library search paths.
Also make sure to add the -all_load and -ObjC linker flags to Other Linker Flags. If ADNKit has been added as a submodule and you plan to use a binary build from the Release folder, you need to add the Release folder itself to your header search paths (as non-recursive). Doing so will allow the <ADNKit/header.h> format used by ADNKit.h to work in your project.
ADNKit requires OS X 10.7+ or iOS 5.0+. OS version compatibility is ensured by using the wonderful Deploymate tool.
Find more information about authentication with ADNKit, including how to set up and implement both Username/Password and OAuth authentication.
If you are writing an iOS app, be sure to check out the features ADNKit provides to make auth easier on iOS.
/* 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];