Adventures in Playbook Land

Now that the ordeal is over, I thought I’d take the time to sit down and share my account of what it was like to develop a Blackberry Playbook application using the Adobe Flex SDK.

Like many other Actionscript developers out there, when I heard that RIM was giving away free Playbooks to developers who had an app published by the end of March, which was eventually accepted, I thought, wow, what a great opportunity – this should be a piece of cake and a learning experience. A learning experience it was. A piece of cake, it wasn’t.

I won’t bore you by starting from the very beginning. This has already been covered quite eloquently and humorously enough by Jamie Murai here. Suffice it to say that I, and I’m sure most everyone else developing a Playbook app for the first time, went through a nearly identical experience. At the point I begin my story I have a simple game built (this was actually the easy part), the annoyingly VMWare powered simulator is installed and running nicely, and, thanks to studio|chris and fruitbat, I even have a way to easily install and uninstall my game to and from the simulator (and when I say “thanks” I mean a huge thanks. Without Fruitbat, I honestly don’t know if I would have had the perseverance to complete the project). One annoying little hindrance I ran across though, and I don’t know if this is the fault of Fruitbat or Blackberry or VMWare, whenever I uninstalled my app from the simulator (which I did after every test), although I received a message saying the uninstall was successful, the app icon still remained behind. So, now, my simulator ‘desktop’ is littered with about 15 dead icons and I have no idea how to remove them without uninstalling and reinstalling the simulator – something I really don’t want to go through. No matter though – at this point my game’s working and ready to go and I’m happy just to have accomplished this much and I’m ready to press on.

Before a final packaging though, I just want to double check my application’s xml file and be sure everything is up to par. Now all the documentation I’ve read and heard about state that the screen dimensions of the Playbook are 1024×600 and this, of course, is how I’ve built my game. However, when I go to read the documentation on the application configuration file I run across this little tidbit of information under the splashscreen section:

The screen resolution of the BlackBerry® PlayBook™ tablet is 1200 by 600 pixels. Your splash screen should be this size to fill the screen.

And, very naturally, I freak out. I just spent a whole lotta time developing this game at 1024×600. If it turns out that screen size is actually 1200×600, that’s a quite a large amount of redesign and recoding I have ahead of me and at this point, it was getting close to the end of the month and time was running out if I wanted to be eligible for that free playbook. I asked on Twitter if anyone could verify the actual Playbook screen resolution, but either no one knew or no one cared (or, most likely, no one actually listens to me on Twitter). In any case, I got no response. At this point I decided to make an executive decision and stick with the 1024×600. I had heard that as long as you had an app submitted by the end of March, even if there were problems that needed to be corrected, you would still be eligible for the Playbook offer. So, better to forge ahead and fix it later if need be than get bogged down in potentially needless code refactoring and redesign.

So I packaged up my game and splash screen as 1024×600 and it was time to sign the thing. To get the keys necessary to sign a Blackberry Playbook app, you have to fill out another form giving your entire life story. You can check out Jamie Murai’s story to get an idea of how many times Blackberry has already asked me for the identical information. Seriously, RIM, you need to consider consolidating your databases. One additional bit of info I needed to include at this time was a credit card number. Now, RIM assures us that, at this time, the code signing keys are free and that the only reason they require a CC number is to “ensure the validity of the information provided”.  Of course this is nowhere near as simple as just generating your own key as you do when creating AIR for Android application, but, still, it’s fair enough and I can’t really complain about it.

As advertised, it takes about 2 business days to receive your code signing keys and you’re ready to start the signing process. Now, I have mixed feelings about this part of the development process. It’s by no means a simple task and took about an hour or so. However, I very carefully followed the Blackberry guidelines for signing your app from the command line step by step and everything went off without a hitch. So, on the one hand, while it seems the process could be much simpler, on the other, if you follow Blackberry’s instructions, it will work and I thank Blackberry for making their instructions relatively clear and concise. Actually, it would be pretty easy to make an AIR application to get you through the app signing process and if this is a road I choose to stroll down again, I probably will. At the time though, I simply wanted to get through this. Bear in mind, it was about March 28 or so at this point and I had no time to get sidetracked if I wanted to make the March 31 deadline.

So now I had my signed .bar file I figured my job was done – I simply had to upload it to the Blackberry App World and wait for the Playbook notice to arrive. But of course it couldn’t be that simple. When I go back to the Blackberry site, it turns out that even though I’ve built and signed a Playbook application, I’m not, officially speaking, a Blackberry developer yet. That requires an additional registration. So, once again, I give RIM my entire biography and register for free developer status. That only takes a few moments and now I’m a developer, hot dog. So I click on the App World link and – wait a minute – I have my code signing keys and I’m a registered developer, but now, in order to submit my application, I have to also register as a vendor. Yes, I am familiar with old expression about the word ‘Assume’, but I think in this case that it is a fairly safe assumption that anyone who requests code signing keys is probably a developer so why not make him one? Also, why not go one step further and assume that anyone signing an application will probably also want to submit the app at some point, so why not make him a vendor as well. At the very utmost least, RIM, try to remember my user details so I don’t have to resubmit them for every little thing I want to do. So now, for about the 6th or 7th time, I have to provide Blackberry with my detailed life information and register myself as an application vendor. And nearly immediately I get an email reply back thanking me for my interest in being a Blackberry vendor and my application will be reviewed. Another day or two later and I get a second email telling me that Blackberry needs a copy of a government issued ID card in order to verify my identity. But wait just a second. Isn’t that why they already took my credit card information back in step 32 or whatever it was?

At this point, I’m so pissed off and frustrated, I’m ready to just call it quits. But I’ve come this far and, now, it’s like they’ve made it personal, and I don’t want Blackberry to defeat me (is that really the attitude you’re hoping to foster in your developers, RIM, that it’s us against you and we can’t let you win?).  At this stage of the game, I’m faced with a rather unique dilemma. Being an American expat living in Ireland, my only government issued card is my Irish Certificate of Registration – what us Americans would call a green card. And it very clearly, and in bold print, states on the back, “This is not an identity card.” It does, though, have my name, photo, birthdate, etc. so I make a copy of it and give it a go. And a day later, I’m an approved vendor and back in business. Yippee skippee.

So, now I think, all I have to do is upload my signed .bar file and I’m good to go. Wrong again. When logged into your Blackberry vendor account, you’re not prompted to upload a .bar file. Instead, you’re prompted to create a ‘bundle’ and add files to it. Of course you know what a ‘bundle’ is, right. If so, you’re ahead of me as I have no freaking clue and RIM apparently doesn’t feel the need to share the information. Must be a common thing for Blackberry devs, but for folks coming from outside the Blackberry world, a little definition would be nice. We are informed that to make our lives easier, we can .zip up a ‘bundle’ and upload the .zip as a single file. For all I know, that may be as convenient as hell, but I still have no idea what a ‘bundle’ is so I don’t see how that might help. Then I start thinking perhaps a bundle consists of the .bar file, the splash screen, application icon, and application descriptor file. On an impulse, I changed the .bar extension of my app file to .zip and opened up the file. Like a .air file this works perfectly well and there, inside my .bar file is my splash screen, icon, descriptor file and .swf, so no, that is not what a ‘bundle’ is. All that stuff is already contained inside the .bar file.

So, again, not to be defeated, I just created a new bundle and uploaded my .bar file to it hoping that is all that is needed. I’m also given the opportunity to add some ‘goods’ to the ‘bundle’ but given that I still don’t know what the fuck a ‘bundle’ is, I just chose to ignore that option. Once my .bar has been uploaded, I hold my breath, cross my fingers and click the submit button. Within an hour or so, I receive a notice from Blackberry that my app has been received. There’s only one last thing I need to do, the email informs me. I just need to sign my application and create a new bundle named ‘bundlename_signed’ and I’m all set. Well, as we used to say in the Navy, “Whisky Tango Foxtrot, over.” As you know from reading this, I’ve already gone through all the hassle of signing my app. And we’re not given the option to simply rename the bundle we’ve created and just add the underscore ‘signed’ to it. Why the hell doesn’t Blackberry tell you right up front, if your application has already been signed, name your bundle accordingly (and I still wanna know what a bundle is)?  Not knowing what else to do, and it now being March 30, I simply created a new bundle with a name ending in ‘_signed’, incremented the version number to 1.0.1 and uploaded the exact same .bar file as before and once again held my breath, crossed my fingers and clicked the submit button.

And about a week later I received an acceptance notice. A day after that I received my order form entitling me to one free Blackberry Playbook. Whew. The deal is done. Whether or not I did everything necessary for my game to actually appear in Blackberry App World, I don’t know, but at this point I really don’t care anymore. One final downside to the whole thing: I won’t receive my Playbook until it becomes commercially available in my area. From what I’ve seen, the Playbook isn’t slated for a European release until second quarter 2011 – and who knows when it will finally be commercially available in Ireland. I may not see the thing until Christmas of 2012 just before the Universe implodes, but I’ll tell you this much, I, and every other developer who has gone through the same struggle, have definitely earned the thing. Unless RIM makes this process a little simpler, I can’t really say that I ever want to develop another app for them, even if I do have a better idea of how it’s done now. Just the thought of making a second Playbook app leaves me feeling exhausted.

And for those wondering what the game is that I made, well, it’s really just a redesigned and recoded version of the AIR for Android app I made, Rebound (still available for free in the Android Marketplace). Here’s a little sneak preview below:

Rebound for Playbook


I just discovered that the app has now appeared in Blackberry’s App World, so apparently somewhere along the the way, I did something right. You can check it out here.