Implementing iPhone Push Notification? iLime & Urban Airship Face Off

by Andrew Lunde on 13/11/09 at 4:46 pm

Implementing iPhone Push Notification? iLime & Urban Airship Face Off

Andrew Lunde is a senior iPhone and Internet applications developer. He is the President of Lunde Cognitive Effects Inc. and a writer for iPhoneCTO.

This article is a follow up to Bill French’s article iPhone Push Notification: iLime & Urban Airship Pave the Way With Middleware Offerings. I’ve been considering building push notification support into an upcoming iPhone app, but hadn’t considered using a third party service to do the heavy lifting. Once I read Bill’s article, I decided to try each of the aforementioned services and do my own implementation to compare and contrast my experiences.

-iLime-

I registered at iLime’s site and went looking for instructions. I found the Getting Started page which I tried to follow to the letter, but I got stumped. I went in search of more documentation and found another page which didn’t help much either.  I went through the process of getting a new AppID set up and provisioned for Push.  It took a while to figure that I needed to use keychain access to export the certificate as a .p12 format.  None of this was explained very well in the documentation.  I kept getting a server 404 error when uploading my certificate to iLime and it seems from the forum that others were having the same issue. I fired off an email and switched over to trying Urban Airship.

-Urban Airship-

I Signed up and got the confirmation email with a link to their sample iPhone App and also an example PHP server script. I have to say Urban Airship’s documentation was very complete and easy to follow. After a couple attempts, I got notifications to work from the UA website to their test application. The biggest issue I had was that it wasn’t clear that I had to build a provisioning profile and install it once I had set up the App bundle. I decided to shift my attention to their server-side example. The code seemed very straightforward and after realizing that I had put the wrong secret into the server side app sample, I got it working. I had an issue with triggering sound upon notification, but realized I wasn’t specifying the sound file properly.

-Home Grown-

I went looking for some example server implementations to send messages to APNS and found this great article which I ended up following.  I also found this project that seems to be a more robust way to implement the server side of sending notifications to APNS.  I ended up hijacking the Urban Airship client for my own purposes and modified it to interface with my own home grown implementation. Most of my time was fiddling with the iPhone client app, but once I had things working so that I could run the app and have my server send it notifications.  I didn’t feel that the implementation of the server side of sending notifications to APNS was complicated, but I come from a background where I work with this sort of integration quite often.  It would likely be pretty daunting to the uninitiated.

-Conclusion-

After doing my initial research of iLime and Urban Airship, I spent some more time thinking about how my application would use push notifications and how the back-end system needed to be structured in order to accommodate push to it’s best effect.  I’ve come to realize that the code that does the actual communication of the notifications to the APNS is actually only a relatively small part of what needs to be built.  Neither of these services can figure out how often, how much or what you want to notify your users with.  Nor can they design your app to consume the notifications in a way that’s uniquely meaningful to your users.  From looking at their APIs, they seem to have built some additional functionalities that would be nice (like usage reporting and broadcast notifications) but even those could be built without that much extra effort.  I can imagine an app that needs only occasional notifications to be manually sent or, if the developer just didn’t want to have to set up their own server to support push notifications then middleware services such as these have their place. Urban Airship provides a much easier service to use and I give them the thumb’s up.  However, there is so much more to integrating push notifications than just the transport of the messages, and I believe it’s worth the effort to not have to a man-in-the-middle between you and your customers (or your revenue stream).

Similar Posts:

About Andrew:
Andrew Lunde is a senior iPhone and Internet applications developer. He is the President of Lunde Cognitive Effects Inc. and a writer for iPhoneCTO.
  • Twitter
  • Digg
  • Reddit
  • LinkedIn
  • Delicious
  • NewsVine
  • Facebook
  • StumbleUpon
  • Google Bookmarks
  • Technorati Favorites
  • Yahoo Buzz
  • Mixx
  • Slashdot
  • Share/Bookmark
  • joshuatessier
    Hi, great writeup. My company is releasing a similar service called appnotify: http://www.appnotify.com and we would love it if you could provide some feedback. We're still in beta, so we're very open to changes and we're constantly adding more and more documentation.

    Please e-mail if you need a hand getting set up, I have no problems walking you through the process.

    Thanks!
    -josh
blog comments powered by Disqus