<?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; Tips and Tricks</title>
	<atom:link href="http://devblog.blackberry.com/category/tips-and-tricks/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; Tips and Tricks</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>Command Line Rocks! Building BlackBerry 10 Apps Without An IDE</title>
		<link>http://devblog.blackberry.com/2013/05/building-apps-without-an-ide/</link>
		<comments>http://devblog.blackberry.com/2013/05/building-apps-without-an-ide/#comments</comments>
		<pubDate>Mon, 06 May 2013 12:32:05 +0000</pubDate>
		<dc:creator>doturner</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14899</guid>
		<description><![CDATA[Don’t get me wrong, I love our Momentics IDE. It provides many features that help to build apps rapidly including the QML previewer and code auto-completion. Sometimes, however, it can be extremely useful to know what’s going on under-the-hood. This article will aim to explain how to build a native app from the command line, [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14899&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Don’t get me wrong, I love <a href="http://developer.blackberry.com/native" target="_blank">our Momentics IDE</a>. It provides many features that help to build apps rapidly including the QML previewer and code auto-completion. Sometimes, however, it can be extremely useful to know what’s going on under-the-hood.</p>
<p>This article will aim to explain how to build a native app from the command line, using the tools bundled in the BlackBerry 10 Native SDK and your favourite text editor.</p>
<p><span id="more-14899"></span></p>
<h2>Set up your environment</h2>
<p>The Native SDK includes a script called bbndk-env.sh (or .bat on Windows) in the root folder that initialises the environment variables that the other tools depend on. I will refer to the install location of the Native SDK as $NDK_DIR.</p>
<pre>Mac: source $NDK_DIR/bbndk-env.sh
Win: $NDK_DIR/bbndk-env.bat</pre>
<h2>So what does this script set?</h2>
<p>The most important environment variables are:</p>
<p><b>QNX_TARGET</b>: This directory contains all the configuration files and libraries for the BlackBerry 10 device, the <i>target</i> that we want our app to run on.  You can see all the libraries which can be linked against in $QNX_TARGET/armle-v7/lib and $QNX_TARGET/armle-v7/usr/lib.</p>
<p><b>QNX_HOST</b>: This directory contains the tools and configuration files for our host system, ie Windows, Mac or Linux. It includes a compiler, linker and assembler for cross compiling to various architectures, as well as <a href="https://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.native_sdk.devguide/com.qnx.doc.native_sdk.devguide/topic/c_understanddevenv_use_commandline.html">command line tools for packaging, signing and deploying your application</a>.</p>
<h2>Building for the ARM architecture</h2>
<p>You may have noticed the use of armle-v7 in the above directory structure. This refers to the processor architecture on BlackBerry 10: <b>ARM Little Endian Version 7</b>. To build binaries that run on BlackBerry 10 you need to compile for this architecture.</p>
<p>Start by creating a folder to hold our app&#8217;s files, call it GoodbyeIDE. From now on I will refer to this as $PROJECT_DIR. Inside this folder create a file called main.c with the following content:</p>
<pre>#include &lt;stdio.h&gt;
int main()
{
  fprintf(stdout, "Goodbye IDE!\n");
  return 0;
}</pre>
<p>Now lets compile it. Change to $PROJECT_DIR and execute:</p>
<pre>qcc -Vgcc_ntoarmv7le main.c -o main</pre>
<p>Lets explain this command in a bit more detail. qcc stands for QNX C Compiler. BlackBerry 10 is built on top of QNX and uses many of its build tools.</p>
<p>qcc is essentially a wrapper for gcc  (GNU Compiler Collection). The -V switch tells qcc which version of gcc to use, in this case its the ntoarmv7le version which stands for QNX Neutrino ARM Version 7 Little Endian (a bit of a mouthful).</p>
<p>To build for the BlackBerry 10 simulator you need to use the gcc version for the x86 architecture.</p>
<pre>qcc -Vgcc_ntox86 main.c -o main</pre>
<p>To view a full list of the available gcc versions run:</p>
<pre>qcc -V</pre>
<p>The main.c -o main part of the command just specifies the input C filename and output binary filename.</p>
<p>OK, so now we should have a binary (called main) that will run on a BlackBerry 10 device. This binary won&#8217;t run on your host operating system since it&#8217;s not compiled for the same architecture. If you have a working gcc you can compile it by doing:</p>
<pre>gcc main.c -o main2
./main2</pre>
<p>When you execute main2 you should see &#8220;Goodbye IDE&#8221;.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/05/cmd1.png"><img class="size-full wp-image-14903 aligncenter" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/05/cmd1.png?w=454&#038;h=190" width="454" height="190" /></a></p>
<h2>Create the BAR descriptor XML</h2>
<p>BlackBerry 10 apps are packaged as BAR (<b>B</b>lackBerry <b>A</b>pplication a<b>R</b>chive) files. To create a BAR file we need a descriptor file called bar-descriptor.xml. This file includes information about the app such as name, version, required permissions and a list of assets.</p>
<p>Create the bar-descriptor.xml file with the following content:</p>
<pre>&lt;qnx&gt;
  &lt;id&gt;com.example.GoodbyeIDE&lt;/id&gt;
  &lt;versionNumber&gt;1&lt;/versionNumber&gt;
  &lt;name&gt;Goodbye IDE&lt;/name&gt;
  &lt;asset path="main" entry="true"&gt;main&lt;/asset&gt;
&lt;/qnx&gt;</pre>
<p>From our point of view the most important line in bar-descriptor.xml is this one:</p>
<pre>&lt;asset path="main" entry="true"&gt;main&lt;/asset&gt;</pre>
<p>This specifies that the BAR contains a file called main which is the entry point for the app.</p>
<p><a href="https://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.native_sdk.devguide/com.qnx.doc.native_sdk.devguide/topic/r_blackberry_tablet_dtd_intro.html#r_blackberry_tablet_dtd_intro">A full list of BAR application descriptor parameters is available here</a>.</p>
<h2>Packaging and deploying your app</h2>
<p>Now that we have a binary and an application descriptor we are ready to create a BAR file.</p>
<p>A BAR file is essentially a zip file which contains all your app&#8217;s assets and the meta information from bar-descriptor.xml. In fact, if you rename a .bar file to .zip you will be able to extract it to see all the files in that app.</p>
<p>To create a BAR file run the following command:</p>
<pre>blackberry-nativepackager -package GoodbyeIDE.bar bar-descriptor.xml -devMode -debugToken ~/Library/Research\ In\ Motion/debugtoken1.bar</pre>
<p>Note that the -devMode and -debugToken flags are only required if you are deploying to a physical device. This is a handy feature that allows you to deploy your app without signing it, as long as your debug token is installed on the device.</p>
<p>To do this you&#8217;ll need to <a href="https://www.blackberry.com/SignedKeys/codesigning.html">register with RIM to sign applications</a> and <a href="https://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.native_sdk.devguide/com.qnx.doc.native_sdk.devguide/topic/t_setup_manual_create_debug_token_cmdline.html">create a debug token</a>.</p>
<p>So now you have a BAR file called GoodbyeIDE.bar you can deploy it to the device using the following command:</p>
<pre>blackberry-deploy -installApp 169.254.0.1 -password pass GoodbyeIDE.bar</pre>
<p><b>169.254.0.1</b> is the IP of your target and <b>pass</b> is the device password.</p>
<p>If you take a look at your application icons, you should see a new one called <b>Goodbye IDE</b> (as specified in the &lt;name&gt; tag in bar-descriptor.xml).</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/05/cmd2.png"><img class="aligncenter size-full wp-image-14904" alt="cmd2" src="http://rimdevblog.files.wordpress.com/2013/05/cmd2-e1367843338680.png?w=400&#038;h=400" width="400" height="400" /></a></p>
<p>If you tap on the icon your app should run! But&#8230;nothing happened, right?</p>
<h2>Viewing log files over SSH</h2>
<p>Actually the app did run, it&#8217;s just that all it did was print &#8220;Goodbye IDE!&#8221; to the stdout. The stdout on BlackBerry 10 is directed into a log file. We can view this log file by SSHing onto the device. Here&#8217;s how:</p>
<p>First we have to tell the device that we want to create a secure connection to it:</p>
<pre>blackberry-connect 169.254.0.1 -password pass</pre>
<p>Now open an SSH client (such as <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">putty</a>) and run:</p>
<pre>ssh devuser@169.254.0.1</pre>
<p>You should now be connected via SSH. Feel free to poke around! Apps are installed in <b>/accounts/1000/appdata</b>. Each app is given its own <a href="https://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.native_sdk.devguide/com.qnx.doc.native_sdk.devguide/topic/accessible_folders.html">sandbox folder</a> with a unique name based on its id (which we specified in bar-descriptor.xml).</p>
<p>Example sandbox folder name: <b>com.example.GoodbyeIDE.testDev__GoodbyeIDEcf9b848</b></p>
<p>The log file can be found in the <b>logs</b> directory under the sandbox folder name. To view the file just run:</p>
<pre>cat log</pre>
<p>The log file is re-created each time the app is run. To test that the app is working delete the log file, tap on the app icon and run the above command again.</p>
<h1>Summary</h1>
<p>That&#8217;s it for now. The next article will focus on making your life easier by using Makefiles, the Qt build system and creating a more logical project folder structure.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14899/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14899&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/building-apps-without-an-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/210521b8148cd3623a5b7883fcf4caa4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">doturner</media:title>
		</media:content>

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

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/cmd2-e1367843338680.png" medium="image">
			<media:title type="html">cmd2</media:title>
		</media:content>
	</item>
		<item>
		<title>Count.ly Realtime Mobile App Analytics Is Now Available For BlackBerry 10</title>
		<link>http://devblog.blackberry.com/2013/02/count-ly-blackberry-10/</link>
		<comments>http://devblog.blackberry.com/2013/02/count-ly-blackberry-10/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 14:48:57 +0000</pubDate>
		<dc:creator>Luca Filigheddu</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[realtime]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13812</guid>
		<description><![CDATA[Last year, in December, during the BlackBerry Jam we ran in Istanbul thanks to the support of the local BlackBerry team, I had the pleasure of meeting with Görkem Çetin, founder of Count.ly, a mobile app analytics platform. Görkem is pretty popular in the Open Source community in Turkey and I was very happy he [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13812&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last year, in December, during the BlackBerry Jam we ran in Istanbul thanks to the support of the local BlackBerry team, I had the pleasure of meeting with Görkem Çetin, founder of <a href="http://count.ly/" target="_blank">Count.ly</a>, a mobile app analytics platform. Görkem is pretty popular in the Open Source community in Turkey and I was very happy he decided to attend our event.</p>
<p>What’s Count.ly? It is a real-time mobile analytics platform that shows information by using eye-catching visual elements. Görkem provided me with a test account and after logging in, I was very impressed by what I saw. The UI is gorgeus and the amount of useful and critical information a dev can get about their app is impressive.</p>
<p>Moreover, it&#8217;s an <b>open-source project </b>in which the team aims to discuss the future of Count.ly in an open, democratic environment. They offer the developers the opportunity to take part in the community, to send bug reports, feature requests, to provide fixes and best practices. It collects data from mobile phones, and visualizes this information to analyze mobile application usage and end-user behavior.</p>
<p><span id="more-13812"></span></p>
<p>Having the ability to see how your users behave is critical for the success of an app. Developers can get a clear picture on what’s working well and what’s not working, what their users like the most, what the least/most used feature is and, last but not least, how much time people spend in your app and doing what.</p>
<p>When we met, BlackBerry 10 was not supported yet, but they were very interested in investing in our new upcoming platform (after the conference, even more!) and for that reason, twenty days after, they finally published their first SDKs for BlackBerry 10.</p>
<p>What’s so special with Count.ly?</p>
<ul>
<li>It has a <b>dashboard</b>
<ul>
<li>where you stay up to date</li>
<li>where you can easily monitor your data with graphics</li>
<li>which shows you <b>everything at once</b> with no need to dig in several pages</li>
<li>where you can track <b>unlimited number of applications</b> and switch between your apps, games and ebooks</li>
</ul>
</li>
</ul>
<p><a href="http://rimdevblog.files.wordpress.com/2013/02/countly1.png"><img class="aligncenter size-full wp-image-13813" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/02/countly1.png?w=604&#038;h=386" width="604" height="386" /></a></p>
<ul>
<li>It has a special <b>user behaviour stats </b>experience in which;
<ul>
<li>you can track and visualize your users&#8217; behaviours</li>
<li>you can see your application&#8217;s <b>in-app performance</b></li>
<li>you can understand your customer&#8217;s behaviour and <b>where user left off</b></li>
<li>you can observe your players closely to ensure success and maximize your online game revenue</li>
</ul>
</li>
</ul>
<ul>
<li>You can <b>build better apps, games and ebooks</b>;
<ul>
<li>by measuring and evaluating mobile app engagement as it enables optimization of mobile content</li>
<li>by exploring where a spike occurs and by personalizing and optimizing your app according to stats</li>
<li>by the help of the support that Countly offers for leading smartphones (iOS, Android, Windows Phone and BlackBerry)</li>
</ul>
</li>
</ul>
<ul>
<li>You can produce <b>electronic reports</b> with <b>customizable charts</b> and tables, showing how your application performed for a given period, add / remove pages through report generator.</li>
</ul>
<p>Also, Count.ly is free. You can install Count.ly in-app analytics tool on your server to track unlimited number of mobile applications, if you want.</p>
<p>Here is what Onu Alp, Soner, co-founder of Count.ly, told me:</p>
<p>&#8220;The best feature of Count.ly is custom events: we help developers identify in-app purchase patterns, defining the best flow for payment. This is a crucial factor towards maximizing revenues in e-books and games. We are thrilled with what BlackBerry provides in their next-gen mobile OS, and decided to invest in BlackBerry 10 SDK. Being the most complete open source, real-time mobile analytics app in the world, we believe Count.ly will provide a lot of value for BlackBerry 10 developers&#8221;</p>
<p>If you are a BlackBerry 10 developer looking for a good option for in-app analytics, Count.ly is definitely a great choice. The team is also very accessible and happy to help if needed.</p>
<p>You can download the <a href="https://github.com/Countly/countly-sdk-blackberry-webworks">Countly WebWorks SDK from GitHub here</a>, while the <a href="https://github.com/craigmj/countly-sdk-blackberry10-cascades">Cascades SDK can be download from here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13812/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13812/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13812&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/02/count-ly-blackberry-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d5f08858996f1a3f396417883f8d8a70?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lfiligheddu</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/02/countly1.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Create an App in Minutes Using BlackBerry App Generator</title>
		<link>http://devblog.blackberry.com/2013/02/blackberry-app-generator-setup/</link>
		<comments>http://devblog.blackberry.com/2013/02/blackberry-app-generator-setup/#comments</comments>
		<pubDate>Thu, 14 Feb 2013 18:07:25 +0000</pubDate>
		<dc:creator>Donny Halliwell</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[best BlackBerry development]]></category>
		<category><![CDATA[BlackBerry 10 apps]]></category>
		<category><![CDATA[Which BlackBerry apps]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13767</guid>
		<description><![CDATA[(Originally posted on the Inside BlackBerry Blog) We spent part of last week at BlackBerry Jam Europe, which is generally a conference dedicated to those who already develop apps for BlackBerry. However, there are also many programs for beginners. Since I’ve never created an app, I decided to take a run at developing an app [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13767&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>(Originally posted on the <a title="Inside BlackBerry Blog" href="http://blogs.blackberry.com/2013/02/blackberry-app-generator" target="_new">Inside BlackBerry Blog</a>)</em></p>
<p>We spent part of last week at <a href="http://www.blackberryjamconference.com/europe" target="_new">BlackBerry Jam Europe</a>, which is generally a conference dedicated to those who already develop apps for BlackBerry. However, there are also many programs for beginners. Since I’ve never created an app, I decided to take a run at developing an app for the Inside BlackBerry Blog. As I have literally no experience developing apps, I asked Alex and Luke for some help.</p>
<p>We used the <a href="http://www.blackberryappgenerator.com/blackberry/" target="_new">BlackBerry App Generator</a> to automatically pull content from the Inside BlackBerry Blog, and the <a href="https://www.facebook.com/BlackBerryNA" target="_new">BlackBerry Facebook</a> and <a href="http://www.youtube.com/user/BlackBerry" target="_new">BlackBerry YouTube</a> pages. It took us only about 10 minutes from start to finish and it was absolutely free. The result is a great-looking app that pulls in all of our articles, posts and videos. Let’s have a look as Alex walks us through the process.</p>
<p style="text-align:center;"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='560' height='315' src='http://www.youtube.com/embed/5VelIsypz1o?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p style="text-align:center;">[ <a href="http://youtu.be/5VelIsypz1o" target="_new">YouTube link for mobile viewing</a> ]</p>
<p>See how easy it was? Using the BlackBerry App Generator you could have your own app up and running in just a few minutes, even with no development experience. Do you have a blog or content and think it would make a great app? Give the BlackBerry App Generator a try for yourself and let us know.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13767/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13767/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13767&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/02/blackberry-app-generator-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c2b929f8b5acf1cf5659d9c787b19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">donnyhalliwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Marketing Your App – BlackBerry World Search Optimization</title>
		<link>http://devblog.blackberry.com/2013/01/marketing-your-app-blackberry-world/</link>
		<comments>http://devblog.blackberry.com/2013/01/marketing-your-app-blackberry-world/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 20:47:35 +0000</pubDate>
		<dc:creator>rproudfoot</dc:creator>
				<category><![CDATA[BlackBerry World]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Discovery]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13287</guid>
		<description><![CDATA[Here&#8217;s a guest post from Jeff Mayerczak &#8211; Ed. BlackBerry World 4.3 changes the BlackBerry World search algorithm to help make the discovery of your app or game easier for customers. To take advantage of these changes, we wanted to share with you how the following product attributes are prioritized to determine search results. The attributes are [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13287&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><i>Here&#8217;s a guest post from Jeff Mayerczak &#8211; Ed.</i></p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/01/devblog-appbbworld.png"><img class="aligncenter size-full wp-image-13289" alt="devblog - appbbworld" src="http://rimdevblog.files.wordpress.com/2013/01/devblog-appbbworld-e1359143893695.png?w=600&#038;h=248" width="600" height="248" /></a></p>
<p><a href="http://appworld.blackberry.com/webstore/" target="_blank">BlackBerry World</a> 4.3 changes the BlackBerry World search algorithm to help make the discovery of your app or game easier for customers. To take advantage of these changes, we wanted to share with you how the following product attributes are prioritized to determine search results. The attributes are listed in order of importance to the algorithm:<em></em></p>
<ol>
<li>Product Name</li>
<li>Keywords</li>
<li>Vendor Name</li>
<li>Short Description</li>
</ol>
<p>It is important to note that the Long Description is no longer considered by the Search algorithm.</p>
<p><span id="more-13287"></span></p>
<h3>Product Name</h3>
<p>The most important product attribute is the Product Name &#8211; the title of your application shown to the Consumer. Product Names can be specified by Platform and Language. This could allow you to have:</p>
<ul>
<li>‘Awesome App” for BlackBerry 10</li>
<li>“Awesome App HD” for BlackBerry PlayBook</li>
</ul>
<h3>Keywords</h3>
<p>Keywords are the second most important attribute in determining search results and provide new flexibility and creativity to get your product noticed. Introduced to the <a href="https://appworld.blackberry.com/isvportal" target="_blank">BlackBerry World Vendor Portal</a> in 2012, Keywords will now be used to determine search results. Keywords can be specified by Platform and Language.</p>
<p>Changing the Keywords from the Vendor Portal takes effect between one and nine hours after saving the changes.</p>
<ul>
<li><b>Number of Keywords.  </b>There are up to ten (10) Keywords per Platform and Language pairing.
<ul>
<li>
<address>For example, the BBOS Platform for French has up to 10 Keywords and the BBOS Platform for English has up to 10 keywords</address>
</li>
</ul>
</li>
<li><b>Maximum Length of a Keyword:</b> Each Keyword cannot be more than 100 characters or 3 words long.
<ul>
<li>
<address>For example, “Built For BlackBerry”</address>
</li>
</ul>
</li>
<li><b>Maximum Length of ALL Keywords for a Platform/Language Pair:</b> There is a 1,000 character maximum length for all the Keywords per Platform and Language pair.
<ul>
<li>
<address>For example, the BBOS Platform for French has a 1,000 character maximum and the BBOS Platform for English has a 1,000 character limit.</address>
</li>
</ul>
</li>
<li><b>Term Frequency within Keywords </b>– the number of times a term appears in the keywords increases the relevance.
<ul>
<li>
<address>For example, having “Black” 5 times within the Keywords gives more relevance than having “Black” only once.</address>
</li>
</ul>
</li>
<li><b>Term Proximity</b> – for multiple search terms, say A and B, the keyword where A is closer to B has higher relevance over keywords where A is further from B. For example:
<ul>
<li>
<address>Given:</address>
<ul>
<li>App #1 with Keyword = Built for BlackBerry</li>
<li>App #2 with Keyword = Built for the BlackBerry</li>
<li>Consumer search = “Built BlackBerry”</li>
</ul>
</li>
</ul>
</li>
</ul>
<address>
<ul>
<ul>
<li>Then Search Results:
<ul>
<li>App #1</li>
<li>App #2</li>
</ul>
</li>
</ul>
</ul>
</address>
<ul>
<ul>
<li>
<address>WHY? The number of characters between Built and BlackBerry is less in App #1’s keyword than in App #2’s.</address>
</li>
</ul>
<li><b>Relevance</b> – the keywords must be relevant to the product
<ul>
<li>
<address>Keywords cannot be competitive products or other product names.</address>
</li>
<li>
<address>Keywords cannot be popular terms for the sake of receiving a high hit rate.</address>
</li>
</ul>
</li>
</ul>
<h3>Vendor Name</h3>
<p>The third most important attribute is Vendor Name.</p>
<h3>Short Description</h3>
<p>The least important attribute is Short Description. It is also available by Platform and Language pairing.</p>
<p>Head over to BlackBerry World Vendor Portal and update your app today!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13287/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13287&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/01/marketing-your-app-blackberry-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b77ae3f6fe658f08cb49c46119549d9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rproudfoot</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/01/devblog-appbbworld-e1359143893695.png" medium="image">
			<media:title type="html">devblog - appbbworld</media:title>
		</media:content>
	</item>
		<item>
		<title>Convert Your Free/Paid Apps to Freemium Apps – The Best of Both Worlds</title>
		<link>http://devblog.blackberry.com/2013/01/convert-apps-to-freemium/</link>
		<comments>http://devblog.blackberry.com/2013/01/convert-apps-to-freemium/#comments</comments>
		<pubDate>Fri, 18 Jan 2013 15:34:57 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Freemium]]></category>
		<category><![CDATA[Paid]]></category>
		<category><![CDATA[Payment SDK]]></category>
		<category><![CDATA[Payment Service SDK]]></category>
		<category><![CDATA[Xploding Boxes]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13153</guid>
		<description><![CDATA[With the launch event for BlackBerry 10 less than two weeks away, I figured this would be an ideal time to remind our developer community of some of the great options and flexibility provided by the Payment SDK, which leverages the BlackBerry World client to allow the sale of digital goods and subscriptions. As many [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13153&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>With the launch event for BlackBerry 10 less than two weeks away, I figured this would be an ideal time to remind our developer community of some of the great options and flexibility provided by the Payment SDK, which leverages the BlackBerry World client to allow the sale of digital goods and subscriptions.</p>
<p style="text-align:center;"><img alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/01/freemiumappspic1.png?w=179" /></p>
<p>As many of you may be aware, there are essentially two main models for distributing applications through BlackBerry World: paid and free. With paid applications, the gap between a user seeing an application in BlackBerry World and actually purchasing that application can be a bit of a problem, especially for newer applications.</p>
<p><span id="more-13153"></span></p>
<p>Free applications can spread quickly but don’t generate revenue when downloaded. So how do you get your applications into the hands of the masses without worrying about this gap and still make money? It’s not a trick question &#8211; the answer lies with a hybrid of the two models discussed above by use of the <a href="https://developer.blackberry.com/develop/platform_services/payment.html" target="_new">Payment Services SDK.</a></p>
<p>Enter the freemium (free + premium) business model. The freemium model uses the approach of providing free products/services with paid premium upgrades. Using this model, you would be able to provide a version of your application for free, allowing anyone to test your application without paying a cent, and then offer premium items for purchase using the APIs available in the Payment Services SDK to enhance the user experience. Of course, there are many options for how this could be achieved; the best way to proceed may be to use an example and evaluate a few strategies.</p>
<p>The simplest application to use this model that comes to mind would be a game. With a game, you can allow users have a feel for the gameplay, use the controls and get absorbed into the plot by distributing it for free. One great example where the freemium model is being used today is in the games created by the BlackBerry World vendor <a href="http://appworld.blackberry.com/webstore/vendor/1111/?lang=en" target="_new">Ebscer</a>, in particular <a href="http://appworld.blackberry.com/webstore/content/26560/?lang=en" target="_new">Xploding Boxes</a>. I will be using this example to draw parallels to a few concepts discussed in the remainder of this blog post.</p>
<p>To monetize, here are a few options which leverage the Payment Service SDK:</p>
<p><strong>Upgrade</strong></p>
<ul>
<li>The idea with the upgrade would be to provide a base or lite version of the application for free and provide the means for the user to pay to unlock the full version. In this scenario, you could present the user with an “Upgrade” button which, when clicked, uses the Payment Services SDK to purchase a Digital Good from BlackBerry World. Once this Digital Good is purchased, the full version of the application can be unlocked for the user.</li>
</ul>
<p><strong>Unlock Levels</strong></p>
<ul>
<li>An alternate approach could be to create the application with 10 (to pick an arbitrary number) levels, but only allow the first 5 to be playable for free. The remaining 5 could be purchased in order to become playable and complete the game. For this you could use a single Digital Good to unlock all 5 levels, sell them individually or in bundles.</li>
</ul>
<p>In the example of Xploding boxes, the first 25 levels are completely free to play when the application is first installed. As you work your way through the game and have exploded the first 25 levels worth of boxes you then have the option to complete an in-app payment to unlock all 360 levels! The first 25 levels do a great job of getting the player hooked with simple, fun and mind-bending puzzle gameplay, so once those are completed, the nominal fee to unlock an extra 335 levels is more than worth it.</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/01/freemiumappspic2.jpg?w=180" /></p>
<p><strong>Unlock Features</strong></p>
<ul>
<li>Suppose the user would like to customize their game character, or access items for use in the game which will help them complete the game more easily. Why not offer the ability to purchase premium features such as clothing to customize character appearances or a charm to speed up character movements? These features could be as simple as a change to a variable value in the game, but could mean increasing the chances of returns and adoptions of your once-free application.</li>
</ul>
<p>There are many more options to monetize your applications using the Payment Services SDK; the above three are just some ways this could be done. There is also no restriction to choosing one singular approach; you could use multiple approaches in the same application. As well, you can always release updated versions of your applications with new features and new options to enhance the application through paid premium upgrades.</p>
<p>A few minor suggestions when choosing to use the freemium business model: Make the application addictive/engaging and usable on its own without the user needing to purchase premium features. When selling premium features ensure that the end user receives a good return on their investment by making the features add good value to the application. Finally, premium features should be just that &#8211; “premium” &#8211; so it is important that they meet or exceed the caliber that users have come to expect from the rest of your application. Going back to the example of Xploding Boxes, all three of these criteria are met: the game is very fun and addictive, the extra 335 levels is a great return providing hours (if not days) of more fun, and as the additional levels extend the existing gameplay model, the user knows exactly what they are getting before making the purchase.</p>
<p>The Payment Service SDK is already supported in current BlackBerry smartphones (OS &lt;=7.1) as well as the BlackBerry PlayBook OS and BlackBerry 10, so no matter what development approach you use (BlackBerry Java, WebWorks HTML5, Native, Cascades Framework, Adobe AIR, Android) there are APIs to support in-app purchases of Digital Goods.  The only thing left to do is implement the freemium model to your existing* or upcoming applications! Oh, and if you would like to have a good example of how this is done, then I would highly recommend giving <a href="http://appworld.blackberry.com/webstore/content/26560/?lang=en">Xploding Boxes</a> a try on your BlackBerry PlayBook tablet as well as BlackBerrysmartphones (OS &lt;=7.1 and BlackBerry 10) &#8211; it is free, after all.</p>
<p>Ready to get started? Here are some resources to help:</p>
<p><a href="https://developer.blackberry.com/cascades/documentation/device_platform/paymentservice/index.html" target="_new">Cascades Framework</a><br />
<a href="http://developer.blackberry.com/native/documentation/bb10/recipe_payment_2006487_11.html" target="_new">Native SDK</a><br />
<a href="https://developer.blackberry.com/html5/apis/blackberry.payment.html" target="_new">HTML5 WebWorks</a><br />
<a href="https://developer.blackberry.com/air/documentation/ww_air_services/payment_service_overview_ms_1970847_11.html" target="_new">Adobe AIR</a><br />
<a href="http://developer.blackberry.com/android/apisupport/apisupport_inapp_payments_support.html" target="_new">Runtime for Android Apps</a><br />
<a href="http://docs.blackberry.com/en/developers/subcategories/?userType=21&amp;category=Payment+Service">Java (BlackBerry OS &lt;= 7.1)</a></p>
<p><i>BlackBerry World applications cannot change between paid and free models</i></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13153&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/01/convert-apps-to-freemium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/75e7e69af37da351a3462a17576c2209?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gbeuk</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/01/freemiumappspic1.png?w=179" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/01/freemiumappspic2.jpg?w=180" medium="image" />
	</item>
		<item>
		<title>Maps. They Don’t Love You Like I Love You.</title>
		<link>http://devblog.blackberry.com/2012/12/blackberry-webworks-maps/</link>
		<comments>http://devblog.blackberry.com/2012/12/blackberry-webworks-maps/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 15:17:42 +0000</pubDate>
		<dc:creator>chadtatro</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WebWorks]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[Bing Maps]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Leaflet]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[OpenLayers]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[webworks]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12521</guid>
		<description><![CDATA[Forget everything you know about working with maps and BlackBerry WebWorks. Mapping just got real, real easy! We heard you ask for an easy way to integrate mapping services with your BlackBerry WebWorks applications, and today I’m happy to announce that on BlackBerry 10, the process has become much simpler. We&#8217;ve put together a straight-forward sample [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12521&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-12522" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/12/webworks-maps.jpg?w=600&#038;h=364" height="364" width="600" /></p>
<p>Forget everything you know about working with maps and BlackBerry WebWorks. Mapping just got real, real easy!</p>
<p>We heard you ask for an easy way to integrate mapping services with your BlackBerry WebWorks applications, and today I’m happy to announce that on BlackBerry 10, the process has become much simpler.</p>
<p>We&#8217;ve put together a straight-forward sample application that will show you how to integrate with a few of the services out there:  Google Maps, Bing, Leaflet, and OpenLayers.</p>
<p>If you&#8217;ve been following the progression of the BlackBerry WebWorks framework, you&#8217;ve probably noticed an awesome amount of transparency. Open web standards are lovingly embraced and adopted here at RIM. Even the framework itself is staged publicly on GitHub.  Continuing this theme of openness and following web standards, the maps samples we&#8217;ve released are not platform specific.  Whether you’re writing an exclusive BlackBerry app, or planning on targeting multiple platforms using Cordova (previously known as PhoneGap), these samples are most definitely for you!</p>
<p><span id="more-12521"></span></p>
<p>For each service, you’ll be able to learn how to:</p>
<p>-          Setup a mapping service to use to in your app</p>
<p>-          Find the users location with HTML5 Geolocation</p>
<p>-          Perform a search for nearby points of interest</p>
<p>-          Display push-pins on the map, showing the search results.</p>
<p>The goal of this sample is to show you how you can quickly integrate maps into your app and have it perform great in WebWorks for BlackBerry 10.</p>
<p>When it comes down to picking which service is right for your app, it’s completely up to you.  One of my teammates, Jim Ing, wrote a really in-depth article on maps, comparing services and much more.  I strongly recommend checking it out “<a href="http://devblog.blackberry.com/2012/05/lightweight-maps-for-mobile-part-1/" target="_blank">Lightweight Maps For Mobile</a>”.</p>
<p><b>Check out the sample, in action!</b></p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/lSn3rex7PCI?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p><b>Download the source code.</b></p>
<p>Ready to add some maps to your app? Download the source code from <a href="https://github.com/blackberry/BB10-WebWorks-Samples/tree/master/Maps" target="_blank">our GitHub repository</a>!</p>
<p><b>Calling all Native developers!</b></p>
<p>Have you been yearning to contribute to the BlackBerry 10 cause but weren’t sure how?  Why not take this WebWorks sample, and build a Native version?!  If you’re interested, get in touch with Shadid Haque (<a href="http://twitter.com/ShadidHaque" target="_blank">@ShadidHaque</a>) on Twitter.</p>
<p>If you&#8217;ve got a success story, have a question, or just want to chat about apps, hit me up on Twitter <a href="http://www.twitter.com/chadtatro" target="_blank">@chadtatro</a>!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12521/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12521&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/12/blackberry-webworks-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0fb86e7b2b71616806266b535686102c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ctetreault1980</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/12/webworks-maps.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrating your Android app from BlackBerry PlayBook to BlackBerry 10</title>
		<link>http://devblog.blackberry.com/2012/11/migrating-your-android-app-from-blackberry-playbook-to-blackberry-10/</link>
		<comments>http://devblog.blackberry.com/2012/11/migrating-your-android-app-from-blackberry-playbook-to-blackberry-10/#comments</comments>
		<pubDate>Fri, 16 Nov 2012 16:23:25 +0000</pubDate>
		<dc:creator>James B.</dc:creator>
				<category><![CDATA[Android Development]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[BlackBerry 10 apps]]></category>
		<category><![CDATA[blackberry app world]]></category>
		<category><![CDATA[Migrating]]></category>
		<category><![CDATA[playbook apps]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12097</guid>
		<description><![CDATA[Here&#8217;s a guest post on porting Android apps &#8211; Ed. As you will see below, there’s very little (usually just an icon change) required to transition you app from the BlackBerry® PlayBook™ to BlackBerry 10, or the other way around. So even if you haven’t submitted your Android app for distribution to BlackBerry App World™ [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12097&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>Here&#8217;s a guest post on porting Android apps &#8211; Ed.</em></p>
<p><img class="aligncenter size-full wp-image-12100" title="8032816332_4f0959b340" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/11/8032816332_4f0959b340.jpg?w=500&#038;h=333" height="333" width="500" /></p>
<p>As you will see below, there’s very little (usually just an icon change) required to transition you app from the BlackBerry® PlayBook™ to BlackBerry 10, or the other way around. So even if you haven’t submitted your Android app for distribution to BlackBerry App World™ yet, now is a great time to do so.</p>
<p><b>Icon size</b></p>
<p>The main difference to consider when you migrate your app from BlackBerry PlayBook to BlackBerry 10, is a change in the recommended icon size. Be sure to update your app’s icon to take advantage of the higher resolution and have your app stand out in the app grid. The <a href="https://developer.blackberry.com/devzone/design/application_icons.html">suggested</a> icon sizes are as follows:</p>
<p>BlackBerry PlayBook: 86x86px</p>
<p>BlackBerry 10 full touch devices: 114 x 114</p>
<p>BlackBerry 10 keyboard devices: 114 x 114</p>
<p><span id="more-12097"></span></p>
<p><b>Fixed orientation</b></p>
<p>BlackBerry 10 smartphones are fixed to display content in the portrait position, unless your app uses the accelerometer to adjust the UI layout based on the portrait (vertical) or landscape (horizontal) positioning of the device.</p>
<p><b>API (sub) set</b></p>
<p>The good news on the API front is that once your app is functional on the BlackBerry PlayBook, than it will have no problems running on BlackBerry 10 smartphones. You can think of the supported APIs on BlackBerryPlayBook as a subset of the BlackBerry 10 APIs. Everything that is supported on PlayBook, will be supported on BlackBerry 10 and more. Feel free to reference our <a href="http://developer.blackberry.com/android/apisupport/">API support page</a>, as well as our <a href="http://developer.blackberry.com/android/tools/roadmap/">API roadmap</a>.</p>
<p><b>Resolution Differences</b></p>
<p>If your application is drawing the UI directly, take note of the change in resolution for both the full touch and keyboard devices. Otherwise, the BlackBerry Runtime for Android apps will scale your app accordingly to fit on the screen.</p>
<p>BlackBerry PlayBook: 1024 x 600</p>
<p>BlackBerry 10 full touch devices: 1280 x 720 (16:9)</p>
<p>BlackBerry 10 keyboard devices: 720 x720 (1:1)</p>
<p><b>Vendor portal</b></p>
<p>BlackBerry App World has already <a href="http://devblog.blackberry.com/2012/10/submit-apps-blackberry-10/">opened its doors</a> for you to submit your Android app for BlackBerry 10 full touch model.  To support BlackBerry 10 with an existing Approved/Up for Sale application, please submit it as a new release. Otherwise, when you’re creating a new release in the BlackBerry App World Vendor Portal, you will now see a new Family called “BlackBerry 10” and one new device “All Touch”. You can select “All Touch” to target your app for BlackBerry 10. The BlackBerry 10 Dev Alpha is also still available for targeting your app for testing purposes.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12097/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12097/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12097&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/migrating-your-android-app-from-blackberry-playbook-to-blackberry-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce35b06fe01edd09efd48d6cef1e4b0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jamesbr1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/8032816332_4f0959b340.jpg" medium="image">
			<media:title type="html">8032816332_4f0959b340</media:title>
		</media:content>
	</item>
		<item>
		<title>PeaksAndValleys: Limitless Landscape</title>
		<link>http://devblog.blackberry.com/2012/11/peaksandvalleys-landscape/</link>
		<comments>http://devblog.blackberry.com/2012/11/peaksandvalleys-landscape/#comments</comments>
		<pubDate>Tue, 13 Nov 2012 21:35:46 +0000</pubDate>
		<dc:creator>Erik O.</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[web apps]]></category>
		<category><![CDATA[WebGL]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12024</guid>
		<description><![CDATA[PeaksAndValleys is a sample WebGL application developed for the BlackBerry® platform. It is primarily a learning resource for developers implementing pure WebGL along with additional HTML5 gaming concepts. It has also been open-sourced on Github because, well, we love open source. To learn more about WebGL and HTML5 gaming, be sure to join our webinar [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12024&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>PeaksAndValleys is a sample WebGL application developed for the BlackBerry® platform. It is primarily a learning resource for developers implementing pure WebGL along with additional HTML5 gaming concepts. It has also been <a href="https://github.com/blackberry/WebGL-Samples/tree/master/PeaksAndValleys" target="_new">open-sourced on Github</a> because, well, we love open source. To learn more about WebGL and HTML5 gaming, be sure to join our <a href="http://devblog.blackberry.com/2012/11/webcast-html5-gaming/" target="_new">webinar on November 15th</a>. If you’ve already developed an HTML5 game, join us on November 16th for the <a href="http://devblog.blackberry.com/2012/11/got-game-port-a-thon/" target="_new">BlackBerry Got Game Port-a-Thon</a> with some pretty awesome prizes – including trips to the Game Developer Conference 2013 in San Francisco, CA.</p>
<p><img class="aligncenter size-full wp-image-12025" title="TITLE_IMAGE" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-1.jpg?w=550&#038;h=284" width="550" height="284" /></p>
<p style="text-align:center;"><i>Now with 4500% more unique peaks and valleys.</i></p>
<p>On November 2nd, PeaksAndValleys 2.0 was uploaded to Github with a number of improvements. In the first release, we relied on a static map that was 150 by 150 vertices (22,500 total vertices.) When we’re talking about a map, we’re just referring to a grid of vertices where each vertex has a specific height.</p>
<p><span id="more-12024"></span></p>
<p><img class="aligncenter size-full wp-image-12026" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-2.jpg?w=300&#038;h=300" width="300" height="300" /></p>
<p style="text-align:center;"><i>Bird’s eye view of a 33 by 33 vertex grid (map); each vertex has a specific height associated with it.</i></p>
<p>These 22,500 vertices were all generated during startup with randomized heights. It was a good initial implementation, but subject to a number of limitations:</p>
<ul>
<li>Maybe we want a fixed / persistent world to traverse.</li>
<li>We can’t expand the map much more due to performance reasons.</li>
<li>If the player runs in any direction for long enough, they will hit the edge of the map.</li>
</ul>
<p>Let’s take a look at each of these individually.</p>
<h3><strong>Fixed / Persistent World</strong></h3>
<p>One of the more common approaches to this problem is the use of a static source of data; in our case, a height map. This is the approach opted for in PeaksAndValleys 2.0. The following is an example of what a height map might look like:</p>
<p><img class="aligncenter size-full wp-image-12027" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-3.jpg?w=300&#038;h=300" width="300" height="300" /></p>
<p style="text-align:center;"><i>Sample height map (originally 1024 by 1024 pixels).</i></p>
<p>Each pixel represents one vertex (or point) of the map, and the RGB colour of that pixel is used to determine the height of each vertex. In the case of PeaksAndValleys, the lowest height occurs at pure black (RGB = 0&#215;000000) and the highest height at pure white (0xFFFFFF).</p>
<p>Though the height map is only 1024 by 1024 pixels, we can apply a scaling factor to extend the map across larger distances in our WebGL world.</p>
<p>Depending on how smooth the source image is, we may get areas where there is a very low region next to a very high region. To prevent drastic changes in terrain, a smoothing algorithm was implemented that averages the height of each pixel with that of its neighbours.</p>
<p>And with this, we address the fixed / persistent world by using a static data source. We can quickly see how multiple height maps and randomized starting locations can expand the versatility of this approach.</p>
<h3><strong>Performance</strong></h3>
<p>As noted, the first release of PeaksAndValleys contained a static 150 by 150 vertex area and expanding to a larger number of vertices would have an impact on performance; so then what good is a 1024 by 1024 height map?</p>
<p>In our case, we’re actually only loading a 121 by 121 region at any given time. As the player traverses the terrain, we are continuously reloading the surrounding region data (with the player at the center.) This means that as the player moves around, terrain in their vicinity is continually loaded from the height map.</p>
<p>There is a lot of processing that needs to go on in order to keep loading terrain &#8212; so much that if we do this processing on the main application thread, we’ll see a drop to roughly 30 frames per second. This is where Web Workers come in, for which the implementation can be seen in <a href="https://github.com/blackberry/WebGL-Samples/blob/master/PeaksAndValleys/js/GLTerrainWorker.js" target="_new">GLTerrainWorker.js</a>.</p>
<p>A Web Worker allows a separate thread to perform actions without interfering with our main application thread. Our main application thread is where all of our interactions and rendering are performed, so if we can minimize the work being done there, we can improve our frames per second and responsiveness.</p>
<p>Web Workers aren’t without their limitations. Specifically affecting us, we cannot:</p>
<ul>
<li>Access the DOM. This eliminates WebGL rendering directly on the Web Worker.</li>
<li>Pass objects with functions between the main application thread and Web Worker.</li>
</ul>
<p>These two limitations mean that while we can perform our processing on a Web Worker, we actually need to pass the processed data back to our main application thread in order to update our rendering objects. We do this via the <strong>onMessage</strong> listener and <strong>postMessage</strong> initiator to initialize our Web Worker with the data it will need, and then pass subsets of that data at various intervals. You can see this initialization and rendering update performed in <a href="https://github.com/blackberry/WebGL-Samples/blob/master/PeaksAndValleys/js/GLTerrain.js#L59" target="_new">GLTerrain.js</a>.</p>
<p>By offloading this processing to a Web Worker, we can continuously load more data off the main application thread, and only pass back the final data results to be assigned to our renderers. The end result is increasing our frames per second from roughly 30 to 50-60 frames per second; a huge win. To learn more about Web Workers, the following <a href="http://www.html5rocks.com/en/tutorials/workers/basics/" target="_new">HTML5 Rocks tutorial</a> is a great starting point.</p>
<h3><strong>Seamless Terrain</strong></h3>
<p>The final issue we had with our 150 by 150 static area was that when you run to the edge of the map, you hit the border. Loading data from a larger 1024 by 1024 area certainly extends the time before the player hits the border, but inevitably they will if they keep moving in one direction.</p>
<p>To counter this, the application continuously loads an area of pixels surrounding the player. As you reach any of the edges, data from the opposite side of the map will we used to populate that area. This produces a continuous terrain, even when travelling near the edges of the map.</p>
<p><img title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-4.jpg?w=300" width="300" />   <img title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-5.jpg?w=300" width="300" /></p>
<p style="text-align:center;"><i>Red cross represents the location of the player, white area represents the data we’ve loaded.</i></p>
<p>By wrapping the data that we load as we get close to the edges, we can in essence allow the player to run forever. You may notice that this image isn’t intended to be seamless (i.e. when wrapping around, the colours at the borders do not match up or flow together). This can be overcome by using a height map that is already seamless (i.e. it has already been processed to ensure that the pixels on the north side match those on the south, and those on the east match those on the west). In the case of PeaksAndValleys, our smoothing algorithm was implemented to wrap around the image when necessary (i.e. at the edges), thus turning non-seamless images into height map data that is seamless.</p>
<h3><strong>Preprocessing Data</strong></h3>
<p>To obtain usable height map data, we must:</p>
<ul>
<li>Read a source image; in our case 1024 by 1024 pixels.</li>
<li>Perform height calculations.</li>
<li>Calculate the normal (perpendicular vector) of each point.</li>
<li>Calculate texture coordinates.</li>
</ul>
<p>This involved quite a bit of math and processing power. Mathematical calculations are an area where JavaScript performance has historically suffered. Attempting to perform these actions while the application loads leads to a PC load time around 5 seconds and a mobile device load time around 20-25 seconds.</p>
<p>This also means that we are re-calculating data on every load just to get the same result as our previous run &#8212; a very inefficient approach.</p>
<p>To address this, a Node.js <a href="https://github.com/blackberry/WebGL-Samples/tree/master/PeaksAndValleys/tools/preprocessor" target="_new">preprocessor tool</a> was created that reads in an image, along with some parameters, and generates a <strong>json</strong> file with the resulting vertex, normal, and texture data required by our WebGL application. On a 1024 x 1024 image, the resulting file is roughly 50mb in size. Originally, this file was closer to 120mb, however by truncating decimal points to 5 significant digits the overall size was reduced.</p>
<p>As a result our application doesn’t actually process any data on load. Instead of feeding in an image, we are now feeding in the output <strong>json</strong> file with all calculations already in place. That being said, we are still loading a 50mb file which does take some time, but now we’ve managed to cut the loading time closer to 5 seconds on a mobile device.</p>
<p>Using preprocessed data also minimizes the amount of work the Web Worker has to do, as it will simply retrieve the appropriate data based on the user’s location and pass that data back to the main application thread.</p>
<h3><strong>Summary</strong></h3>
<p>Ultimately, PeaksAndValleys has seen a large number of improvements in the terrain implementation. From preprocessing / generating seamless height maps to leveraging Web Workers and minimizing strain on the main application thread, we now have a much more versatile world.</p>
<p>There are still some issues such as terrain popping into view as you move about. There is also room for optimization by only loading a cone of data in the player’s field of view (as opposed to a square in all directions around the player). These are topics that will be addressed in the next release.</p>
<p>For more information on this project, be sure to check out the Github release. Feel free to leave questions there, or reach out to me directly on Twitter® via <a href="https://twitter.com/WaterlooErik" target="_new">@WaterlooErik</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12024/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12024&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/peaksandvalleys-landscape/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0788073ae3c85a2b7e415fa106832a51?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eoros</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-1.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-2.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-3.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-4.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-5.jpg" medium="image" />
	</item>
		<item>
		<title>How To Succeed in BlackBerry App World Without Really Trying</title>
		<link>http://devblog.blackberry.com/2012/11/blackberry-app-world-success/</link>
		<comments>http://devblog.blackberry.com/2012/11/blackberry-app-world-success/#comments</comments>
		<pubDate>Fri, 02 Nov 2012 17:48:52 +0000</pubDate>
		<dc:creator>Veronica O</dc:creator>
				<category><![CDATA[BlackBerry World]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[app world]]></category>
		<category><![CDATA[blackberry app world]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Keywords]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[Meta]]></category>
		<category><![CDATA[Meta Data]]></category>
		<category><![CDATA[profit]]></category>
		<category><![CDATA[Sales]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11570</guid>
		<description><![CDATA[Guest post from Joseph &#8211; Ed. With the upcoming launch of BlackBerry® 10, we’ve got a few new features on their way and we want you to be prepared for them. We understand that the success of your app is based on marketing properly to as many customers as possible. With this in mind, we&#8217;ll [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11570&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><i>Guest post from Joseph &#8211; Ed.</i></p>
<p>With the upcoming launch of BlackBerry® 10, we’ve got a few new features on their way and we want you to be prepared for them.</p>
<p>We understand that the success of your app is based on marketing properly to as many customers as possible. With this in mind, we&#8217;ll be introducing a new <strong>Improved Relevance Marketing Meta-Data</strong> feature set.</p>
<p>So what does this mean for you? Well, a lot. When we launch this new feature set, you&#8217;ll be able to upload multiple sets of meta-data (this includes screenshots and descriptions) that will be platform and language-specific. That&#8217;s right &#8212; no need to spread your applications across multiple product SKUs.</p>
<p>For example, if you want to deploy an app supporting BlackBerry® OS, BlackBerry® PlayBook™ tablets and BlackBerry 10, you can do it all under a single application submission instead of three – all the while maintaining distinctive descriptions and screenshots for each platform.</p>
<p><span id="more-11570"></span></p>
<p>What&#8217;s the benefit to you? Less SKUs in the store to manage &#8211; a single app supplies the binaries and meta-data for every platform you support. What&#8217;s the benefit to end-users? When they upgrade their BlackBerry smartphone to BlackBerry 10 or buy a BlackBerry PlayBook tablet, their apps can quickly and easily be reinstalled via My World. This also means that you keep your customer base when your users change platforms. Additionally, the user will see meta-data (description, screenshots, etc) that is optimized for his/her device platform.</p>
<p>Some updates to the BlackBerry App World™ storefront search will be made to further improve app discoverability. In January 2013, it will be updated to include searching on the following fields:</p>
<ul>
<li>Title</li>
<li>Keywords</li>
<li>Vendor Name</li>
<li>Short Description</li>
</ul>
<p>Long description will no longer be indexed for search.</p>
<p>Below you&#8217;ll find all the details currently available and how they compare to what will be available when these features launch shortly.</p>
<p><img class="aligncenter size-full wp-image-11871" title="TITLE_IMAGE" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/11/app-world-search.jpg?w=600&#038;h=546" height="546" width="600" /></p>
<p>So, there you have it! Sound off in the comments and let us know what you think.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11570/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11570&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/blackberry-app-world-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b375d2578c668cc015d7452d495c9ff?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">veronchiquita</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/app-world-search.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrate with BBM and Watch Your Application Go Viral</title>
		<link>http://devblog.blackberry.com/2012/11/bbm-integration/</link>
		<comments>http://devblog.blackberry.com/2012/11/bbm-integration/#comments</comments>
		<pubDate>Thu, 01 Nov 2012 19:13:52 +0000</pubDate>
		<dc:creator>MSohm</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[bbm]]></category>
		<category><![CDATA[BBM integration]]></category>
		<category><![CDATA[BBM SP]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[blackberry messenger]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11860</guid>
		<description><![CDATA[If you could promote your application on a rapidly growing social network with 60+ million active users &#8211; 70% of which use it daily &#8211; with just a few lines of code, would you do it? I think the more appropriate question is, why haven’t you done it yet? Meet the BlackBerry® Messenger Social Platform [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11860&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-6944" title="TITLE_IMAGE" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2011/08/bbm-icon.jpg?w=294&#038;h=277" height="277" width="294" /></p>
<p>If you could promote your application on a rapidly growing social network with 60+ million active users &#8211; 70% of which use it daily &#8211; with just a few lines of code, would you do it? I think the more appropriate question is, why haven’t you done it yet?</p>
<p>Meet the <a href="https://developer.blackberry.com/devzone/develop/bbm_connected/bbm.html" target="_new">BlackBerry® Messenger Social Platform</a> (BBM™ SP), which you can use to enable your application to go viral with very little effort. Approximately 2% of applications in the BlackBerry App World™ storefront have connected to the BBM SP; however, that group accounts for over 20% of all downloads! Spending just half an hour to add this to your application can really pay off. With minimal development effort, Foursquare was able to integrate their application with the BBM SP, resulting in a doubling of downloads in a single day. Nobex Radio saw a 52% increase in downloads after they added support for the BBM SP.</p>
<p>Continue reading for a high level overview of what can be done using the BBM SP APIs. Today we’ll cover the “What” of the BBM SP. Future articles in this series will provide more technical “How To” for both Native and BlackBerry® WebWorks™ developers. The features discussed in this article exist both on BlackBerry® 10 and BlackBerry® OS 5 through 7.</p>
<p><span id="more-11860"></span></p>
<h3><strong>Registration</strong></h3>
<p><img class="aligncenter size-full wp-image-11861" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-1.jpg?w=241&#038;h=159" height="159" width="241" /></p>
<p>Registration is the first step in connecting to the BBM Social Platform, which involves an application registering itself with the RIM®-hosted BBM infrastructure. Keep in mind that like most features on a BlackBerry device, the user can approve or deny this connection, allowing them to regulate which applications they allow to use the BBM SP. The application is also informed during this process whether or not the connection was a success. If it did fail, the application is given the reason why. Possible reasons include lack of network coverage, registration blocked by the user, or BBM Client not configured. Once this step is complete, the more interesting APIs of the BBM SP are available to your application.</p>
<h3><strong>Invite to Download</strong></h3>
<p>The invite to download feature allows users of your application to invite their BBM contacts to download your application from BlackBerry App World. The recipient receives the invitation through a BBM Chat session, which includes a message provided by the application and user sending the invitation. The chat session also contains buttons for the user to accept or decline the invitation. If they accept the invitation, BlackBerry App World is opened to show your application. This feature is ideal for multi-user applications or games, allowing the user to easily invite their contacts to participate.</p>
<p>Note that for this to work between BlackBerry 10 and BlackBerry OS 5-7 users, the SKU in BlackBerry App World for the two releases of the application (BAR and COD) must be the same.</p>
<h3><strong>Profile Integration</strong></h3>
<p><img class="aligncenter size-full wp-image-11862" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-2.jpg?w=408&#038;h=213" height="213" width="408" /></p>
<p style="text-align:center;"><i>Updating personal message from BBMQtProfile Sample</i></p>
<p>BBM SP allows for both read and write access to the user’s BBM profile. This allows your application access to their profile message, status text, availability and avatar image. The screenshot above shows the confirmation prompt that appears when an application attempts to update a user’s personal message.</p>
<p><img class="aligncenter size-full wp-image-11863" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-3.jpg?w=282&#038;h=464" height="464" width="282" /></p>
<p style="text-align:center;"><i>View from my contact’s device</i></p>
<p>Profile updates are visible from the devices of my contacts. They can see a list of recent updates made to my profile and provide yet another opportunity for viral growth. If an update to my personal message was made from an application other than the BBM Client, a tag is shown under the update stating the name of the application that performed the update. Note the “from BBM SDK Demo” tag beside the red arrow. Users can click on that tag to download the application from BlackBerry App World. This requires the sender to have installed the application from BlackBerry App World, so that tag won’t take you to BlackBerry App World if you side loaded your application for testing.</p>
<h3><strong>Profile Boxes</strong></h3>
<p><img class="aligncenter size-full wp-image-11864" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-4.jpg?w=288&#038;h=480" height="480" width="288" /></p>
<p>Profile Boxes provide yet another way for an application to promote itself to a user’s BBM contacts. They appear within the Apps area of a user’s profile and are ideal for sharing what a user is doing within an application. Every application that is connected to BBM SP appears in the list. Applications can create profile box items that appear under their application header. You can supply a custom image and string, which is used to create the profile box item. The user’s contacts can also use this to download the application from BlackBerry App World.</p>
<h3><strong>Contacts</strong></h3>
<p>An application can retrieve a list of BBM Contacts who have the same application installed. This list can be used as selection criteria for connecting to create a multi-user experience. Events are also fired for changes to this contact list, allowing your application to keep track of both the addition and deletion of contacts in the contact list itself and/or changes to individual contacts. An application could pick up on changes to individual contacts to trigger some event. For example, if someone gets a new high score, a game may broadcast it to the user’s BBM contacts by changing their BBM personal message. An application could listen for this update and use it to trigger an in-game challenge to beat their friend’s new high score.</p>
<p>You could also use this to trigger in game connections. A user could enter a game and indicate they want to play against their friends. The game could update the user’s BBM status to something like, “Mark wants to play Slingshot 5000 with someone.” By listening to BBM status updates, my contacts who are also in game could be prompted to join for some head-to-head action.</p>
<h3><strong>Wrapping It Up</strong></h3>
<p>This list covers the core BlackBerry Messenger Social Profile features that will be available for your application to use upon the launch of BlackBerry 10. The <a href="https://developer.blackberry.com/devzone/develop/bbm_connected/development.html" target="_new">SDKs and APIs</a> are available to use now &#8212; start today so you can be ready for launch. If you have an existing application that targets BlackBerry OS 5-7, you can roll out these features right away.</p>
<p>Keep an eye here on the blog for follow-up articles that’ll provide some technical information on how to code these features into your application. We also have further information available on the <a href="https://developer.blackberry.com/devzone/develop/bbm_connected/bbm.html" target="_new">BBM SP website</a>. Also, watch this blog for additional blog posts in the BBM series that cover how to use these features in a Cascades™ application and BlackBerry WebWorks application, as well as how to invoke BBM using the invocation framework.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11860/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11860&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/bbm-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76c7dc9f1e2068196cd724a8bd5bac54?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">msohm</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2011/08/bbm-icon.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-1.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-2.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-3.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-4.jpg" medium="image" />
	</item>
	</channel>
</rss>
