<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>BlackBerry Developer Blog &#187; Ricardo O.</title>
	<atom:link href="http://devblog.blackberry.com/author/ricardole1/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Fri, 17 May 2013 17:47:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devblog.blackberry.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/9ef0a66c09615fa946c4179662398878?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>BlackBerry Developer Blog &#187; Ricardo O.</title>
		<link>http://devblog.blackberry.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://devblog.blackberry.com/osd.xml" title="BlackBerry Developer Blog" />
	<atom:link rel='hub' href='http://devblog.blackberry.com/?pushpress=hub'/>
		<item>
		<title>BlackBerry Signing Tool for Tablet OS Now Live</title>
		<link>http://devblog.blackberry.com/2011/02/blackberry-signing-tool/</link>
		<comments>http://devblog.blackberry.com/2011/02/blackberry-signing-tool/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 17:08:20 +0000</pubDate>
		<dc:creator>Ricardo O.</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[BlackBerry World]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[signing tool]]></category>
		<category><![CDATA[tablet os]]></category>
		<category><![CDATA[webworks]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=3269</guid>
		<description><![CDATA[Developers can now sign apps using the latest version of the BlackBerry® Tablet OS SDK.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=4796&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-2999" title="BlackBerry PlayBook tablet" src="http://rimdevblog.files.wordpress.com/2011/02/playbook_white1.jpg?w=600&#038;h=307" alt="BlackBerry PlayBook tablet" width="600" height="307" /></p>
<p>The deadline for the <a title="free BlackBerry® PlayBook™ tablet" href="http://www.blackberry.com/developers/blackberryplaybookoffer?IID=DEVPBK02232011" target="_new">free BlackBerry® PlayBook™ tablet</a> offer is fast approaching. Whether you have already submitted your app or you plan to do so soon, your app will need to be signed before it can be accepted into BlackBerry App World™ storefront.</p>
<p>We’re excited to announce that you can now sign apps using the latest version of the BlackBerry® Tablet OS SDK. Below is a quick overview of how to get started with application signing on the BlackBerry Tablet OS. Be sure you have installed the most recent version of either the BlackBerry Tablet OS SDK for Adobe® AIR®, or the BlackBerry® WebWorks™ SDK for BlackBerry Tablet OS. You can download the latest version of either SDK from the <a title="BlackBerry Tablet OS Application Development site" href="http://us.blackberry.com/developers/tablet?IID=DEVTAB02232011" target="_new">BlackBerry Tablet OS Application Development site</a>.</p>
<p><span id="more-4796"></span></p>
<p>Before you start signing your application, you have to register with the Research In Motion® (RIM®) Signing Authority. Fill out the <a href="https://www.blackberry.com/SignedKeys" target="_new">web form</a> &#8211; registration is free, but you need a credit card to complete the registration process. A $1 hold will be placed on your account to verify the credit card. The hold is released after your credit card company accepts the transaction, and the hold will not appear on your monthly bill. When the registration process is complete, you receive a CSJ registration file via email.</p>
<p>There are two phases to the signing process: configuring your computer, and signing the application. You only need to configure your computer once. To configure your computer:</p>
<ol>
<li><strong>Initialize communication with the RIM Signing Authority:</strong> The signing tool is designed to prevent tampering and eavesdropping on information it exchanges with the RIM Signing Authority.</li>
<li><strong>Register your CSJ registration file with the RIM Signing Authority:</strong> Once you have initialized the communication channel, you can register your CSJ file, which uniquely identifies you to the RIM Signing Authority.</li>
<li><strong>Ensure that you have a Developer Certificate:</strong> You can use the signing tool to create a developer certificate, or provide your own. If you create a Developer Certificate using the signing tools, ensure that the common name (company name) parameter matches what you enter in the Company field on the registration form. If you have an existing Developer Certificate you use to sign your Adobe® Flash® applications, ensure that the name you enter in the Company field on the registration form matches the common name (company name) of your existing certificate. You will not be able to sign your BlackBerry Tablet OS Application if these names do not match.</li>
</ol>
<p>Once your development environment is configured, you’re ready to sign your application:</p>
<ol>
<li><strong>Request a signature from the RIM Signing Authority:</strong> Use the signing tool to request that the RIM Signing Authority applies a signature to your application.</li>
<li><strong>Apply your signature:</strong> Use the signing tool to sign your application using your Developer Certificate.</li>
</ol>
<p>You now have a signed application that you can upload to BlackBerry App World for distribution to customers or other users. For more information about using BlackBerry App World, see the <a title="Vendor Portal Administration Guide" href="http://docs.blackberry.com/en/developers/deliverables/24387/" target="_new">Vendor Portal Administration Guide</a>.</p>
<p>For detailed instructions, see the following documentation:</p>
<ul>
<li><strong>BlackBerry Tablet OS SDK for Adobe AIR:</strong> you can sign your application using version 0.9.3 or higher of the SDK. See <a href="https://bdsc.webapps.blackberry.com/air/documentation/ww_air_publishing/signing_your_application_ms_1977198_11.html">Signing your application</a> in the BlackBerry Tablet OS SDK for Adobe AIR Developer Guide for more information.</li>
<li><strong>BlackBerry WebWorks SDK for Tablet OS:</strong> you can sign using version Beta 2 or higher of the SDK. Please see the <a href="http://docs.blackberry.com/en/developers/deliverables/23977/" target="_new">BlackBerry WebWorks SDK for Tablet OS Development Guide</a> for more information.</li>
</ul>
<p>Time is running out. Submit your app today!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/4796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/4796/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=4796&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2011/02/blackberry-signing-tool/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1037ddd4aff389505738e6d276e003b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ricardole1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2011/02/playbook_white1.jpg" medium="image">
			<media:title type="html">BlackBerry PlayBook tablet</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating a BlackBerry PlayBook tablet application menu using Tablet OS SDK for Adobe AIR</title>
		<link>http://devblog.blackberry.com/2011/01/blackberry-playbook-tablet-app-menu/</link>
		<comments>http://devblog.blackberry.com/2011/01/blackberry-playbook-tablet-app-menu/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 18:15:33 +0000</pubDate>
		<dc:creator>Ricardo O.</dc:creator>
				<category><![CDATA[Adobe AIR Development]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[BlackBerry PlayBook apps]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[simulator]]></category>
		<category><![CDATA[tablet os]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=3063</guid>
		<description><![CDATA[How to create a simple BlackBerry PlayBook tablet app that drops a menu down from the top edge of the screen when a user swipes down via Adobe AIR.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=4004&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://rimdevblog.files.wordpress.com/2011/01/tablet-os-app-menu.jpg?w=600&#038;h=141" alt="" title="Creating an app menu" width="600" height="141" class="aligncenter size-full wp-image-3064" /></p>
<p>Have you been wondering what you can do with the touch-sensitive bezel around the screen of the <a href="http://us.blackberry.com/playbook-tablet?IID=DEVPBK01242011" target="_new" title="BlackBerry PlayBook tablet">BlackBerry® PlayBook™ tablet</a>? When a user swipes down from the top edge of the screen, the BlackBerry® Tablet OS reports that gesture to the active application.</p>
<p>What you do with that gesture is up to you, and depends heavily on the context of your application. One idea is to display an application menu. This gives you the opportunity to enhance your UI without crowding your limited screen real estate. Let’s create a simple app that drops a menu down from the top edge of the screen when a user swipes down, and hides it again when they touch anywhere else.</p>
<p>Our application needs two classes:</p>
<ul>
<li>A main application class that simulates the primary application UI and listens for the QNXApplicationEvent.SWIPE_DOWN event.</li>
<li>A MenuBar class that contains our UI controls. Our MenuBar should also hide and show itself on demand.</li>
</ul>
<p><span id="more-4004"></span></p>
<h2>Application class</h2>
<p>In your editor, create a file named AppMenuDemo.as. In AppMenuDemo.as, start by importing the packages we’ll need.</p>
<div class="sample">
<pre>
package
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import qnx.events.QNXApplicationEvent;
    import qnx.system.QNXApplication;
</pre>
</div>
<p></p>
<p>Declare the size of the BlackBerry PlayBook tablet screen, and the application class.</p>
<div class="sample">
<pre>
    [SWF(width="1024", height="600", backgroundColor="#cccccc", frameRate="30")]

    public class AppMenuDemo extends Sprite
    {
</pre>
</div>
<p></p>
<p>Create an instance variable to keep track of your MenuBar.</p>
<div class="sample">
<pre>
        private var _menu:MenuBar;
</pre>
</div>
<p></p>
<p>In the constructor, invoke a function to initialize your UI, and create an event listener to receive notifications that the user has swiped down from the top edge of the screen.</p>
<div class="sample">
<pre>
        public AppMenuDemo()
        {
            initializeUI();
            QNXApplication.qnxApplication.addEventListener(QNXApplicationEvent.SWIPE_DOWN, showAppMenu);
        }
</pre>
</div>
<p></p>
<p>Create an initializeUI() method. In initializeUI(), create a Sprite and draw a background on it (blue, in this case).</p>
<div class="sample">
<pre>
        public function initializeUI():void
        {
            var ground:Sprite = new Sprite();
            ground.graphics.beginFill(0x5CACEE,1.0);
            ground.graphics.drawRect(0,0,1024,600);
            ground.graphics.endFill();
</pre>
</div>
<p></p>
<p>Since we&#8217;re overlaying two active UI components (the main UI and the menu bar), we need to decide how to process user interactions when they&#8217;re both visible. Let&#8217;s add an event listener to the main UI. In our case, we created a Sprite for our UI (ground), so we&#8217;re adding the event listener to that object.</p>
<div class="sample">
<pre>
            ground.addEventListener(MouseEvent.MOUSE_DOWN, groundClick);
            addChild(ground);
</pre>
</div>
<p></p>
<p>Instantiate your MenuBar object and add it to the screen. We add it last so that it is the element that displays on top.</p>
<div class="sample">
<pre>
            _menu = new MenuBar();
            addChild(_menu);
        }
</pre>
</div>
<p></p>
<p>Create a showAppMenu() method to respond to a SWIPE_DOWN event.</p>
<div class="sample">
<pre>
        public function showAppMenu():void
        {
</pre>
</div>
<p></p>
<p>If the menu is not currently visible, tell the menu to display itself. Otherwise, do nothing.</p>
<div class="sample">
<pre>
            if(! _menu.isVisible())
            {
                _menu.show();
            }
        }
</pre>
</div>
<p></p>
<p>Create a groundClick() method to decide what to do when a user interacts with the application&#8217;s main UI (the ground object we created above). If the menu is visible, let the logic in the MenuBar class decide how to process the event. Otherwise, pass it to the main logic of your application.</p>
<div class="sample">
<pre>
        private function groundClick(event:MouseEvent):void
        {
            if(_menu.isVisible())
            {
                _menu.processEvent(event);

            } else
            {
                // process the event in your main UI
            }
        }
    }
}
</pre>
</div>
<p></p>
<h2>MenuBar class</h2>
<p>The menu bar is another Sprite that we overlay on top of our main UI. We animate the menu bar sliding down from the top edge of the screen when we display it, and back up into the top edge of the screen when we hide it. We control the animation using the Tweener class in the caurina.transitions package, which is included in the BlackBerry Tablet OS SDK for Adobe® AIR. </p>
<p>In your editor, create another file named MenuBar.as. Again, in MenuBar.as, let&#8217;s import the packages we need.</p>
<div class="sample">
<pre>
package
{
    import caurina.transitions.Tweener;

    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.TimerEvent;
    import flash.utils.Timer;

    import qnx.ui.buttons.LabelButton;
</pre>
</div>
<p></p>
<p>Declare the MenuBar class, and create a few constants to define the size of the menu. This makes it easy to play with different settings, and reuse this class.</p>
<div class="sample">
<pre>
    public class MenuBar
    {
        public static const WIDTH:int = 1024;
        public static const HEIGHT:int = 80;
        public static const VISIBLE_Y:int = 0;
        public static const HIDDEN_Y:int = -HEIGHT;
        public static const SLIDE_TIME:Number = 0.5;
</pre>
</div>
<p></p>
<p>Create an instance variable to keep track of the menu state.</p>
<div class="sample">
<pre>
        private var _active:Boolean;
</pre>
</div>
<p></p>
<p>In the constructor, invoke the initializeUI() method.</p>
<div class="sample">
<pre>
        public MenuBar()
        {
            initializeUI();
        }
</pre>
</div>
<p></p>
<p>In initializeUI(), ensure that the menu is inactive, and hidden.</p>
<div class="sample">
<pre>
        private function initializeUI():void
        {
            _active = false;

            // set default position (HIDDEN_Y)
            this.x = 0;
            this.y = HIDDEN_Y;
</pre>
</div>
<p></p>
<p>In this example, we draw a slightly transparent, gray rectangle to visually define the menu bar. This bar will hold other UI components:</p>
<div class="sample">
<pre>
            this.graphics.beginFill(0x222222,0.7);
            this.graphics.drawRect(0,0,WIDTH,HEIGHT);
            this.graphics.endFill();
</pre>
</div>
<p></p>
<p>Let’s place a button control on the menu bar. </p>
<div class="sample">
<pre>
            var egButton:LabelButton = new LabelButton();
            egButton.label = "Example button";
            egButton.height = 64;
            // set the button in 10 pixels from the left, and center it vertically in the menu bar
            egButton.x = 10;
            egButton.y = 6;
            this.addChild(egButton);
        }
</pre>
</div>
<p></p>
<p>Create an isVisible() method so that other objects can check the visibility of the menu.</p>
<div class="sample">
<pre>
        public function isVisible():Boolean
        {
            return _active;
        }
</pre>
</div>
<p></p>
<p>Create a show() method to display the menu bar. The Tweener class animates the menu sliding down from HIDDEN_Y to VISIBLE_Y.</p>
<div class="sample">
<pre>
        public function show():void
        {
            _active = true;
            Tweener.addTween(this, {y:VISIBLE_Y, time:SLIDE_TIME, transition:"linear"});

        }
</pre>
</div>
<p></p>
<p>Create a hide() method to remove the menu bar. The Tweener class animates the menu sliding up from VISIBLE_Y to HIDDEN_Y.</p>
<div class="sample">
<pre>
        public function hide():void
        {
            _active = false;
            Tweener.addTween(this, {y:HIDDEN_Y, time:SLIDE_TIME, transition:"linear"});
        }
</pre>
</div>
<p></p>
<p>In our application class, we allowed the MenuBar to decide how to handle touch events that were not directed at the menu. This allows us to make the menu bar modal by ignoring clicks outside the bounds of the menu when it&#8217;s active, or close it, or whatever. In this case, we close the menu.</p>
<div class="sample">
<pre>
        public function processEvent(event:MouseEvent):void
        {
            if(event.localY &gt; HEIGHT)
            {
                hide();
            }
        }
    }
}
</pre>
</div>
<p></p>
<p>You can test your application now in the simulator. When the application starts, the screen area is blue. Swipe down from the top bezel. You should see a menu slide down from the top edge, and look like this:</p>
<p><img src="http://rimdevblog.files.wordpress.com/2011/01/tablet-os-app-menu.jpg?w=600&#038;h=141" alt="" title="Creating an app menu" width="600" height="141" class="aligncenter size-full wp-image-3064" /></p>
<p>Our implementation is simple, but hopefully helps get you started with the SWIPE_DOWN event and simple animations. The source files are <a href="http://supportforums.blackberry.com/t5/Tablet-OS-SDK-for-Adobe-AIR/Creating-a-BlackBerry-PlayBook-tablet-application-menu-using-the/ta-p/746061" target="_new">available for download</a>. There&#8217;s still time to submit your application to BlackBerry App World™ for the <a href="http://devblog.blackberry.com/2011/01/free-blackberry-playbook-tablet-offer/" title="free BlackBerry PlayBook tablet offer">free BlackBerry PlayBook tablet offer</a>, so don&#8217;t miss it!</p>
<p>What have you been doing with the swipe down gesture?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/4004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/4004/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=4004&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2011/01/blackberry-playbook-tablet-app-menu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1037ddd4aff389505738e6d276e003b7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ricardole1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2011/01/tablet-os-app-menu.jpg" medium="image">
			<media:title type="html">Creating an app menu</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2011/01/tablet-os-app-menu.jpg" medium="image">
			<media:title type="html">Creating an app menu</media:title>
		</media:content>
	</item>
	</channel>
</rss>
