Working with Malcom library in iOS

I’ve been working with  Malcom library for quite some time at work, but I decided to use it for personal apps lately too.

It’s what I call a  problem-solver library , because with only one integration you have powerful analytics, a wrapper for your ads and VERY simplified notifications handling in iOS. You can take a peek to all of their features  in their website.

Programming-wise you only have to suffer a rather annoying configuration, but it’s totally worth your time. Once done, you can forget about it.

In your code

Use the static library downloaded from  this address in your project, add these frameworks to your project (the real pain in the ass):

*MediaPlayer.framework

*AVFoundation.framework

*CFNetwork.framework

*SystemConfiguration.framework

*MobileCoreServices.framework

*QuartzCore.framework

*CoreTelephony.framework

*CoreLocation.framework

*AudioToolbox.framework

*MessageUI.framework

*CoreGraphics.framework

*libz.1.dylib

*iAd.framework (only if you want ads from iAd in your project)Only two ministeps left.

In your target, in your production scheme add in  Other C Flags  section this flag:

-DDISTRIBUTION=1

And in  Other link flags  add:

-all_load -ObjC

And, with everything configured properly, this simple code in  application didFinishLaunchingWithOptions  of your AppDelegate  will do the trick:

[MalcomLib initWithUUID:@"MALCOMGENERATEDAPPUUID" andSecretKey:@"YOURSECRETKEY" withAdId:@"FILLONLYIFYOUUSEADS"];

In the site

You can create a free account in  their site. Then you register your app, configure the modules you’d like to use and that’s all.

The magic

My most loved feature of it all: its push api. It takes away the annoyance of handling the apns server side. Take a look to its über simple  API  in this pdf file.

For example, with a simple curl like this one you can deliver a notification to all your users (in a sandbox environment).

curl -i -H "Accept: application/json" -H "Content-type: application/json" -X POST -u mymalcomlogin:mymalcompassword -d '{"push":{"text":"This is a test push message"}}'  https://api.mymalcom.com/v2-SANDBOX/apns/applications/MALCOMGENERATEDAPP_UUID/push

The push module is very complete, you can segment by user, by groups, tags, and whatever.