An Open Letter To RIM’s Developer Relations
February 25, 2011 Jamie Murai
You win. I concede defeat. I no longer want to attempt developing an app for the Playbook. Are you happy now? Surely you must be. Considering how terribly designed the entire process is, from the registration right through to loading an app into the simulator, I can only assume that you are trying to drive developers away by inconveniencing them as much as humanly possible. Just in case you’ve forgotten, let me give you a little recap of the process you’ve put together.
Living in Waterloo, it’s hard not to be reminded of you. I walk by your campus every day, most of my friends have worked for you at some point, and you are the largest supporter of the university I attend. So it seemed like a rather good idea to at least attempt to write an app for the Playbook, your shiny new tablet that you hope will be able to compete with the extremely popular iPad and the up and coming Honeycomb tablets. Having already developed apps for the iPhone and iPad, I had a little experience with the process of signing up for developer programs, and naturally I assumed that yours would be different, but fairly straight forward none the less. Well, you know what they say about making assumptions!
First, I had to fill out a form with my personal information. No big deal, pretty standard. I do, however, notice that although it is currently free to register with App World, in the future there will be a $200 USD charge. Now just in case you’ve never looked in to competing developer programs, Apple charges $99, and Google charges $25. Considering you are by far the underdog in this game, how do you justify charging double the price of the market leader? Also, with the $99 or $25 charge, Apple and Google let you publish and unlimited number of apps on their stores. You, on the other hand, have decided that for $200, a developer should only get to publish 10 apps, and it will cost $200 for every additional 10 apps. On Twitter, I believe that would colloquially be referred to as a fail.
After getting all my personal information in, and being thoroughly disgusted with your ignorant pricing scheme, I’m now ready to start the actual process of developing. With the iPad, all I need to do is download a single installer that contains the IDE, the SDK, and the simulator.
You’ve decided that it’s better to make me download the Adobe AIR SDK, the Playbook SDK, and the Playbook simulator in three separate downloads. It’s not optimal, but I’m sure you have your reasons, right? RIM? Bueller? So I go ahead and download the Adobe AIR SDK. Of course, I’m a little confused when it doesn’t come with an installer, but is simply a collection of libraries and binaries. It reminds me of the good old days of command line Linux installs, but it’s about as far from user friendly as you can get. Just in case you forgot, RIM, developers are users too. Next up, is the Playbook SDK. For some reason, you want me to fill in an entire form of personal information. That’s odd, considering I did already when I first signed up. I guess I’ll give you the benefit of the doubt and assume your database crashed in the interim. So I fill out the form, and start the SDK download. Now I need to download the Playbook simulator. Again, you ask me to fill out a form of personal information identical to the one I just filled out to download the SDK. At this point, RIM, I seriously think you should get checked for some type of anterograde amnesia. Onward I go!
As I stated before, the Adobe AIR SDK didn’t come with an installer, but being a developer I obviously have a lib folder hanging around, so I just drop it in there. Next, I go to install the Playbook SDK. For some reason, it thinks that the optimal place to install software on a Mac is my home directory. Not /Developer, not even /Applications, where 99.99% of software is supposed to be installed. But whatever, I guess you have your reasons, right? RIM? Bueller? So I just manually change the default install folder, as any user friendly installer should require. Then I move on to the Playbook simulator. Oh, I forgot to mention that you also told me I had to download VMWare Fusion to run the simulator. Nothing says user friendly like making me buy an additional piece of $80 third party software to run YOUR simulator. Luckily, VMWare offers a free trial, which by the way, comes in a single installer (see what I did there?). I’m kinda of confused at this point though. The docs say that I need to install the .iso image into VMWare, but the file I downloaded from you was an installer? I decide that maybe the docs are outdated, and you’ve come up with a nice installer for the simulator that wouldn’t make me use VMWare. So I go ahead an optimistically run the installer. Turns out, you’ve decided to put the .iso image in an installer, and just have the installer copy the .iso into a folder on my sytem. Cause you know, that’s so much simpler than just letting me download the .iso directly. The next part turns out to be pretty simple, having to just create a new VM in the usual way. VMWare gets the credit for that though.
Ok, so to recap, I now have the Adobe AIR SDK sitting in a lib folder, the Playbook SDK is installed, and the Playbook simulator VM is installed into VMWare. Obviously the first thing I want to do is to boot up the simulator and play with it. So I click the nice little Play button inside VMWare, and am greeted by what I perceived to be a 1000000000 page license agreement in a DOS-like console window. So after having scrolled through the whole thing page by page with the spacebar, I am now greeted by the actual Playbook UI! My reaction is similar to that of Kristen Wiig when she plays the Target cashier on SNL. Since there’s only a web browser available, I launch it so I can see if the browser lives up to your claims, RIM. However, it seems that I can only get to about two pages before it stops responding all together. Oh well. I figured, at this point, I should try to get an actual app loaded on to the simulator. So I head back to the docs to learn how. First up, I have to put the simulator into development mode, which makes total sense because of those times when you don’t want to use the simulator for development. For instance, sometimes you’re obviously gonna want to load up the simulator on your laptop and use it like a Playbook, right? RIM? Bueller? But before I can do that, you tell me that I need to set a password, which is obviously very important, because if someone steals my laptop, that last thing I would want them to do is be able to put my Playbook simulator into development mode without my permission. Good thinking RIM! Next, I need to get the IP address of the simulator, because it’s running in a VM, and as far as my OS is concerned it’s an entirely separate device. Good design RIM! Making things easy and integrated (like Apple and Google have) only encourages those “artsy” types to try to develop software, which clearly should be left only to unix loving neck beards (I use that term endearingly).
Now I get down to the real work. Compiling and sending an application to the simulator. As your documentation suggests, I go ahead and download the sample app from your website. Your docs now tell me that before I can create the application package, I need to first create an application archive. Ok, that sounds alright with me, because obviously you’re going to tell me how to do that. Wait, you’re not going to tell me how to do that? Ok, well let’s just assume I figured out how to do that on my own. Now I need to go back to the command line, and type in a big command with lots of non-descriptive command line options that will transform my archive into the application package which can then be loaded on to the device. With package in hand (hehehe, I’m here all week folks!), I now need to type in another long command which will send the application to the simulator running in the VM at the IP address I had to get earlier.
At this point, I feel the need to compare and contrast to the Apple and Google way of doing things. If you are developing for iOS or Android, you can replace the entire preceding two paragraphs with one sentence: Press the button that says Build and Run (or the equivalent button within Eclipse for Android). Sarcasm aside, as it stands, the Playbook SDK is complete crap.
So it was at this point that I decided to surrender. Knowing what a pleasure it is to use Apple and Google’s tools, there was no way I could justify continuing with Playbook development. I thought this story would end there. Unfortunately, there was one more little jab you were still able to get in, RIM. This afternoon, Google Notifier informs me that I’ve received an email from you. Naturally, I assumed that it was just a confirmation that my App World account had been approved, considering I had filled out your forms truthfully and completely, just as you had asked. However, I was surprised to find that it was, in fact, a request for more personal information. You wanted me to print off a notarized statement of identification form, fill it out, take it to notary with government issue ID to have it notarized, and then return it to you so that you could be absolutely sure with 100% accuracy that I was who I said I was. I think it goes without saying at this point, but neither Apple nor Google require you to do anything even close to that.
So, my dear RIM, primary supporter of my local economy, I bid you adieu. You have succeeded in your quest of driving away a perfectly willing developer from your platform. On a more serious note, being the underdog, you need to make your process AT LEAST as simple as Apple’s or Google’s, if not more so. You need to make your tools AT LEAST as good as Apple’s or Google’s, if not more so. You have failed at both.
Update: It should be noted that I was using the WebWorks SDK and not the AIR SDK. A commenter on HN mentioned that if you’re using Adobe Builder, it will eventually get you to a Build and Run button, but that they experienced similar problems as well.