<?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; BlackBerry Q10</title>
	<atom:link href="http://devblog.blackberry.com/tag/blackberry-q10/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Thu, 23 May 2013 19:58:12 +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; BlackBerry Q10</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>Tips For Bringing Your BlackBerry Z10 Game To The BlackBerry Q10</title>
		<link>http://devblog.blackberry.com/2013/04/blackberryq10-gaming/</link>
		<comments>http://devblog.blackberry.com/2013/04/blackberryq10-gaming/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 16:52:38 +0000</pubDate>
		<dc:creator>Pratik S.</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BlackBerry Q10]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14839</guid>
		<description><![CDATA[With the upcoming release of BlackBerry Q10, there’s never been a better time to bring over your BlackBerry Z10 game and start monetizing on the new form factor. In this post, I will be talking about various porting considerations and best practices to help you get started and ensure that your game runs the best [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14839&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://rimdevblog.files.wordpress.com/2013/04/ztoq.png"><img class="aligncenter size-full wp-image-14841" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/04/ztoq-e1367253023272.png?w=600&#038;h=316" width="600" height="316" /></a></p>
<p>With the upcoming release of BlackBerry Q10, there’s never been a better time to bring over your BlackBerry Z10 game and start monetizing on the new form factor. In this post, I will be talking about various porting considerations and best practices to help you get started and ensure that your game runs the best on Q10.</p>
<p><span id="more-14839"></span></p>
<p>Let’s start off with the hardware differences:</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/04/specs.png"><img class="aligncenter size-full wp-image-14843" alt="specs" src="http://rimdevblog.files.wordpress.com/2013/04/specs-e1367253111400.png?w=600&#038;h=292" width="600" height="292" /></a></p>
<p>The BlackBerry Q10 uses the same chipset and GPU as BlackBerry Z10 variant B with Qualcomm Snapdragon MSM8960 and Adreno 225. The main differences that you need to consider are aspect ratio, screen size, orientation and physical keyboard.</p>
<p><b>Aspect Ratio</b></p>
<p>If you have designed your game around the 16:9 or 15:9 aspect ratio, you will need to evaluate how to layout your game content to adapt to the 1:1 aspect ratio. There are various approaches you can take to accomplish this. You might be tempted to take the easy approach of simply scaling your game screen to 1:1 aspect ratio by using letter boxing. This approach is not recommend as it could negatively impact user experience of your game.  Since The BlackBerry Q10 has a smaller screen compared to the BlackBerry Z10, you will significantly reduce the game interaction area and waste precious screen space that could otherwise be utilized for game content such as HUD or controls. For a landscape game, one approach you could take to solve this is to use a comprise aspect ratio such as 16:11.  For the BlackBerry Z10, display more content on the sides and for the BlackBerry Q10 display more content at the top and bottom.</p>
<p>Similarly for a portrait game (9:15 or 9:16), you can display more content at top and bottom on the BlackBerry Z10 and more content at the sides on the BlackBerry Q10. In the below example, <a href="http://appworld.blackberry.com/webstore/content/24579876" target="_blank">Bejeweled 2</a> displays the time progress bar at the bottom on the BlackBerry Z10 and on the side on the BlackBerry Q10.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/04/compare.png"><img class="aligncenter size-full wp-image-14844" alt="compare" src="http://rimdevblog.files.wordpress.com/2013/04/compare.png?w=531&#038;h=477" width="531" height="477" /></a></p>
<p>If you are using any aspect ratio specific static assets such as backgrounds, images and splash screen, they will need to be scaled accordingly. For the standard splash screen, the <a href="https://developer.blackberry.com/native/" target="_blank">BlackBerry Native SDK</a> allows you to manage multiple device specific splash screens in the same bar-descriptor. For the BlackBerry Q10 you can add a 720&#215;720 splash screen by editing the bar-descriptor using the IDE or a text editor. Here’s an example:</p>
<pre>&lt;splashScreens&gt;
        &lt;image&gt;splash_1280_768.png&lt;/image&gt;
        &lt;image&gt;splash_720_720.png&lt;/image&gt;
&lt;/splashScreens&gt;
      &lt;asset path="assets"&gt;assets&lt;/asset&gt;
      &lt;asset path="icon.png"&gt;icon.png&lt;/asset&gt;
      &lt;asset path="/Users/pratiksapra/assets/splash_1280_768.png"&gt;splash_1280_768.png&lt;/asset&gt;
      &lt;asset path="/Users/pratiksapra/assets/splash_720_720.png"&gt;splash_720_720.png&lt;/asset&gt;</pre>
<p>Once you do this, correct splash screen will be automatically chosen depending on the device your game is launched on.</p>
<p>Next, if your game uses overlay controls such as virtual joysticks, UI elements and menus, you will need to reposition them as needed. The best approach is to lay them out relative to screen width and height thus making them aspect ratio independent. Below is an example of a flexible UI layout used in <a href="http://appworld.blackberry.com/webstore/content/119547" target="_blank">Bard’s Tale</a> that works on both aspect ratios.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/04/bards.png"><img class="aligncenter size-full wp-image-14845" alt="bards" src="http://rimdevblog.files.wordpress.com/2013/04/bards-e1367253830145.png?w=600&#038;h=245" width="600" height="245" /></a></p>
<p><b>Screen Size</b></p>
<p>The BlackBerry Q10 features a 3.1” screen surrounded by a gesture sensitive bezel. If your game uses on-screen controls, it’s important to place them away from the bottom edge of the screen to prevent accidental swipes. An accidental swipe-up gesture during game play will thumbnail your game and cause unnecessary interruption for the user.</p>
<p>Optimizing your game controls is also really important. For example, If your game uses dual virtual joystick control scheme, I would recommend reducing this to just one on-screen joystick.  Due to smaller screen size, the user might end up covering most of the screen when controlling both joysticks using two fingers. We will talk about a solution to this in the later part of this post.</p>
<p><b>Orientation </b></p>
<p>The BlackBerry Z10 supports portrait as the default orientation. If you are setting the orientation in the bar-descriptor for your game, you might be wondering whether this would work on the BlackBerry Q10 without the overhead of creating a separate binary with a different bar-descriptor. To make your life easy, we have made sure that both portrait and landscape orientation settings map to portrait orientation on the BlackBerry Q10. The below example shows how your game would be oriented on the BlackBerry Z10 and the BlackBerry Q10 based on the bar-descriptor orientation setting.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/04/orientation.png"><img class="aligncenter size-full wp-image-14846" alt="orientation" src="http://rimdevblog.files.wordpress.com/2013/04/orientation-e1367254029645.png?w=600&#038;h=416" width="600" height="416" /></a></p>
<p><b>Input </b></p>
<p>The BlackBerry Q10 features a physical keyboard so your game needs to be aware of this. If your game contains any buttons to activate the virtual keyboard, you should make sure they are removed or disabled when the game is running on the BlackBerry Q10. Unlike the virtual keyboard, the physical keyboard is always there and can be utilized as an input mechanism.    You can combine keyboard input with touch screen to offer an intuitive and robust input scheme for your game. For example if you want to optimize the dual virtual joystick input mechanism for the BlackBerry Q10, you can substitute one of the joysticks with keyboard input. Or if your game only requires gamepad style input you can use the keyboard as a gamepad.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/04/gamepad1.png"><img class="aligncenter size-full wp-image-14851" alt="gamepad" src="http://rimdevblog.files.wordpress.com/2013/04/gamepad1.png?w=538&#038;h=341" width="538" height="341" /></a></p>
<p>Integrating keyboard input in your game is super easy. To accomplish this, in your main event loop simply handle the SCREEN_EVENT_KEYBOARD event and check for the keydown value. Here’s a code snippet on how to do this:</p>
<pre><b>if</b> (<b>screen_get_domain</b>() == domain) {

        screen_event_t screen_event = <b>screen_event_get_event</b>(event);

        <b>int</b> screen_val;
        <b>screen_get_event_property_iv</b>(screen_event, <i>SCREEN_PROPERTY_TYPE</i>, &amp;screen_val);

        <b>switch</b> (screen_val) {
        <b>case</b> <i>SCREEN_EVENT_MTOUCH_TOUCH</i>:
//handle touch events

        <b>case</b> <i>SCREEN_EVENT_KEYBOARD</i>:
            <b>screen_get_event_property_iv</b>(screen_event, <i>SCREEN_PROPERTY_KEY_FLAGS</i>, &amp;screen_val);

            <b>if</b> (screen_val &amp; KEY_DOWN) {
                <b>screen_get_event_property_iv</b>(screen_event, <i>SCREEN_PROPERTY_KEY_SYM</i>,&amp;screen_val);

                <b>fprintf</b>(stderr, "The '%c' key was pressed\n", (<b>char</b>)screen_val);

                <b>switch</b> (screen_val) {
                <b>case</b> KEYCODE_W:
                    // Handle Up
                    <b>break</b>;
                <b>case</b> KEYCODE_A:
                    // Handle Left
                    <b>break</b>;
                <b>case</b> KEYCODE_Z:
                    // Handle Down
                    <b>break</b>;
                <b>case</b> KEYCODE_D:
                    // Handle Right 
                    <b>break</b>;
                <b>case</b> KEYCODE_L:
                    //Button A
                    <b>break</b>;
                <b>case</b> KEYCODE_P:
                    //Button B
                    <b>break</b>;
                <b>case</b> KEYCODE_K: 
                    //Button X
                    <b>break</b>;
                <b>case</b> KEYCODE_O:
                    // Button Y
                    <b>break</b>;
                <b>default</b>:
                    <b>break</b>;
                }
            }
            <b>break</b>;
        }</pre>
<p><b>Tools &amp; Deployment</b></p>
<p>To get started, you will need the latest BlackBerry Native SDK 10.1, which includes BlackBerry Q10 support. If you are running an older version please upgrade by visiting <a href="http://developer.blackberry.com/native">http://developer.blackberry.com/native</a>.</p>
<p>To deploy your game on BlackBerry World, follow the regular process for creating a new release in the Vendor Portal. In the supported devices screen, make sure you select BlackBerry Q10.</p>
<p><b>Known Issues</b></p>
<p>There are two known issues with earlier versions of 10.1 device software that you need to be aware of.</p>
<ul>
<li>Audio – In-game audio playback results in complete loss of device audio and a reboot is required to restore audio.</li>
<li>Orientation – If the orientation is set to landscape in the bar-descriptor, the app splash screen and system dialogs such as volume are incorrectly oriented.</li>
</ul>
<p>Both of these issues have been fixed in the latest 10.1 device software posted at the below link so if you are running an older build please upgrade.</p>
<p><a href="https://developer.blackberry.com/blackberry10devalpha/devalpha_update.html">https://developer.blackberry.com/blackberry10devalpha/devalpha_update.html</a></p>
<p>I hope you found the information included in this post useful.  If you have any questions or feedback please leave a comment below or reach out to me directly on Twitter <a href="http://twitter.com/pratiksapra" target="_blank">@pratiksapra</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14839/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14839/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14839&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/04/blackberryq10-gaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/5c7714acaeda7a566baa9545c280c91c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pratiks1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/ztoq-e1367253023272.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/specs-e1367253111400.png" medium="image">
			<media:title type="html">specs</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/compare.png" medium="image">
			<media:title type="html">compare</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/bards-e1367253830145.png" medium="image">
			<media:title type="html">bards</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/orientation-e1367254029645.png" medium="image">
			<media:title type="html">orientation</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/gamepad1.png" medium="image">
			<media:title type="html">gamepad</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry Q10 Device Support Added for Android Apps</title>
		<link>http://devblog.blackberry.com/2013/03/blackberry-q10-android-apps/</link>
		<comments>http://devblog.blackberry.com/2013/03/blackberry-q10-android-apps/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 18:35:49 +0000</pubDate>
		<dc:creator>jamesdreherbb</dc:creator>
				<category><![CDATA[Android Development]]></category>
		<category><![CDATA[BlackBerry World]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android apps]]></category>
		<category><![CDATA[BlackBerry Q10]]></category>
		<category><![CDATA[Keyboard]]></category>
		<category><![CDATA[Q10]]></category>
		<category><![CDATA[QWERTY]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14289</guid>
		<description><![CDATA[With the upcoming (and much anticipated) release of the BlackBerry Q10, Android developers can now target the first qwerty-keyboard device to be released on the BlackBerry 10 mobile computing platform. The even better news for developers is that they can also port their existing BlackBerry 10 Android apps running on the BlackBerry Z10 and BlackBerry [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14289&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://rimdevblog.files.wordpress.com/2013/03/q10.png"><img class="aligncenter size-full wp-image-14290" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/03/q10-e1364220550120.png?w=600&#038;h=600" width="600" height="600" /></a></p>
<p>With the upcoming (and much anticipated) release of the <a href="http://global.blackberry.com/smartphones/blackberry-q10.html" target="_blank">BlackBerry Q10</a>, Android developers can now target the first qwerty-keyboard device to be released on the BlackBerry 10 mobile computing platform. The even better news for developers is that they can also port their existing BlackBerry 10 Android apps running on the BlackBerry Z10 and BlackBerry PlayBook tablet to also include support for the BlackBerry Q10 within the same release build.</p>
<p><span id="more-14289"></span></p>
<p>While the <a href="http://developer.blackberry.com/android" target="_blank">BlackBerry Runtime for Android Apps</a> has a built-in screen manager which will scale the application to the screen size of the device, it’s always best to build your app specific to the device you are targeting to ensure it looks presentable to end-users.</p>
<h4>BlackBerry Z10</h4>
<p>For developers, the key difference between the BlackBerry PlayBook, BlackBerry Z10 and BlackBerry Q10 would be in regard to screen sizes. The all-touch BlackBerry Z10 features a resolution of 1280 x 768 (15:9) on a 4.2-inch, 356 PPI screen. Android resources are pulled in from the res/drawable-xhdpi project folder.</p>
<div id="attachment_14293" class="wp-caption aligncenter" style="width: 257px"><a href="http://rimdevblog.files.wordpress.com/2013/03/android-z10.png"><img class="size-full wp-image-14293" alt="android-z10" src="http://rimdevblog.files.wordpress.com/2013/03/android-z10.png?w=247&#038;h=399" width="247" height="399" /></a><p class="wp-caption-text">BlackBerry Z10 screenshot: 1280&#215;768 background image from res/drawable-xhdpi/device.png</p></div>
<h4>BlackBerry Q10</h4>
<p>The BlackBerry Q10 boasts a 330 PPI screen but with a resolution of 720 x 720 on a 3.1” screen (1:1 aspect ratio). When targeting the BlackBerry Q10, Android developers can leverage the res/drawable-small-square project folder.</p>
<div id="attachment_14292" class="wp-caption aligncenter" style="width: 273px"><a href="http://rimdevblog.files.wordpress.com/2013/03/android-q10.png"><img class="size-full wp-image-14292" alt="android-q10" src="http://rimdevblog.files.wordpress.com/2013/03/android-q10.png?w=263&#038;h=404" width="263" height="404" /></a><p class="wp-caption-text">BlackBerry Q10 screenshot: 720&#215;720 background image from res/drawable-small-square/device.png</p></div>
<h4>BlackBerry PlayBook</h4>
<p>In addition to the BlackBerry Z10 and BlackBerry Q10 models above, the BlackBerry PlayBook also supports Android apps. With a 7” screen resolution of 1024 x 600, this qualifies the BlackBerry PlayBook as an mdpi device pulling in resources from the res/drawable-mdpi project folder.</p>
<div id="attachment_14294" class="wp-caption aligncenter" style="width: 531px"><a href="http://rimdevblog.files.wordpress.com/2013/03/android-pb.png"><img class="size-full wp-image-14294" alt="android-pb" src="http://rimdevblog.files.wordpress.com/2013/03/android-pb.png?w=521&#038;h=338" width="521" height="338" /></a><p class="wp-caption-text">BlackBerry PlayBook screenshot: 1024 x 600 background image from res/drawable-mdpi/device.png</p></div>
<h4>ADT Project Structure</h4>
<p>Both the BlackBerry Z10 and BlackBerry Q10 support icons with a size of 114 x 114 pixels (BlackBerry PlayBook: 86 x 86 pixels) which should be placed within their respective res/drawable project folders as well. Within the same Android project you can target both of the BlackBerry 10 form factors within the same release build by following these standard Android best practices.</p>
<div id="attachment_14296" class="wp-caption aligncenter" style="width: 309px"><a href="http://rimdevblog.files.wordpress.com/2013/03/android-folders.png"><img class="size-full wp-image-14296" alt="android-folders" src="http://rimdevblog.files.wordpress.com/2013/03/android-folders.png?w=299&#038;h=560" width="299" height="560" /></a><p class="wp-caption-text">Single Android project structure for BlackBerry Z10, BlackBerry Q10 &amp; BlackBerry PlayBook</p></div>
<p>You can repackage your Android APK to the BlackBerry BAR file format using the new v1.5.2 SDK, and test/debug using device simulators for the BlackBerry Z10 (BlackBerry 10 Dev Alpha B), BlackBerry Q10 (BlackBerry Dev Alpha C) and BlackBerry PlayBook  tablet available within our <a href="https://developer.blackberry.com/android/tools/">Android tooling page</a>. Other pages which you should find useful would be our <a href="https://developer.blackberry.com/android/documentation/overview_plugin_1849581_11.html">documentation</a> page for the BlackBerry Plug-in for ADT and the Android <a href="https://developer.blackberry.com/android/apisupport/">API Support</a> page.</p>
<h3><b>BlackBerry World Submission</b></h3>
<p>After testing your Android application and repackaging it into the BAR file format, you can submit your app to the <a href="http://appworld.blackberry.com/isvportal" target="_blank">BlackBerry World</a> storefront via the following steps:</p>
<ol>
<li>Log into the <a href="https://appworld.blackberry.com/isvportal">vendor portal</a></li>
<li>Select Manage products</li>
<li>Add a new release</li>
<li>Set ‘supported devices’ appropriately based on BlackBerry Q10, BlackBerry Z10 and/or BlackBerry PlayBook support for your app. If the app supports more than one device you can choose to select multiple devices for the same release build (BAR file). On the contrary, you can also upload specific file bundles (BARs) for each BlackBerry 10 device.</li>
</ol>
<div id="attachment_14298" class="wp-caption aligncenter" style="width: 610px"><a href="http://rimdevblog.files.wordpress.com/2013/03/android-submit.png"><img class="size-full wp-image-14298" alt="android-submit" src="http://rimdevblog.files.wordpress.com/2013/03/android-submit-e1364230212726.png?w=600&#038;h=319" width="600" height="319" /></a><p class="wp-caption-text">Supported BlackBerry 10 devices within the BlackBerry World vendor portal</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14289/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14289&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/03/blackberry-q10-android-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fd0d0b7be2e3c018911a84a02a72b22d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jamesdreherbb</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/q10-e1364220550120.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/android-z10.png" medium="image">
			<media:title type="html">android-z10</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/android-q10.png" medium="image">
			<media:title type="html">android-q10</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/android-pb.png" medium="image">
			<media:title type="html">android-pb</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/android-folders.png" medium="image">
			<media:title type="html">android-folders</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/android-submit-e1364230212726.png" medium="image">
			<media:title type="html">android-submit</media:title>
		</media:content>
	</item>
		<item>
		<title>Bringing Cascades BlackBerry Z10 apps to the BlackBerry Q10</title>
		<link>http://devblog.blackberry.com/2013/03/blackberry-z10-apps-to-blackberry-q10/</link>
		<comments>http://devblog.blackberry.com/2013/03/blackberry-z10-apps-to-blackberry-q10/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 14:26:52 +0000</pubDate>
		<dc:creator>suavekz</dc:creator>
				<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[BlackBerry Q10]]></category>
		<category><![CDATA[BlackBerry Z10]]></category>
		<category><![CDATA[Cascades]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14258</guid>
		<description><![CDATA[Some of us like the big screen and some love the physical keyboard. The BlackBerry 10 platform embraces both form factors. As developers, we have a few more things to consider when targeting different form factors. The aim should be to create the best app for each type of device. The BlackBerry 10 Native Beta [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14258&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/03/cascades1.jpg?w=450" /></p>
<p>Some of us like the big screen and some love the physical keyboard. The BlackBerry 10 platform embraces both form factors. As developers, we have a few more things to consider when targeting different form factors. The aim should be to create the best app for each type of device.</p>
<p>The BlackBerry 10 Native Beta SDK contains both the BlackBerry Z10 and the BlackBerry Q10 simulators and you can download them <a href="http://developer.blackberry.com/cascades" target="_new">here</a>.</p>
<p>In this article, we’ll describe what application developers must consider when bringing their BlackBerry Z10 applications to the BlackBerry Q10. The following topics will be discussed:</p>
<ol>
<li>Differences in form factor and their impact</li>
<li>Strategy to leverage the Cascades framework and tooling to develop for both form factors effectively</li>
<li>How to deploy to BlackBerry World and what to consider</li>
</ol>
<p>These topics are discussed in much more detail in the online documents and can be found <a href="http://developer.blackberry.com/cascades/documentation/dev/bb10_devices" target="_new">here</a>.</p>
<h3><strong>Differences in form factor and their impact</strong></h3>
<p>With just a bit of planning and foresight, developers can leverage the tooling, the framework and the platform to easily support both form factors.</p>
<p>What are some of the options to consider? Before moving forward, we need to first understand the differences.</p>
<h3><strong>Hardware Differences:</strong></h3>
<p><strong>BlackBerry Z10</strong></p>
<ul>
<li>Display screen size: 1280 x 768 pixels</li>
<li>Aspect ratio: 15:9 portrait view</li>
<li>Pixels per inch: 356</li>
</ul>
<p><strong>BlackBerry Q10: </strong></p>
<ul>
<li>Display screen size: 720 x 720 pixels</li>
<li>1:1 aspect ratio</li>
<li>330 PPI</li>
</ul>
<p>There are certain things that the Cascades framework will provide when developing for both form factors.</p>
<h3><strong>Items handled by Cascades:</strong></h3>
<ul>
<li>Core component scaling (including the action items, action bar and menus)</li>
<li>Asset scaling (see section 2.4 for more details)</li>
<li>Dock and Stack Layouts</li>
<li>Theme switching (bright and light)</li>
<li>Alphabetic scroll bar</li>
<li>Non-sticky title</li>
<li>Navigation shortcuts</li>
<li>Keyboard over shortcut API</li>
</ul>
<p>As mentioned before, the framework will take the app a long way towards the BlackBerry Q10 form factor, but it won’t handle everything. In particular, developers should consider the following items.</p>
<h3><strong>Items handled by the apps:</strong></h3>
<ul>
<li>Addition/removal of static title bars</li>
<li>Simplification of title bars or smaller assets</li>
<li>Custom component scaling</li>
<li>Background bitmaps</li>
<li>Absolute layouts (If you use them, you have work to do here)</li>
<li>Selection of theme</li>
<li>App specific shortcuts</li>
<li>Re-layout of view (in some cases you need to re-design the layout for the best User Experience on a smaller screen)</li>
</ul>
<p>More information on screen size implications can be found <a href="https://developer.blackberry.com/design/bb10/screen_sizes.html" target="_new">here</a>.</p>
<p><strong>Screen Theme</strong> (Bright vs. Dark and what it means)</p>
<p>By default the BlackBerry Z10 Cascades applications uses the bright theme. The BlackBerry Q10 device on the other hand, prefers the dark theme due to the OLED screen. The framework will automatically select the theme for each device. However, if you have static assets, you’ll need to provide the dark theme alternatives using the static asset selector (see section 2.3) or ensure that your assets convert well to the dark theme. You should also reference the <a href="http://developer.blackberry.com/design/bb10/oled.html" target="_new">Designing for OLED displays</a> document in the UX guidelines.</p>
<h3><strong>EXTRA BlackBerry Q10 only: Keyboard Shortcuts and Key Listeners</strong></h3>
<p>Physical keyboard BlackBerry users are used to a certain standard of having convenient shortcuts provided.</p>
<p>There are certain system shortcuts that come pre-built in the framework and developers can attach these to their applications.</p>
<p>Developers are also free to create their own shortcuts that make sense for their particular application.</p>
<p>All about Keyboard Shortcuts and a sample can be found <a href="http://developer.blackberry.com/cascades/documentation/dev/shortcuts/" target="_new">here</a>.</p>
<p>Listeners can also be used to listen to any key pressed on the keyboard. More information on this can be found <a href="http://developer.blackberry.com/cascades/documentation/dev/shortcuts/keylistener.html" target="_new">here</a>.</p>
<h3><strong>Strategy to leverage the Cascades framework and tooling to develop for both form factors effectively</strong></h3>
<p>Since the full touch device is the first launched device, most developers will be bringing their full touch applications to the physical keyboard devices.</p>
<p>Say you have your full touch BlackBerry 10 application developed in Cascades and choose to ignore the physical keyboard device in your development. What would that mean?</p>
<p>The Cascades framework was designed with both form factors in mind, so most likely your application will more or less run. The Cascades framework will layout the controls for you, the graphics will scale accordingly.</p>
<p>However, such an app will not provide the best user experience on the QWERTY form factor.</p>
<p>Since we strive for the best overall user experience, as developers we need to follow some best practices.</p>
<p>What are some of the key points to consider when developing?</p>
<ol>
<li>Embrace <strong>relative layouts</strong> so that the framework can help you with arranging your components relative to the boundary of the screen and regardless of the device screen size.</li>
<li>Avoid on-screen clutter by <strong>using margins and space quotas</strong>. By using space quotas effectively you can designate the proportion of space that each component uses relative to another. This creates a layout that <strong>adapts</strong> to a different screen resolution.</li>
<li>Leverage the Momentics IDE <strong>asset selector</strong> feature to dynamically select different assets for different screen resolutions. This includes both QML files and images. This approach will allow you to create a <strong>single binary</strong> that dynamically adapts to different screen sizes by choosing the correct asset. You can select assets based on different <strong>screen size</strong> as well as a different <strong>theme</strong>!</li>
<li>For more info on this approach see: <a href="http://developer.blackberry.com/cascades/documentation/ui/resolution/using_static_asset.html" target="_new">Assets/Tooling/Project setup</a></li>
<li>Create images that <strong>scale uniformly</strong>. The technique of nine-slicing lets you create such images. This method will ensure that should you re-use the same image on different screen resolutions, these images will scale <strong>properly</strong> and without distortions.</li>
<li>In some cases, should you choose to create a <strong>separate</strong> binary for the BlackBerry Q10 device you can do so. In this case, you can specify the necessary layouts, images and assets only for that device. Should you choose to do so, you’d be maintaining <strong>two</strong> separate builds and must deploy them separately (see Section #3).</li>
</ol>
<p>Here is a graphical summary of the points discussed:</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/03/z10_q10_graph.png?w=450" /></p>
<p><strong>Bonus</strong>: Please be sure to check that your loading screen scales properly. If it does not, you’ll need to provide a scalable or different image.</p>
<h3><strong>Deploying to BlackBerry World</strong></h3>
<p>Deploying to BlackBerry World for the BlackBerry Q10 is quite easy. Here are the steps you’ll need to follow:</p>
<ol>
<li>Log into vendor portal</li>
<li>Go to Manage products</li>
<li>Add a new release</li>
<li>Set ‘supported devices’ to BlackBerry Q10. If the .bar supports more you can do that as well, or also have different file bundles for different devices</li>
</ol>
<p>Regarding item #4. Here is the guiding principle.</p>
<p>If your app contains one binary (BAR) file for both the BlackBerry Q10 and BlackBerry Z10 and you followed the practices above and selected to support both devices with one build, then all you need to do is have your application support both devices in the table below.</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/03/cascades2.jpg?w=450" /></p>
<p>If however, you’ve created a separate new build that’s targeting the BlackBerry Q10 only. You’ll need to make sure that the new BAR file you’ve submitted only selects the BlackBerry Q10 device. If you have any questions, let us know in the comments!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14258/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14258/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14258&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/03/blackberry-z10-apps-to-blackberry-q10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da12ace9c233f2b65ec288ed8ff59f06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">suavekz</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/cascades1.jpg?w=450" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/z10_q10_graph.png?w=450" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/cascades2.jpg?w=450" medium="image" />
	</item>
		<item>
		<title>Targeting the BlackBerry Q10 with BlackBerry WebWorks</title>
		<link>http://devblog.blackberry.com/2013/02/blackberry-q10-webworks/</link>
		<comments>http://devblog.blackberry.com/2013/02/blackberry-q10-webworks/#comments</comments>
		<pubDate>Tue, 05 Feb 2013 10:29:23 +0000</pubDate>
		<dc:creator>Ken W</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[BlackBerry Jam]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WebWorks]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry Q10]]></category>
		<category><![CDATA[blackberry webworks]]></category>
		<category><![CDATA[Physical Keyboard]]></category>
		<category><![CDATA[QWERTY]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13478</guid>
		<description><![CDATA[The excitement of last week’s launch of BlackBerry 10 still hasn&#8217;t worn off around these parts. We feel it in the air. We are at the brink of something new in the world of mobile computing. As you know, we here at BlackBerry have been working tirelessly to get to this point, the global launch of BlackBerry [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13478&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://rimdevblog.files.wordpress.com/2013/02/webworks-q10.png"><img class="aligncenter size-full wp-image-13483" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/02/webworks-q10-e1360060101271.png?w=600&#038;h=600" width="600" height="600" /></a></p>
<p>The excitement of last week’s <a href="http://devblog.blackberry.com/2013/01/blackberry-z10/">launch of BlackBerry 10</a> still hasn&#8217;t worn off around these parts. We feel it in the air. We are at the brink of something new in the world of mobile computing. As you know, we here at BlackBerry have been working tirelessly to get to this point, the global launch of BlackBerry 10.  But the launch of BlackBerry 10 is just the beginning.  There is still so much more to do, and the team here is already starting on the next steps.  The first of these is adding support for the BlackBerry Q10 and its physical keyboard into our <a href="https://developer.blackberry.com/html5/" target="_blank">BlackBerry WebWorks SDK</a> and the <a href="https://developer.blackberry.com/html5/download/" target="_blank">Ripple Emulator</a>.</p>
<p>Luckily, from a WebWorks perspective, everything you need is already on the BlackBerry 10 operating system.  The two major areas where the BlackBerry Q10 and the BlackBerry Z10 are the physical keyboard and the screen size.</p>
<p>For the physical keyboard, the system takes care of handling the input for you and piping it into your app just as if it came from the virtual keyboard on a BlackBerry Z10.  However, the traditional BlackBerry user is also very used to having actions be triggerable from the keyboard when not actually performing text input.  Think of clicking ‘r’ in the Inbox on a BlackBerry OS device in order to trigger a Reply action.  If you wish to provide your user keyboard shortcuts within your application, you can use the standard HTML5 onkeypress event.  Set a listener on the appropriate HTML elements, process the key stroke and trigger the action.</p>
<p>In terms of the screen size, HTML5 standard approaches in responsive design are more than adequate to allow you to layout the UI of your application appropriately in different screen resolutions.  The major difference we have from a system perspective is related to some key User experience decisions made for the smaller screen size, and that the WebWorks platform handles for you.  For example, the context menu on the BlackBerry Z10 automatically triggers an overflow UI if there are more than seven items in the menu.  For the BlackBerry Q10 it will do this for four or more items.  The BlackBerry Q10, due to its OLED display, also uses true black in some UI elements to be more efficient.  These are just some examples, but I want to reiterate that all of this is supported out of the box by the web platform that is part of the latest BlackBerry 10 OS builds, so you will not actually see a BlackBerry WebWorks SDK refresh for BlackBerry Q10 support. There is a BlackBerry WebWorks refresh in the works to add a few new APIs, but we’ll talk about that soon in a different post.</p>
<p>What you will find is a refresh to Ripple to allow you to select the BlackBerry Z10 or the BlackBerry Q10 for emulation when targeting the BlackBerry 10 platform.  This will allow you to emulate and test your layout against the different screen sizes of the devices and ensure your design will work for both devices.  If you already have Ripple installed, you should see an update come in automatically.  If you don’t already have Ripple you can <a href="http://developer.blackberry.com/html5/download/">get it here</a>.  Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13478/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13478&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/02/blackberry-q10-webworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3b422c1a037b89d4ddf5bef834dbdeef?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kjwallis</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/02/webworks-q10-e1360060101271.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
	</channel>
</rss>
