Some two weeks ago, I attended the BlackBerry 10 Jam World Tour in Montréal. It was a nice day and I could have done something else, but hey, learning about new technologies is a passion. With such a name, I sort of expected the sessions to be more hands on into coding, but this event was more about introducing the latest OS and its intricacies to developers.
The morning session
Given all the bad press that RIM gets these days, it was understood that the reps had to justify their situation. Without getting too deep into the technical and financial fine points, the company reps boasts that their store grows quickest and offers the most profit per sale.
In fact, RIM is so confident about the future of their upcoming platform that they offer a prize to all certified apps available on their store at the launch of the BlackBerry 10: if the app sold for at least $1,000, but did not exceed the $10,000 mark, they'll cover the difference.
The morning session concluded with Chris Smith who presented the architecture of the BlackBerry 10. He boasted that since the OS is built on Qnix, a system quite robust as he explained, BB10 would be the only OS that could run another OS on top of it. He also claimed that the new OS would be backwards compatible, so a dev could write in the latest OS and deploy across multiple generations of BlackBerry phone. That seems almost too good to be true, I'll believe it when I see it.
Cascades, the new UI, is built on top of Qt, a C++ framework of which I heard for the first time recently, since the Float4 devs use it to develop their software. This framework functions a bit like AS3's components, or Objective-C's UIKit: it offers pre-made components that respect the OS's UI.
RIM has decided to spend a lot of time to provide many types of developers the librairies to develop with their own tools to target the new BlackBerry 10 platform: C/C++, HTML5, AS3/AIR, Java, even the Android runtime! It is an awesome strategy, however I feel that it may be a late move on RIM's part. It sure feels refreshing compared to Apple's stubborn strategy.
However, it's a bit ironic that during his presentation, Suavek Zajac commented that he did not know if it was worth the effort to care about AS3/AIR since that platform might not have a future...
Native development session
During the afternoon, two sessions were offered: native development and HTML5 development. Since I know already how to develop for the web–and that learning a new JS library shouldn't be too hard–I decided to follow the native presentation.
I honestly believe that Cascades is indeed a beautiful and well though out UI. It's been designed by the Swedish agency Astonishing Tribe, and if I remember correctly, RIM acquired them. I found it interesting that the evangelist giving the presentation on the NDK also took the time to make sure that that core UI concepts were understood, that he was not just there to talk tech.
In an example, a user can delete a photo within the application. Rather than having a button labeled "Cancel" like every other platform, it was labeled "Regret". I thought using good copy like this for call to actions brought a more human side to the interface. Too often are we, developers, designers and copywriters, stuck using terms that have been following us for years.
There was talk that the font of the overall UI could eventually be customized at the application level. This may open the door for really bad design choices. All the time that was put on designing a clean UI might be worthless if developers or designers are allowed to tinker with that. The only reason why this might be useful is for localization, where some specific characters are needed, like Japanese, Chinese, Korean, Cyrillic, and others. Otherwise, I believe the fonts should not be editable. We'll see where that choice of theirs lead.
In the many examples presented, copy and labels were always hardcoded, which is a bad idea if you've ever had to localize your content. It seems that there is a way to use variables to replace those values. As I understood, it'd be written a bit like how it's done in PHP or Ant.
Many things come out of the box with the NDK, amongst what was mentioned, a couple caught my interest. There seems to be some sort of tweening library, and from the quick peek of the code that was shown, it felt like the concatenation of the animations had a similar syntax to how it's done in jQuery.
There is also an API to allow users to do in-app purchases with the credit card that is already registered to their BlackBerry account. Mind you, I believe that's the same logic that other platforms use, but since I never had to use such an API, I though it was smart to leverage user information already recorded and offload all the security issues to the company platform rather than having to deal with that at the application level.
When an app is installed on a BlackBerry, the app requests authorization to access different things, a bit like how Facebook does it. Having this in iOS might have avoided recent debacles where personal information was tracked without user consent. I thought this was new, but it seems that BlackBerry had that for a while.
The most interesting concept is probably the idea of invocation. The invocation framework allows for an app to register to some actions for all other apps. The simplest example is if someone created a clipboard app, the copy/paste functionality could register to all apps that have editable text, without having to add code to other apps. Another example is a sharing application that could allow you to share photos or text to certain network. The app could register to actions relative to text or images, so that whenever the user has a contextual menu with these elements, the actions of the sharing app could be available as well.
Thoughts on the new platform
Those who attended the event and asked for it in advance were given a Dev Alpha device to be able to develop for the BlackBerry 10 platform before it's publicly released some time at the beginning of next year.
So I got one too, woot!
I was quite surprised by how light this device is! It's practically 150% the size of the iPhone, with a huge 1280 x 720 pixels resolution. It's also exactly the same height as the Playbook, a nice little touch. Actually, it totally looks and feels like a mini Playbook.
But it's definitely an alpha version. The UI is clearly not ready for the device, it's just a port of the Playbook's, no button or label has been resized properly to fit the size that a finger represents on this device. The icons are not ready either, as they seemed stretched and all blocky.
At least, if you develop an app and add a button on screen, it shows with the proper dimensions relative to the target. For example, when I tested an app built with the AIR SDK on the Playbook, the button height was some 44 px, while on the Dev Alpha it ended up at 101 px. It's a nice touch that the UI components handle the DPI themselves.
I am not ready to drop my iPhone anytime soon, nor am I as enthusiastic as some, but I do think that RIM did a good job with their latest OS and communication strategy towards their developers.
Let's keep an eye out for this platform, it might eventually be a good idea to include it in the mobile or tablet suggestions for clients, especially if their markets are not only in North America, as it seems Asia and lots of other markets are quite fond of the BlackBerry universe.