11-16-2010 04:22 PM
Here are a few more general (and probably pretty basic) questions for some of the experienced 'SKD-hoppers' out there:
How do I know what exactly is in an SDK? - I have the documentation for the BlackBerry Tablet OS SDK, but it only lists all the qnx packages. Obvioiusly a lot of the the 'core' packages (flash.display etc.) are still available to use, but I'm not sure if that means the Playbook supports some clearly defined set of core packages (which?) PLUS the qnx-specific ones, or if the qnx packages replace something (I guess qnx.media might be instead of flash.media or fl.video?)
When developing for FlashPlayer 10 in FDT I use the Flex 4.1 SDK and if I want to use something like Tween or FLVPlayback, I have to add the fl packages as a .swc, so the compiler can find them. But I guess that still doesn't necessarily mean that the target runtime will support the commands in those packages.
So, basically, I'm just trying to get a clearer understanding of how to know what's supported - other than trial and error ...
I know this is not strictly about the BlackBerry Tablet OS SDK, but if somebody can recommend a good resource to read up on the general concept of SDKs (APIs?) and how they build on each other, I'd be keen to improve my foundations a bit!
11-16-2010 06:13 PM - edited 11-16-2010 07:09 PM
BB applications are Adobe AIR applications. All Adobe AIR SDK functionality (4.0) is supported and can be found at:
Adobe SDK 4.5 will be supported before the official release (for what we have been told).
BB SDK provides some functionality on top of the Adobe AIR SDK to help with touch screeen manipulation. Most of these controls as well as the controls apart of the Spark framework inside the Adobe AIR SDK are more lightweight to keep the application file size down. You can create a native AIR application, but it will be larger in size and take longer to load (and probably take more resources on the device).
Flash/Flex/AIR libraries (SWC) files work fine in the development. For example, Google Map AS3 SDK works fine on the device. I've used some third party Tween SDK and they worked fine as well. If there are 3rd party SDK that do not work, I cam certain the community will let everyone know.
Audio and Video playback may or may not work since I've read that the BB SDK may have there own to be highly optimized for the hardware to allow a more enjoyable experience for the end user.
The general approach I have been taking, start out with something simple, learn the basic API, build up from that and be ready to make adjustments to your application when new updates are available to the OS and SDK.
Hope that helps.
11-16-2010 07:01 PM
Yea, all BlackBerry applications for the Playbook currently are built on top of Adobe AIR with a QNX background for all the widgets and such (labels, webViews, etc.). That being said it uses the AIR SDK as a foundation, and appends to it the QNX stuff as far as I know.
11-16-2010 09:59 PM
I built a test app with the flex framework and the qnx framework. The flex was 1.4 meg and the qnx was 244 k. Loaded about 4 times faster too.
To make a flex mxml app with the design view:
You create an application as stated in the instructions, but at the beginning add the en-us framework from the air sdk.
Keep an mxml file name.
When flash builder creates the file, change it from a windowed application to an application.
Add the blackberry icon and xml file to the src directory and setup the debugger the same way.
The qnx controls WILL NOT be able to be found and displayed in the design view, but you can create a pure sparks app for air, all the while debugging it on the simulator.
You can code in mxml with the qnx controls and compile it, flash builder just can't display them in design view.
11-17-2010 10:28 AM
It is a double edge issue. Making a "traditional" MX AIR application is a lot faster because all the controls work so well together, but the application is a lot larger and slower to load than a QNX derived application. It is a pain when QNX widgets dont work with MX items (or visa versa) in term of speed of development. I feel I am spending a fair amount of time working around QNX/Spark/MX incompatibilities. However, if we view this platform as a pure mobiel device (oversized cell phone), then application size, loading speed, resource usage, and battery life out weighs everything else. Also, most application on this device would be light weight in terms of features as compared to a "normal" desktop AIR application, so dealing with the AS only, poor layout managers, control incompatibility, etc. may be worth the effort.
11-17-2010 12:50 PM
Thanks guys, lots of useful info here ! (jjackson slightly over my head as I'm not using mxml - but probably interesting for other readers ...)
So let me persist a bit with my basic questions ...
I just discovered that the Flash Builder Package Explorer lets you explore exactly what's in the SDK (cool, FDT doesn't do that! at least not the Pure version) - so that makes things a lot clearer. But it seems that what I took to be *the* BB Tablet OS SDK documentation (blackberry-tablet-sdk-0.9.0/asdocs/qnx-screen/ind
11-17-2010 01:48 PM
Both the Docs and the QNX.* packages are quite incomplete.
I can get several types of RunTime Errors by instanciating the QNX classes which have been included in the SDK, but are not ready for primetime. For example, you can try and instanciate QNXStageVideo, it's included in the SDK but is totally busted.
In general, if you're doing MXML, you probably don't want to the QNX components your life will be easier if you just stick to Spark/MX.
If you're doing pure AS3 (imo the best option by far), then use the QNX components if you need, just be prepared for some partially finished implementations.