New BlackBerry Tablet OS SDK for Adobe AIR is out
RIM just released a new beta version of their BlackBerry Tablet OS SDK for Adobe AIR (0.9.4). Here are some of the new features:
- Application signing support – when you want to distribute your apps through the BlackBerry App World you have to sign them; now you can do this directly from the comfort of your own copy of Flash Builder :)
- Added support for accessing the microphone and camera roll
- Export release build – you use the export release feature of Flash Builder to create the .bar file for your app
- Application permissions documented in the API reference doc
By now, you should know the drill: go to the RIM page and download the PlayBook Simulator and BlackBerry Tablet OS SDK.
Extending QNX TileList: Liquid Tile List
After I tried the available list components from QNX UI library for PlayBook development, my fist question was: how can I customize both the look and feel, and the functionality of these components? In this post, I will show you how you can extend the TileList and AlternatingCellRenderer QNX components to change the UI and add additional functionality.
By default, a TileList looks like this:

You use the dataProvider property to set the data, and its default renderer (CellRenderer) expects the data to be an object that has a String property called label. And this property will be used to display the text for each tile. You control can control the number of tiles by using the columnCount property, and you can set the width and the height of the tiles by using columnWidth and rowHeight properties. You use the cellPadding property to control the space between the tiles.
This is pretty cool. But what if you want to display more complex data? Let’s say you want to have a picture, label, and some graphic? Obviously you’ll have to extend the default renderer to do this. Here is what I have in my mind:

Support for screen navigation and application session caching for QNX PlayBook apps
If you’ve ever worked with Flex “Hero” mobile components you probably love the way Flex “Hero” handles the screen metaphor. It provides a neat way to encapsulate the UI and business logic for each screen in a class.
On a mobile device, you need to keep in mind that an application can be closed anytime by the operating system. This could be because the OS is trying to free some resources or maybe the battery just died. In either case when the user reopens the app, he expects to see the last screen he was working on as well as any data that was entered. Again, with Flex “Hero” mobile applications all you have to do is to set the sessionCachingEnabled to true and assign the information you want to be persisted to the data property of your views.
This is great; however if you develop applications for PlayBook using the QNX libraries (the native Tablet OS SDK for Adobe AIR) you can’t use Flex “Hero” and, as a result, you don’t have support for the screen metaphor. I wanted this kind of support for an application I plan to build for PlayBook.
Lucky for me, I didn’t have to start from scratch because my fellow evangelist, Piotr Walczyszyn, has already created a small library that does nice tweening between two screens and implements the methods for adding a screen or popping one. So, I took his library and I modified it a little bit. Why did I modify the library? First, I wanted to have session caching capabilities and to be able to push data from one screen to another in the same manner as a Flex “Hero” mobile application. And second, I wanted to make it easier to work with QNX UI components (the original library supported generic ActionScript mobile projects).
Working with PlayBook QNX UI components
In a previous post I talked about all sorts of lists available to developers when using the BlackBerry Tablet OS SDK for Adobe AIR. In this article I will focus on the remaining UI controls. I have an idea for a PlayBook application and before writing a single line of code I wanted to make sure that I understood all the UI components that are available as part of the BlackBerry SDK. By the way, in case you didn’t know, RIM offers a free PlayBook device to any developer who gets his application on BlackBerry App World. I thought I’d share with you the results of my research.
I won’t cover how to skin these components. This is a topic for another blog post. In the meantime you can read Ryan’s posts on skinning ( buttons/text fields and lists) and Renaun’s post.
Working with PlayBook QNX List Components
If you plan to create applications for PlayBook using the BlackBerry Tablet OS SDK for Adobe AIR then you’ll be happy to learn that the support for lists is quite extensive. If you look at the components from the qnx.ui.picker and qnx.ui.listClasses you will find nine UI components:
- List
- RoundList
- ScrollPane
- SectionList
- TileList
- SectionTileList
- DropDown
- PickerList
- Picker

In this post I will discuss each one of these components so you can get a sense of how to use them and when. I strongly believe that you need good ‘List’ components if you want to create great mobile applications. Lists represent one of the most important mean you have to deal with the small size of tablet/phone screens.
Working with Flex RPC Services in ActionScript Mobile Projects
In a previous post I showed you how you can use QNX UI components in a Flex Mobile project that uses Flex RPC services (REST Style Services/Web Services/Remoting). What if you want to use Flex RPC services in an ActionScript Mobile Project? It isn’t possible, isn’t it? Wrong, you can make it work with a little bit of extra work.
This works because, as my colleague Renaun Erickson said, Flex != MXML. In other words if you add the right parts from the Flex framework to your project you will be able to reuse these Flex services. Though, you won’t be able to write MXML code. Everything will be just ActionScript code.
Once you created a new ActionScript Mobile Project (these project supports Android and BlackBerry Tablet OS as target platforms) there are two steps you have to complete to enable Flex RPC support.
Step 1. Right-click on the project name and choose Properties. Then click on the ActionScript Build Path entry. You will notice there are already some parts of the Flex framework added.
Working with Flex Services and BlackBerry Tablet OS SDK for Adobe AIR
If you are an experienced developer, it’s easy to connect your Flex applications to almost everything. You can use REST Style services, remoting (Remote Procedure Call), and Web Services (WSDL/SOAP). Using a server library like BlazeDS you can use messaging (Producer/Consumer) as well.
What about using these methods with an AIR project for PlayBook created using the BlackBerry Tablet OS SDK for Adobe AIR and the QNX UI library? In this post I will show you how you can create a PlayBook application using QNX components for the UI and HTTPService/RemoteObject for reading data from a server.
Note: In theory, it should be possible to use HTTPService, RemoteObject, and WebService even in a Mobile ActionScript project. I will write another post on this matter. See this post on how to do it.
Making SSH connections to PlayBook Simulator
The latest update of the PlayBook Simulator has support for SSH connections. In this post I will explain the steps you have to follow in order to make an SSH connection to the PlayBook Simulator on a Mac OS.
Step 1. Start the simulator and make sure it is set in development mode (if you don’t know how to set these options read this post). Also, write down the IP address because you’ll needed it later on.

Updating to BlackBerry Tablet SDK 0.9.2 from 0.9.1
Yesterday, RIM released version 0.9.2 of their BlackBerry Tablet OS SDK for Adobe AIR. This was just one of the bits announced yesterday – my fellow evangelist, Renaun Erickson, already wrote about this.
So what’s new for AIR development for PlayBook? Here is a list of what caught my eye:
- New tablet simulator. If you don’t have a physical device you can use this simulator (this is just a virtual machine) to test and debug your application. This new version brings support for screen orientation (you just swipe up from the bottom-right corner to rotate the screen). You enable the support for screen orientation support by adding <autoOrients>true</autoOrients> in the application descriptor file.
- Application control permissions. If you want to use the camera, then you have to explicitly opt in by adding <permission>use_camera</permission> in the blackberry-tablet.xml descriptor file.
- Support for splash screens, SSH connection to the tablet simulator, and development on Linux.
- New APIs and .
- A number of bugs fixed, like the infamous: “Dialog boxes moved when users typed text in a text input field”.
Understanding Flex Mobile View and ViewNavigator
The Flex framework “Hero” makes the task of creating mobile applications for BlackBerry Tablet OS, Android, and soon iOS extremely simple. I think that one of the best looking apps for Android is MAX Companion 2010 and please bear in mind that this app was created using an early build of Flex “Hero”.
This is a reasonably complex application with lots of screens and social integration (Twitter) and yet on my Nexus One and Samsung Galaxy Tab it still works great. This is exactly where the Flex framework can shine on mobile devices: fast and easy development of applications that can connect to virtually anything (web services, REST services, RPC).
In this article I will talk about Flex Mobile Views and ViewNavigator. If you want to use Flex “Hero” to create mobile apps you need to understand how these components work.
Oh and one more thing, if you want to try this yourself you’ll need the Flash Builder “Burrito”. You can download it from here. Read more








