Nach dem Überblick, wie Apps für das BlackBerry PlayBook entwickelt werden, geht es nun konkret los. Dieser Artikel zeigt die ersten Schritte, um eine App für das PlayBook zu erstellen und es sowohl lokal als auch im Simulator zu testen.

Reines ActionScript- oder Mobile Flex-Projekt?

Es gibt unterschiedliche Ansätze, Anwendungen für das PlayBook zu schreiben. Mit dem ersten SDK war es nur möglich, reine ActionScripte-Projekte aufzusetzen (also AS + QNX-Komponenten) und diese mit dem BlackBerry Flex SDK zu kompilieren.

Mittlerweile lässt sich jedoch auch der Weg gehen, ein „Flex Mobile Projekt” aufzusetzen und somit das Mobile Flex Framework zu verwenden (siehe z.B. dieses Tutorial). Somit wäre es denkbar, eine App für Android und PlayBook zu planen und umsetzen. Es gibt von seitens BlackBerry also nicht die Anforderung, dass die QNX-Komponenten tatsächlich verwendet werden.

Bei einem reinen ActionScript-Projekt ist unter Umständen das Layouten der Anwendung etwas komplizierter. Zwar gibt es QNX-Container ähnlich den Flex-Containern (Box bzw. Group), mit denen ich mit aber nicht so richtig anfreunden konnte (evtl. auch mangels Doku dazu). Ich habe stattdessen eine Open-Source-Layoutengine eingesetzt. Grundsätzlich wird jedoch nur auf Code-Basis das Layout erstellt, was man sich mit einem Flex-Mobile-Projekt erspart. Im Gegenzug kann man in einem ActionScript-Projekt angenehm auf die PlayBook-optimierten QNX-Komponenten zugreifen und bietet dem Nutzer dadurch eine "Standard-konforme PlayBook-App".

Im Folgenden werde ich die Vorgehensweise an einem reinen ActionScript-Projekt erläutern.

Neues AS-PlayBook-Projekt erstellen

Um zu testen, ob alles funktioniert, erstellt man ein neues ActionScript-Projekt im Flash Builder 4 („Datei > Neu > ActionScript-Projekt”). Dort muss man ggf. zuerst das PlayBook SDK hinzufügen, indem man auf „Flex SDKs konfigurieren” geht und dort den Installationsordner auswählt. Anschließend wählt man das SDK aus, damit es verwendet wird.

QNX-Klassen des PlayBooks verwenden

Wenn das SDK korrekt hinterlegt ist, stehen nun in der AutoCompletion alle Klassen des PlayBook-SDKs zur Verfügung. Hier ein kurzes Beispiel für den Anfang, das einen QNX-Button auf der Bühne hinzufügt:

Actionscript:
  1. package
  2. {
  3.     import flash.display.Sprite;
  4.    
  5.     import qnx.ui.buttons.LabelButton;
  6.    
  7.     public class PlayBookDemo extends Sprite
  8.     {
  9.         public function PlayBookDemo()
  10.         {
  11.             var button:LabelButton = new LabelButton();
  12.             button.label = "Click me";
  13.             addChild(button);
  14.         }
  15.     }
  16. }

Anwendung in der normalen AIR-Runtime starten

In der Regel funktionieren Anwendung, die QNX-Klassen verwenden, auch weiterhin in der gewöhnlichen AIR-Runtime. Nur bei wenigen PlayBook-spezifische Klassen wirft die AIR-Runtime Laufzeitfehler. Deshalb bin ich so vorgegangen, dass ich meine App größtenteils als gewöhnliche Anwendung entwickelt habe und erst gegen Ende den Simulator häufiger genutzt habe.

Dazu klickt man wie bei jeder anderen AIR-Anwendung auf „Ausführen > Debugging als > Desktop-Anwendung” — ein guter Weg, um sich mit den PlayBook-UI-Komponenten vertraut zu machen. Hilfreich ist dabei die BlackBerry Tablet OS for Adobe AIR Reference. Kurzer Hinweis: In diesem Fall wird natürlich die vom Flash Builder erstellte [projektname]-app.xml zur Konfiguration der AIR-Anwendung übernommen. Für den Simulator hingegen legen wir später eine weitere XML-Datei an.

Anwendung im Simulator starten

Möchte man im die App im Simulator starten, fährt man zuerst den VMware Player bzw. VMware Fusion hoch. Dort muss man gemäß der Getting-Started-Anleitung (siehe Artikel zuvor) zuerst den Entwicklermodus starten und sich die IP-Adresse des virtuellen Devices notieren.

Jetzt kann man nach der Konfiguration eines neuen Debug-Targets (Hinterlegen der IP-Adresse) über „Ausführen > Debugging als > BlackBerry Tablet AIR Application” die App direkt auf den Simulator schieben — wenn es denn funktioniert, was bei mir leider nicht der Fall war (Flash Builder schreibt „an internal error occured..”).

Ich habe deshalb die Anwendung einfach per Kommandozeile gepackt und installiert (siehe
Compile and Debug without Flash Builder Using a Command Line).

Actionscript:
  1. /Applications/Adobe\ Flash\ Builder\ 4/sdks/blackberry-tablet-sdk-0.9.1/bin/blackberry-airpackager  -package demoapp.bar -installApp -launchApp demoapp-app.xml DemoApp.swf blackberry-tablet-icon.png -device 172.16.47.128 -target bar-debug -connect 192.168.2.105

Man benötigt dazu die kompilierte SWF-Datei aus dem bin-debug-Ordner, ein Programmicon mit Namen "blackberry-tablet-icon.png" (90x90 Pixel). Eine Beispieldatei liegt im SDK-Ordner in „samples > icons”.

Außerdem erstellt man sich eine App-Descriptor-Datei, die speziell für das Kompilieren mit den BlackBerry-AirPackager verwendet wird (die vorhandene XML vom normalen AIR-Projekt kann man parallel bestehen lassen, um sowohl in der AIR-Runtime als auch im Simulator die App zu testen).

XML:
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. xmlns="http://ns.adobe.com/air/application/2.5">
  3.  
  4.    
  5.     >com.florianplag.demoapp>
  6.  
  7.    
  8.     >DemoApp>
  9.  
  10.    
  11.     >DemoApp>
  12.  
  13.     >1.0.0>
  14.    
  15.    
  16.     >
  17.         >DemoApp.swf> 
  18.         >false>
  19.         >false>
  20.         >false> 
  21.   >
  22.  
  23. >

Hat alles geklappt, sieht man, wie die App im Simulator erscheint und sich öffnet.

Ein allgemeiner Hinweis am Schluss: Nützliche Tipps findet man im PlayBook-Entwickler-Forum.