Introduction

Apptonomy is a lightweight mobile framework that integrates a discussion board within your application. It handles user authentication for you, and your customers will be able to interact with eachother by creating threads and commenting. Your community is hosted in our cloud servers, allowing you to modify your community structure in real-time.

The framework establishes a powerful two-way communication channel between developers and customers, making it surprisingly easy to receive feedback, bug reports, comments and suggestions. The platform is also useful for customer support, especially since any user can help answer others' questions.

Getting a Private Key

The Apptonomy SDK connects to your community in the cloud using its own 64-byte private key. Log in to the Developer Dashboard and create a new community to generate a new key, which will look like

oLHoZt59NmRmCD1Wi2Ea74ubNNsJq8aOURduliE8Fvuh8werzSBGW6SJUktktD9n

Download & Installation

The latest Apptonomy SDK can be downloaded from the developer dashboard here. Apptonomy consists of a static library and a resource bundle for Xcode which you can drag & drop onto the project navigator.

Allow Arbitrary Loads

As of iOS 9, applications will refuse unsecured domain connections by default. Since some of the content posted by your users may open unsecured links, your application may block them. You can enable unsecured connections by allowing arbitrary loads in your Info.plist file:

Initialization

Apptonomy provides a singleton manager that must be initialized before being able to access your community. First, you must import the static library:

#import <Apptonomy/Apptonomy.h>
And now you can initialize the shared manager using your community's private key:
[[Apptonomy sharedManager]initializeWithPrivateKey:@"oLHoZt59NmRmCD1Wi2Ea74ubNNsJq8aOURduliE8Fvuh8werzSBGW6SJUktktD9n"];
Apptonomy is now ready to perform user authentication as well as retrieve and submit data to the community forums.

Facebook Integration

Although users can register accounts with an username and password, they can also simply login using the Facebook SDK. Doing so will automatically create a community account that does not require a password to access (although it is possible to set a password afterwards). To enable Facebook, you must download and install the Facebook SDK from https://developers.facebook.com/docs/ios/. The only libraries you require are CoreKit, LoginKit and ShareKit:

You will also need to have a valid Facebook App ID and modify your application's Info.plist file as described here: https://developers.facebook.com/docs/ios/getting-started.

Calling the Forum View

You can let your users browse your community simply by calling the forums View Controller:

[[Apptonomy sharedManager] showForumsWithParent:self andDelegate:nil];

This will attach the forum ViewController to its parent. The user does not need to be authenticated to be able to browse your community:

User Authentication

To create threads and post comments, users will need an account. The authentication ViewController will prompt for the user's credentials whenever they are needed, but you can also invoke it manually using:

[[Apptonomy sharedManager] showAuthenticationWithParent:self andDelegate:nil];

The user's login is written to your own application's persistent storage. Please note that if an user is already authenticated, this call will be dismissed.

Note: If an user logs in via Facebook, an account will still be created. The difference is that it will not have a password, and the only way to log in is using their Facebook ID. However, users can still set a password and will be able to log in with either Facebook or the password itself. The username is autogenerated, but it can be changed as well.

User Settings

The user profile page lets users modify their username and password. They can also setup an email address for recovery purposes, or even link a Facebook profile if there isn't one yet.

Reports & Banning

Both users and guests can report inappropiate content in the forums - this includes threads and comments. All reports can be browsed in the Developer Dashboard. From there, you can delete the reported content or even ban the offending user. Banned users are still capable of browsing the forums' content (just like guests), but are unable to create threads or post comments.



Password Recovery

User accounts that are not linked to a Facebook profile can reset their passwords only if they have an email address already set, which will receive a four digit code to reset their password. The code expires in 30 minutes.

Community Suspension

You may temporarily freeze all interactions with your community by disabling it from the Developer Dashboard. This is useful if you wish to perform any maintenance activities.