CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.
TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | Apache 2 |
ReleasedLast Release | Feb 2019 |
Maintained by Rami Amar, Integrations team.
Integrating the Alooma-iOS library can be done in a few simple steps, using CocoaPods.
Podfile
in the root directory of your projectpod "Alooma-iOS"
pod install
in the root directory of your project.<your-project>.xcworkspace
)The Alooma-iOS library is a modified version of the Mixpanel-iphone library, trimmed down to the bare event tracking necessities.
To integrate Alooma-iOS, you need to be using Xcode 5 and a Base SDK of iOS 7.0. The library will work with deployment targets of iOS 6.0 and above.
To use the Alooma-iOS library, you must first initialize it with the hostname of your Alooma endpoint, and your token. Since this should be done only once, it makes sense to initialize Alooma-iOS when your app finishes launching:
#import <Alooma-iOS/Alooma.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/* ... */
[Alooma sharedInstanceWithToken:@"<your Alooma API token>" serverURL:@"<your Alooma endpoint>"];
return YES;
}
Once initialized, you can use the Alooma-iOS library anywhere in your code just by calling the sharedInstance
method:
Alooma *alooma = [Alooma sharedInstance];
To send an event to Alooma, you can stick to the Mixpanel convention of track:properties:
, or you can use the more free-form trackCustomEvent:
to send a JSON serializable NSDictionary object.
As we mentioned, Alooma-iOS is forked from Mixpanel, therefore it supports all of the methods implemented by the Mixpanel library:
track:
track:properties:
timeEvent:
registerSuperProperties:
& registerSuperPropertiesOnce:
identify:
flush
& reset
Basic event tracking can be implemented with the following code:
Alooma *alooma = [Alooma sharedInstance];
// Track an event just with a type
[alooma track:@"Event-type1"];
// Track an event with a type & properties
[alooma track:@"Event-type2" properties:@{
@"prop1": @"abc",
@"prop2": 123
}];
Using these methods will send events in the following format:
{
"event": "Event-type2",
"properties": {
"prop1": "abc",
"prop2": 123,
/*
additional properties added by the library:
distinct_id, $os, time, sending_time, $model
$manufacturer, $wifi, $screen_width,
$screen_height, ...
*/
}
}
Documentation of the rest of the Mixpanel provided functions can be found on the Mixpanel website.
In case you haven't been using Mixpanel, and all you want to do is send custom JSON objects, you can use the following snippet:
Alooma *alooma = [Alooma sharedInstance];
[alooma trackCustomEvent:@{
@"custom-field1": @"event-type",
@"custom-field2": @"abc",
@"custom-field3": 123
}];
Using this method will send events in the following format:
{
"custom-field1": "event-type",
"custom-field2": "abc",
"custom-field3": 123,
"properties": {
/*
additional properties added by the library:
distinct_id, $os, time, sending_time, $model
$manufacturer, $wifi, $screen_width,
$screen_height, ...
*/
}
}
Alooma-iOS adds additional properties to each event:
The Alooma-iOS stores events in an internal queue of events, to be sent when the device is online. The queue has a fixed size of 500 events. If the device is offline and the queue fills up, the 501th event will cause the 1st (oldest) event to be popped from the queue and discarded.
To run the example project, clone the repo, and run pod install
from the Example directory.
Open the SampleApp.xcworkspace
and run the app.
Alooma, [email protected]
Alooma-iOS is available under the Apache v2 license. See the LICENSE file for more info.