<?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; garett</title>
	<atom:link href="http://devblog.blackberry.com/author/gbeuk/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Wed, 19 Jun 2013 18:00:36 +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; garett</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>Moving Fun With BlackBerry 10: Part 1 – The Setup</title>
		<link>http://devblog.blackberry.com/2013/06/moving-fun-1/</link>
		<comments>http://devblog.blackberry.com/2013/06/moving-fun-1/#comments</comments>
		<pubDate>Wed, 19 Jun 2013 18:00:29 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Accelerometer]]></category>
		<category><![CDATA[Prank]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=15386</guid>
		<description><![CDATA[Moving day for the Mississauga branch of Developer Relations is coming up soon! We’re not moving too far, just across the road to join the likes of Tim Neil and Russell Andrade in BlackBerry Tahoe A. With any move at BlackBerry, there is a process to follow; you pack all of your belongings into a [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15386&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Moving day for the Mississauga branch of Developer Relations is coming up soon! We’re not moving too far, just across the road to join the likes of <a href="https://twitter.com/brcewane">Tim Neil</a> and <a href="https://twitter.com/russell_andrade">Russell Andrade</a> in <a href="https://foursquare.com/v/blackberry-tahoe-a/4b5f3ac0f964a520cdae29e3">BlackBerry Tahoe A</a>. With any move at BlackBerry, there is a process to follow; you pack all of your belongings into a moving box, label the box and leave it at your desk for the <span style="text-decoration:line-through;">elves </span>movers to transport to the new cubicles over the weekend.</p>
<p><span id="more-15386"></span></p>
<p>I decided the move to the new building was a great excuse to have a bit of fun with the movers. The prank came to me without much effort at all and within a few seconds I had the idea, all that was left was the execution (I’m being vague on purpose, be patient please!). My cubicle neighbor and comrade in shenanigans <a href="https://twitter.com/robbieDubya">Rob Williams</a> thought he could rig up an Arduino with an accelerometer and speaker together with a battery pack to keep the juice flowing for long enough to leave everything un-disturbed for a few hours. This was an awesome idea, though a bit out of my league I know Rob is a wiz with that kind of stuff, but then I thought to myself “Hey, we work for BlackBerry!” I grabbed a Dev Alpha B out of my desk, and started <span style="text-decoration:line-through;">thieving code from <a href="https://github.com/blackberry/Cascades-Samples/tree/master/SensorDemo">GitHub</a></span> programming, in less than five minutes I had a finished app that would serve as the entertainment for myself, some colleagues, and hopefully anyone reading this for a few weeks (the move was delayed a bit).</p>
<p>Without further delay, I present to you, my first ever YouTube video: “Kitties locked in a box”</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/-WUfpXGPr_4?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>Let me know what you think! Send me a message on Twitter with your feedback and any tips for pulling of the prank &#8211; <a href="https://twitter.com/garettBeuk">garettBeuk</a></p>
<p>Part 2 should be posted in the upcoming week…</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/15386/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/15386/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15386&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/06/moving-fun-1/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>
	</item>
		<item>
		<title>Appcelerator Titanium: BlackBerry 10 SDK Update</title>
		<link>http://devblog.blackberry.com/2013/06/appcelerator-blackberry-10-update/</link>
		<comments>http://devblog.blackberry.com/2013/06/appcelerator-blackberry-10-update/#comments</comments>
		<pubDate>Mon, 17 Jun 2013 23:00:37 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Appcelerator]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[Titanium]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=15357</guid>
		<description><![CDATA[Today I have two huge announcements for all our Appcelerator Titanium developers out there. First, the Appcelerator Titanium SDK is entering version 3.1.1. Second, this release includes integrated support for the BlackBerry 10 Beta SDK! Since the announcement of BlackBerry 10 support in Titanium, there have been huge strides made to get as many Titanium [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15357&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today I have two huge announcements for all our <a href="http://www.appcelerator.com/" target="_blank">Appcelerator Titanium</a> developers out there. First, the Appcelerator Titanium SDK is entering version 3.1.1. Second, this release includes integrated support for the BlackBerry 10 Beta SDK! Since the <a href="http://devblog.blackberry.com/2012/12/appcelerator-titanium-blackberry-10/">announcement of BlackBerry 10 support in Titanium</a>, there have been huge strides made to get as many Titanium APIs supported on BlackBerry 10 as possible and today marks a major step in that direction, getting just inches away from the final GA release. Anyone interested in taking a look at just how far we&#8217;ve come can take a look at the <a href="https://github.com/appcelerator/titanium_mobile_blackberry/blob/master/CHANGELOG.md">change log</a> to see what a remarkable feat has been accomplished by the Appcelerator developers in just a few short months.</p>
<p><img class="aligncenter size-full wp-image-15358" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/06/appcelerator-e1371498875466.png?w=600&#038;h=475" width="600" height="475" /></p>
<p>Up to this release, the BlackBerry 10 SDK was supported using a pre-release version of the Titanium SDK which added a both few extra steps and downloads in order to start testing/building your application for BlackBerry. Now the BlackBerry 10 SDK is officially supported in the public version of the Titanium SDK 3.1.1 and can be installed just like any of the other supported platform SDKs.</p>
<p>For those of you familiar with Appcelerator and the Titanium platform, this release brings the BlackBerry 10 SDK to about 90% coverage of the core Titanium APIs, including supporting the Alloy framework. This is a great time to start taking your existing applications and testing to see how great they look, feel and run on the BlackBerry 10 platform. The way Titanium builds for BlackBerry is using the Cascades framework, meaning you will receive native, intuitive applications with solid and fluent user experience out of the box. With just a few keystrokes you can have your existing application compiled and tested on a BlackBerry 10 device or simulator, then just a few more steps to get it signed and uploaded to BlackBerry World.</p>
<p><img class="aligncenter size-full wp-image-15359" alt="appcelerator2" src="http://rimdevblog.files.wordpress.com/2013/06/appcelerator2-e1371498950694.png?w=600&#038;h=295" width="600" height="295" /></p>
<p>On the other hand, if you have heard of Appcelerator but are not really sure what they offer, allow me to break it down very simply: Appcelerator’s Titanium IDE allows you to create full featured cross-platform applications using JavaScript. Titanium also recently added support for a new UI framework dubbed “Alloy” which allows developers to define all application UI using a mixture of XML and CSS. “JavaScript” and “XML” may make Titanium sound like it creates web applications, however the applications are actually bundled with a JavaScript engine that interprets the code and displays it in the native UI of the platform for which the application was compiled. The result is an application that can be created very quickly to support multiple platforms (ex BlackBerry 10, iOS, Android) but with the performance, look and feel of a native application.</p>
<p>Existing Titanium developers can get the 3.1.1 SDK update which includes the BlackBerry 10 SDK using the Titanium SDK’s built-in update mechanism. Anyone that needs to download the full IDE can grab it from <a href="http://www.appcelerator.com/developers/" target="_blank">here</a>.</p>
<p>For more details on all that 3.1.1 has to offer please check out this <a href="http://developer.appcelerator.com/blog/?p=21251" target="_blank">Appcelerator blog post</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/15357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/15357/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15357&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/06/appcelerator-blackberry-10-update/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/06/appcelerator-e1371498875466.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/06/appcelerator2-e1371498950694.png" medium="image">
			<media:title type="html">appcelerator2</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry Java to BlackBerry 10 Cascades Porting Series – Part 14: In App Payment</title>
		<link>http://devblog.blackberry.com/2013/06/porting-app-payment/</link>
		<comments>http://devblog.blackberry.com/2013/06/porting-app-payment/#comments</comments>
		<pubDate>Wed, 05 Jun 2013 09:55:58 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Java Development]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[digital goods]]></category>
		<category><![CDATA[payment]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=15222</guid>
		<description><![CDATA[Do you have an application built using BlackBerry Java that makes use of the Payment Service APIs? You’ll be happy to know that Cascades support the exact same digital goods types meaning you can provide the same monetization model in BlackBerry 10; you can even use the same digital goods already in your vendor portal. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15222&#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/06/588db54f-6b93-4ff0-8f08-0efa73e9bb26.jpg"><img class="aligncenter size-full wp-image-15226" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/06/588db54f-6b93-4ff0-8f08-0efa73e9bb26.jpg?w=600&#038;h=400" width="600" height="400" /></a></p>
<p>Do you have an application built using BlackBerry Java that makes use of the Payment Service APIs? You’ll be happy to know that Cascades support the exact same digital goods types meaning you can provide the same monetization model in BlackBerry 10; you can even use the same digital goods already in your vendor portal. This means less time planning how to monetize your app and less time creating and managing digital goods giving you more time and freedom to develop the rest of the app or letting you finish a few days earlier.</p>
<p><span id="more-15222"></span></p>
<h1>BlackBerry World Client</h1>
<p>In BlackBerry OS 7 and lower the Payment Service was included as a separate library which was heavily dependent on the version of BlackBerry World that was installed on the device. This meant that your application would need to query what version of BlackBerry World was installed and, if not at the version required by the library, prompt the user to upgrade the client to a newer version.</p>
<p>In BlackBerry 10 the Payment Service libraries are integrated directly into the OS and the tight coupling with the BlackBerry World client has been removed; meaning you only need to worry about developing.</p>
<h1>Vendor Portal</h1>
<p>As mentioned above the same digital goods used for BlackBerry OS 7 app releases can be used against any device/OS including BlackBerry 10. To make use of the existing digital goods you simply need to create a new BlackBerry 10 release that references the SKUs of the existing goods. If you are creating a new app altogether then you only need to create the digital goods in the same manner done for your Java apps:</p>
<p><a href="http://docs.blackberry.com/en/developers/deliverables/47831/1278466.jsp"><br />
http://docs.blackberry.com/en/developers/deliverables/47831/1278466.jsp<br />
</a></p>
<p>If your BlackBerry Java application has a good user base then I would recommend the above approach, it will allow existing users to download your new BlackBerry 10 version as soon as they upgrade, being visible right in the “My World” section of their BlackBerry World client app when they start up their new BlackBerry 10 device. You will, however, want to upload separate metadata for each platform you are targeting (screenshots, descriptions, keywords etc):</p>
<p><a href="http://devblog.blackberry.com/2012/11/blackberry-app-world-success/"><br />
http://devblog.blackberry.com/2012/11/blackberry-app-world-success/<br />
</a></p>
<h2>Environment Setup:</h2>
<p>Both BlackBerry OS 7 and 10 require an additional library to be added to the project, the difference is that in BlackBerry 7 you need to download and add the library (JAR) to your project, whereas in BlackBerry 10 you only need to reference the library that is integrated with the SDK and OS meaning less work for you and a library that stays updated as you change SDK versions.</p>
<h3><strong>Java:</strong></h3>
<p>Add the JAR to your project</p>
<p><a href="http://docs.blackberry.com/en/developers/deliverables/40131/Add_Payment_Service_library_to_build_path_1316204_11.jsp"><br />
http://docs.blackberry.com/en/developers/deliverables/40131/Add_Payment_Service_library_to_build_path_1316204_11.jsp<br />
</a></p>
<h3><strong>Cascades:</strong></h3>
<p>Add the LIB reference to your .PRO file</p>
<p><a href="https://developer.blackberry.com/cascades/documentation/device_platform/paymentservice/selling.html#pat1339516868668"><br />
https://developer.blackberry.com/cascades/documentation/device_platform/paymentservice/selling.html#pat1339516868668<br />
</a></p>
<h2>Initializing the Payment Engine/Manager:</h2>
<p>The “brains” of the payment service, where all calls are initiated, stems from one object which needs to be instantiated before any further calls can be made. Below are code snippets that show how this instantiation occurs in BlackBerry OS 7 in Java followed by BlackBerry OS 10 using Cascades APIs:</p>
<h3><strong>Java:</strong></h3>
<p>A prerequisite to using the payment service is to verify that the version of BlackBerry World client on the device is at a sufficient level and, if not, prompting for the update to be installed prior to making any payment calls.</p>
<pre>try {
 PaymentEngine.isAppWorldInstalledAndAtCorrectVersion();
} catch (AppWorldUpdateRequired e) {
 PaymentEngine.upDateAppWorld();
 System.exit(0);
}
PaymentEngine engine = PaymentEngine.getInstance();</pre>
<h3><strong>Cascades:</strong></h3>
<p>The payment service in Cascades requires information on which window group the app is using so the payment prompts can be properly drawn overtop.</p>
<pre>bb::platform::PaymentManager *m_paymentManager = new PaymentManager();
 bb::cascades::Application::instance()-&gt;mainWindow()-&gt;groupId();
m_paymentManager-&gt;setWindowGroupId(windowGroupId);</pre>
<p>The PaymentManager lets you define properties that will be displayed to the user in all purchase requests, specifically the application name and the URL of a custom icon if desired.<b></b></p>
<pre>m_paymentManager-&gt;setApplicationName("The Awesome Store");
m_paymentManager-&gt;setApplicationIconUrl(QUrl("http:///mycompany.com/100x100.png"));</pre>
<h3><strong>Test Mode:</strong></h3>
<p>Not available in BBOS</p>
<h3><strong>Cascades:</strong></h3>
<pre>PaymentManager::setConnectionMode(PaymentConnectionMode::Test);</pre>
<h1>Initiating a Purchase</h1>
<h3><strong>Java:</strong></h3>
<pre>PurchaseArgumentsBuilder arguments = new PurchaseArgumentsBuilder()
     .withDigitalGoodId( "1234" )
     .withDigitalGoodName( "My Product" )
     .withDigitalGoodSku( "Ab34t2eC" )
     .withPurchasingAppIcon( bitmapIconImageVariable ); 
     .withPurchasingAppName( "My Application" ); 
     .withMetadada( "Extra info for consumable goods" );
 try 
 {
     PurchaseResult result = engine.purchase(arguments.build());
 }
 …</pre>
<h3><strong>Cascades:</strong></h3>
<pre>const PurchaseReply *reply = m_paymentManager-&gt;requestPurchase("1234", "Ab34t2eC", "My Product", "Extra info for consumable goods");
connect(reply, SIGNAL(finished()), SLOT(handlePurchase()));</pre>
<h1>Restoring Past Purchases</h1>
<h3><strong>Java:</strong></h3>
<pre>try
 {
     ExistingPurchasesResult result = engine.getExistingPurchases(false/true);
     Purchase[] resultPurchases = result.getPurchases();
 }
 catch (PaymentException e)
 { 
 }</pre>
<h3><strong>Cascades:</strong></h3>
<pre>const ExistingPurchasesReply *reply = paymentManager-&gt;requestExistingPurchases(false/true);
connect(reply, SIGNAL(finished()), SLOT(handleExistingPurchases()));</pre>
<p>If you happen to be new to C++ and would still like to monetize your Cascades application then you will be happy to know that our Payment Services developers have created a nice sample which takes the bulk of the payment calls needed and exposes then through to QML, allowing you to make payment calls without writing a single line of C++ yourself, just copy the important parts from the sample into your own application. This sample can be gitted from here:</p>
<p><a href="https://github.com/blackberry/Cascades-Samples/tree/master/paymentservice"><br />
https://github.com/blackberry/Cascades-Samples/tree/master/paymentservice<br />
</a></p>
<p>Of course there are a few more calls available through the Payment Service in both Java and Cascades, but the above set provides a solid baseline for the main functions developers using the Payment Service should be aware of. If there is anything else you would like to know about the Payment Service, or have trouble porting the pieces from Java to Cascades, there are a few great options for support:</p>
<p>1)      Support forums: <a href="http://supportforums.blackberry.com/t5/Payment-Service/bd-p/pay_serv"><br />
http://supportforums.blackberry.com/t5/Payment-Service/bd-p/pay_serv<br />
</a></p>
<p>2)      BlackBerry Developer Twitter account: <a href="https://twitter.com/BlackBerryDev">@BlackBerryDev</a></p>
<p>3)      Garett B (Developer Relations Payment Service Expert): <a href="https://twitter.com/garettBeuk">@garettBeuk</a></p>
<p>Happy porting!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/15222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/15222/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15222&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/06/porting-app-payment/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/06/588db54f-6b93-4ff0-8f08-0efa73e9bb26.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry Java to BlackBerry 10 Cascades Porting Series – Part 13: Analytics</title>
		<link>http://devblog.blackberry.com/2013/06/cascades-porting-series-analytics/</link>
		<comments>http://devblog.blackberry.com/2013/06/cascades-porting-series-analytics/#comments</comments>
		<pubDate>Tue, 04 Jun 2013 09:00:50 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Java Development]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[Count.ly]]></category>
		<category><![CDATA[Flurry]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=15151</guid>
		<description><![CDATA[This blog is going to take a slight side-step from the theme of the previous articles in the porting series. All previous articles were of a format “this is how it was done on BlackBerry OS 7 and here is how you can do it using BlackBerry 10”, which works great for core APIs and [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15151&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This blog is going to take a slight side-step from the theme of the previous articles in the porting series. All previous articles were of a format “this is how it was done on BlackBerry OS 7 and here is how you can do it using BlackBerry 10”, which works great for core APIs and native services but not when those services don’t exist in the BlackBerry 10 SDK. Allow me to explain: in BlackBerry OS 7 there is an official Analytics Service which is documented and distributed from the BlackBerry site for both Java and WebWorks/HTML5 developers. The SDK and the portal are essentially white-labeled versions of the Webtrends Analytics service, which you may have noticed from the URL used to login to the dashboard:</p>
<p><a href="http://blackberry.webtrends.com/" target="_blank"><br />
http://blackberry.webtrends.com<br />
</a></p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/05/analytics1.jpg?w=450" /></p>
<p>This provides a great option for devs that need analytics for only BlackBerry applications (the dashboard was sandboxed to display only BlackBerry provided data) however with the mobile ecosystem bursting at the seams we want to ensure that when moving forward to BlackBerry 10 developers have as much flexibility as possible. “Flexibility” meaning choice of analytics providers as well as the ability to use one dashboard to display data from across multiple platforms; knowing that many BlackBerry 10 developers may also be developing for other platforms in tandem and may have strong preference to a specific provider makes flexibility all the more important. This shift in end goals of an Analytics service for developers also shifts the approach when presenting a solution to the community. The approach that was decided on fits in with the general model of BlackBerry 10 <a href="http://devblog.blackberry.com/2012/12/blackberry-development-101-native/" target="_blank">openness</a>: rather than create an Analytics service specific to BlackBerry 10 we will focus on partnering with existing Analytics services to help them add support for BlackBerry 10 to their offerings.</p>
<p>The partnering approach offers tons of key benefits: Developers can continue using the analytics provider they choose. Any updates made to the SDK at the service level will be immediately available to all users. Analytics from multiple platforms can be visible under a single dashboard. Familiar API calls. There are many more benefits as well, and all while still keeping the application integration as smooth and easy as possible. At BlackBerry Jam I actually added Flurry Analytics to a Cascades application in well <a href="http://active.mediasite.com/mediasite/Play/086049ab-9eb9-4064-bd48-ceb2ea961de9" target="_blank">under 2 minutes</a>.</p>
<p>As you can read from the above synopsis, moving from BlackBerry 7 to BlackBerry 10 there has been an entire shift in how Analytics will be provided. At present there are already options for Cascades, Native and WebWorks/HTML5 developers:</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/05/analytics2.jpg?w=150" /></p>
<p>100% free industry leading service. Support for C/Native and Cascades application from one SDK.</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/05/analytics3.jpg?w=150" /></p>
<p>Fully open sourced client and server offerings as well as a hosted solution. Support for Cascades and WebWorks/HTML5.</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/05/analytics4.jpg?w=150" /></p>
<p>Localytics is the most recent service to join the list; now officially supporting for WebWorks/HTML5 and Cascades applications on BlackBerry 10. This service provides near real-time Analytics data.</p>
<p>And we are making it as easy as possible for Analytics providers to bring over their services for BlackBerry 10 by creating a porting guide for both Native and HTML5 solutions. The guide is set to cover all the common information typical analytics frameworks would need to know such as determine the Time Zone, unique identifiers and lifecycle of the BlackBerry 10 devices. This porting guide should be published in the near future will be available from the Analytics Services page:</p>
<p><a href="https://developer.blackberry.com/develop/platform_services/platform_analytics.html" target="_blank"><br />
https://developer.blackberry.com/develop/platform_services/platform_analytics.html<br />
</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/15151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/15151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15151&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/06/cascades-porting-series-analytics/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/05/analytics1.jpg?w=450" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/analytics2.jpg?w=150" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/analytics3.jpg?w=150" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/analytics4.jpg?w=150" medium="image" />
	</item>
		<item>
		<title>Localytics for BlackBerry 10 is Here!</title>
		<link>http://devblog.blackberry.com/2013/06/localytics-blackberry/</link>
		<comments>http://devblog.blackberry.com/2013/06/localytics-blackberry/#comments</comments>
		<pubDate>Mon, 03 Jun 2013 11:00:25 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Localytics]]></category>
		<category><![CDATA[webworks]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=15210</guid>
		<description><![CDATA[Just prior to BlackBerry Jam Americas, I was speaking with Adam Stanley about analytics services for our BlackBerry 10 HTML5 developers. Adam had been looking into Localytics and found that they have an analytics service written entirely in HTML5; BlackBerry has an entire development approach based on HTML5, so he decided to try his hand [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15210&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://rimdevblog.files.wordpress.com/2013/06/local.png"><img class="aligncenter  wp-image-15212" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/06/local.png?w=300&#038;h=300" width="300" height="300" /></a></p>
<p>Just prior to BlackBerry Jam Americas, I was speaking with <a href="https://twitter.com/n_adam_stanley">Adam Stanley</a> about analytics services for our BlackBerry 10 HTML5 developers. Adam had been looking into <a href="http://www.localytics.com/docs/blackberry-10-integration/">Localytics</a> and found that they have an analytics service written entirely in HTML5; BlackBerry has an entire development approach based on <a href="https://developer.blackberry.com/html5/">HTML5</a>, so he decided to try his hand at plugging it in to a WebWorks application on his BlackBerry Z10. Without much delay he found that almost the entire service worked as-is out of the box (web standards are a thing of beauty!).</p>
<p><span id="more-15210"></span></p>
<p>After the above discovery Adam quickly fired off an email to the Localytics folks to see about getting some official documentation posted for BlackBerry 10. Normally using this approach, without having an “in”, it takes time; with Localytics we were put in touch with their VP of Strategy and Business Development, Brian Suthoff, right away, and were on a call with him within a few days. Localytics was excited to know just how easy it was to use their service with BlackBerry 10.SDK Dev Lead Randy Dailey jumped right to working on SDK tweaks to further support BlackBerry 10 and official documentation.</p>
<p>Today, just a couple of weeks from our first engagement with Localytics, I am happy to say that Localytics is now officially supported on BlackBerry 10. All you WebWorks developers can go ahead and add <a href="http://developer.blackberry.com/html5/">a few simple lines of JavaScript</a> to your existing applications and start tracking usage of your application. <i>But wait, there’s more!</i> If you use Cascades and want to use Localytics then you’ll be happy to know that there is also a <a href="http://www.localytics.com/docs/blackberry-10-integration/">QML interface</a> for the service making it available to you as well! Check the Localytics blog for the official announcement:<br />
<a href="http://www.localytics.com/blog/2013/localytics-releases-blackberry-10-sdk/"><br />
http://www.localytics.com/blog/2013/localytics-releases-blackberry-10-sdk/<br />
</a></p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/06/local2.png"><img class="aligncenter size-full wp-image-15214" alt="local2" src="http://rimdevblog.files.wordpress.com/2013/06/local2.png?w=514&#038;h=339" width="514" height="339" /></a></p>
<p>I have already created my first Cascades application using Localytics; the entire process was a breeze. From account creation, to getting the files and docs needed to start, to the point where I had analytics actually displaying in my dashboard was all of about 30 minutes.</p>
<p>The service plans begin completely free for developers and indie publishers and scale up from there depending on your needs.</p>
<p>Ready to get started? If you’ve read this far then of course you are! <a href="https://twitter.com/chadtatro">Chad Tetreault</a> has gone ahead and written the first WebWorks sample application with Localytics implemented, you can get it right now: <a href="https://github.com/blackberry/BB10-WebWorks-Samples/tree/master/Localytics" target="_blank"><br />
https://github.com/blackberry/BB10-WebWorks-Samples/tree/master/Localytics<br />
</a></p>
<p>For more info check out the main Localytics site and the following resources for more information:</p>
<ul>
<li><a href="http://www.localytics.com/"><br />
http://www.localytics.com<br />
</a></li>
<li><a href="http://www.localytics.com/docs/blackberry-10-integration/"><br />
http://www.localytics.com/docs/blackberry-10-integration/<br />
</a></li>
<li><a href="http://developer.blackberry.com/html5/"><br />
http://developer.blackberry.com/html5/<br />
</a></li>
<li><a href="http://developer.blackberry.com/cascades/"><br />
http://developer.blackberry.com/cascades/<br />
</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/15210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/15210/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15210&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/06/localytics-blackberry/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/06/local.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/06/local2.png" medium="image">
			<media:title type="html">local2</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry Java to BlackBerry 10 Cascades Porting Series – Part 11: Push</title>
		<link>http://devblog.blackberry.com/2013/05/cascades-porting-series-push-2/</link>
		<comments>http://devblog.blackberry.com/2013/05/cascades-porting-series-push-2/#comments</comments>
		<pubDate>Wed, 29 May 2013 20:02:03 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Java Development]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[push]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=15167</guid>
		<description><![CDATA[Push has always been a major part of BlackBerry as an extremely efficient way of providing real-time data to users without needing to keep your app running at all times. The main components of Push from BlackBerry 7 to BlackBerry 10 have remained largely unchanged, with applications needing to: Register to receive push messages with [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15167&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Push has always been a major part of BlackBerry as an extremely efficient way of providing real-time data to users without needing to keep your app running at all times. The main components of Push from BlackBerry 7 to BlackBerry 10 have remained largely unchanged, with applications needing to:</p>
<ol>
<li>Register to receive push messages with the device</li>
<li>Register with the BlackBerry Push Service in the cloud to allow push messages for the app to begin being delivered</li>
<li>Register with your server side app so it knows there’s a new subscriber</li>
<li>Be ready to receive push messages at any time</li>
<li>Process pushes in a quick and efficient manner</li>
</ol>
<p>The server-side portion of consumer push is <strong>identical</strong> between all BlackBerry smartphone versions, meaning you can use your current server-side app and push service credentials.</p>
<p><img alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/05/pushporting.png?w=450&#038;h=300" width="450" height="300" /></p>
<p style="text-align:center;"><i>By włodi from London, UK (The Big Red Button Uploaded by Yarl) [CC-BY-SA-2.0 (<a href="http://creativecommons.org/licenses/by-sa/2.0" rel="nofollow">http://creativecommons.org/licenses/by-sa/2.0</a>)%5D, via Wikimedia Commons</i></p>
<h4><strong>BlackBerry 7</strong></h4>
<p>In BlackBerry 7 Java, there were two main ways to set up your application to receive push messages &#8211; open a port and begin listening indefinitely or register your port and application details with the device. The former basically required that your application begin a background process when the app was first installed, as well as every time the device started up. When the push arrived on the port opened by the app, the data could then be processed however required by the app, followed by the app once again listening on the open port for the next message. This method also required the app to perform “manual” registration, an HTTP POST, with the BlackBerry Push Service to allow devices to begin receiving push messages for your app.</p>
<p><a href="https://github.com/blackberry/JDE-Samples/tree/master/com/rim/samples/device/httppushdemo" target="_blank"><br />
https://github.com/blackberry/JDE-Samples/tree/master/com/rim/samples/device/httppushdemo<br />
</a> (this sample shows Enterprise Push which is similar to the pre-5.0 Push API method through BIS)</p>
<p>The latter approach was introduced in BlackBerry 5 where new APIs were introduced that removed the need to keep an app thread running at all times. Instead, the app would register itself with the device by passing it the assigned port and push app ID, allowing the device to listen for push messages on behalf of the app and launch to pass the push message to be processed. This method provided a simple way to allow the app to perform the registration with the BlackBerry Push Service.</p>
<p><a href="http://www.blackberry.com/developers/docs/7.0.0api/net/rim/blackberry/api/push/package-frame.html" target="_blank"><br />
http://www.blackberry.com/developers/docs/7.0.0api/net/rim/blackberry/api/push/package-frame.html<br />
</a></p>
<h4><strong>BlackBerry 10</strong></h4>
<p>The approach used in BlackBerry 10 is most similar to the last approach mentioned for BlackBerry 7 and is arguably the simplest way to handle push messages yet. One simplification is that developers no longer need to worry about application ports, as the on-device service will now handle port selection directly with the BlackBerry Push Service. Another is that rather than needing to deal with reading network streams to receive the push payload, it is not delivered directly to the app fully available in the data portion of an invocation.</p>
<p><span style="text-decoration:underline;">Application flow</span></p>
<p>The first thing your app will need is an entry in the bar-descriptor.xml file that registers the app to receive invocations from the device push notification service. Below is an example entry. The only thing you need to change is the invoke-target id value to a string unique to your app:</p>
<pre>          <strong>    &lt;invoke-target id="com.unique.string.for.your.app"&gt;	
      &lt;type&gt;APPLICATION&lt;/type&gt;
      &lt;filter&gt;
         &lt;action&gt;bb.action.PUSH&lt;/action&gt;
         &lt;mime-type&gt;application/vnd.push&lt;/mime-type&gt;
      &lt;/filter&gt;
    &lt;/invoke-target&gt;
</strong></pre>
<p>The second thing to add to the bar-descriptor is the permission for consumer push (this can also be added through the GUI editor in the IDE):</p>
<p><strong>&lt;permission system=&#8221;true&#8221;&gt;_sys_use_consumer_push&lt;/permission&gt;</strong></p>
<p>After the above entries exist, we are ready to start programming. Using the various Push APIs, the following flow needs to occur in the device app:</p>
<p><span style="text-decoration:underline;">Create a Session</span></p>
<p>Frequency: Every time your app launches</p>
<p>This is where your app registers itself to receive push messages. Once your app passes the on-device service, it’s provided a push app ID as well as the invoke-target ID you specified in the bar-descriptor file. This basically tells the service, “If a push comes in with this push app ID, invoke my app using this invoke-target ID”.</p>
<p><strong>PushService* m_pushService;</strong> //Member variable creation in header file</p>
<p>//In this case BLACKBERRY_INVOKE_TARGET_ID would be &#8220;com.unique.string.for.your.app&#8221; from above</p>
<p><strong>m_pushService = new PushService(BLACKBERRY_PUSH_APPLICATION_ID, BLACKBERRY_INVOKE_TARGET_ID);<br />
m_pushService-&gt;createSession();</strong></p>
<p><span style="text-decoration:underline;">Create a Channel</span></p>
<p>Frequency: Once for the lifetime of the app</p>
<p>After the session has been established on the device, the app then needs to register itself with the BlackBerry Push Service. This operation is referred to as “creating a channel”. The creation of a channel tells the BlackBerry Push Service, “If a push message arrives with this app ID and is addressed to my device, please let it through”. Without this step, pushes will never be delivered to the device.</p>
<p><strong>m_pushService-&gt;createChannel(QUrl(BLACKBERRY_PUSH_URL));</strong></p>
<p>Another important part of this step is that when the channel is created, it should return a “token” which currently is simply the value of the device PIN. This can be sent to your server once retrieved to let it know that a new device has subscribed.</p>
<p><span style="text-decoration:underline;">Register to Launch</span></p>
<p>Frequency: Once for the lifetime of the app</p>
<p>Following the channel creation, your last step is to call the “register to launch” function. Unlike BlackBerry 7, BlackBerry 10 apps do not run all the time. When a push arrives however, the application can be launched into the tiled state to perform processing on the push it’s not already running. In order to be launched when a push arrives, the app must call the “register to launch” function. Otherwise if this function is not called and the application is closed, the push data will be lost.</p>
<p><strong>m_pushService-&gt;registerToLaunch();</strong></p>
<p>Once the above steps are completed, your app is ready to start receiving push messages. As push uses invocation, you can handle the messages in about the same way you would for a standard invocation of your app:<br />
<a href="https://developer.blackberry.com/cascades/documentation/device_platform/invocation/receiving_invocation.html" target="_blank"><br />
https://developer.blackberry.com/cascades/documentation/device_platform/</p>
<p>invocation/receiving_invocation.html</a></p>
<p>The one difference is that you need to use the PushPayload class to retrieve the push payload from the InvokeRequest’s data:<br />
<a href="https://developer.blackberry.com/cascades/documentation/device_comm/push/cs_receiving_a_push_message.html" target="_blank"><br />
https://developer.blackberry.com/cascades/documentation/device_comm/push/</p>
<p>cs_receiving_a_push_message.html</a></p>
<p>Ready to get porting your BlackBerry Java push app over to BlackBerry 10? Here’s a great resource that walks through the entire service including lots of code snippets:<br />
<a href="https://developer.blackberry.com/cascades/documentation/device_comm/push/index.html" target="_blank"><br />
https://developer.blackberry.com/cascades/documentation/device_comm/push/index.html<br />
</a></p>
<p>Need a sample to test your current push credentials? Check our GitHub repositories:<br />
<a href="https://github.com/blackberry/Cascades-Samples" target="_blank"><br />
https://github.com/blackberry/Cascades-Samples<br />
</a><br />
<a href="https://github.com/blackberry/Cascades-Community-Samples" target="_blank"><br />
https://github.com/blackberry/Cascades-Community-Samples<br />
</a></p>
<p>Never used Push before? Check out this overview of the service:<br />
<a href="https://developer.blackberry.com/services/push/?CPID=PUSHAPI00" target="_blank"><br />
https://developer.blackberry.com/services/push/?CPID=PUSHAPI00<br />
</a></p>
<p>If you still have questions toss a post in the Push Development forums or send me a tweet:<br />
<a href="http://supportforums.blackberry.com/t5/BlackBerry-Push-Development/bd-p/Applications_using_Push_Technology" target="_blank"><br />
http://supportforums.blackberry.com/t5/BlackBerry-Push-Development/bd-p/Applications_using_Push_Technology<br />
</a></p>
<p><a href="https://twitter.com/garettBeuk" target="_blank">@garettBeuk</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/15167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/15167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15167&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/cascades-porting-series-push-2/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/05/pushporting.png?w=450" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing the Flurry Analytics SDK for BlackBerry 10</title>
		<link>http://devblog.blackberry.com/2013/05/flurry-analytics-blackberry-10/</link>
		<comments>http://devblog.blackberry.com/2013/05/flurry-analytics-blackberry-10/#comments</comments>
		<pubDate>Tue, 14 May 2013 18:39:26 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[Cascades App]]></category>
		<category><![CDATA[Flurry]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14955</guid>
		<description><![CDATA[Today I am extremely excited to be able to announce the release of the Flurry Analytics SDK for BlackBerry 10! I have been working with Flurry for a couple months behind the scenes to help get this SDK created, tested, and finally available for you to download and integrate into your Cascades or Native applications. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14955&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today I am extremely excited to be able to announce the release of the Flurry Analytics SDK for BlackBerry 10! I have been working with Flurry for a couple months behind the scenes to help get this SDK created, tested, and finally available for you to download and integrate into your Cascades or Native applications. In just a few minutes of creating your account with Flurry and downloading the SDK, you can have the service integrated into an app and begin logging events to the Flurry Dashboard.</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/05/jam68-1.png?w=600" /></p>
<p>For anyone new to analytics let me explain why I am so excited and why you should be as well. Analytics gives you the ability to know who is using your application as well as how they are using it. Sounds easy enough right? The Flurry SDK integrates with your application and allows it to log “events” when they occur. A simple example would be logging an event where a button is clicked. That data is recorded and then sent up to the dashboard where patterns start to emerge on how many people are clicking that button, how they got to it, and what users do after it gets pressed.</p>
<p>Analytics helps by telling you two very important pieces of information:</p>
<p><strong>Who is using your application?</strong></p>
<p>The Flurry Analytics service will report the following information about the user/user’s device by default:</p>
<ul>
<li>Locale set on the device</li>
<li>Time Zone</li>
<li>Approximate location</li>
<li>Device name (ex “BlackBerry Z10”)</li>
<li>Device OS version</li>
<li>Carrier</li>
</ul>
<p><strong>And can also be configured by you to report:</strong></p>
<ul>
<li>The version of the app being used</li>
<li>The user’s geolocation (with permission from the user)</li>
<li>The user’s gender (if supplied by the user)</li>
<li>The user’s age (if supplied by the user)</li>
<li>The user ID (if used by your application)</li>
</ul>
<p>This will let you know where your application is being used, as well as provide you an idea for the type of people that are using it. This in turn gives you the ability to tailor content to various regions and locales based on demand, as well as determine which device models you may want to focus on in the future.</p>
<p><strong>How are people using your application?</strong></p>
<p>Of course after you know who is using your application you will definitely want to know how they are using it. Flurry lets you log events that occur within your application, letting you map out every step the user takes. This is helpful so you can see trends for where they may be getting stuck, areas for improvement, and features that are being used more than expected and can be prioritized for enhancement in future releases. This information is invaluable for making informed decision on where to take the direction of your application.</p>
<p>From the aspect of monetization, knowing user patterns can help you understand what will make your application and possibly digital goods for sale, more attractive/valuable to the end user. Events would also allow you to track the success of promotions within your application. If you happen to sell a limited edition digital good, or offer to unlock the premium features of the app at a reduced price, you have the ability to track the success of the promotion with a relatively short turnaround.</p>
<p>The idea of tracking everything your users do may sound like a scary concept, however all data is made anonymous by the service meaning there is no way of tracking specific actions back to one device/user. Keeping the data anonymous keeps users from compromising their privacy while still maintaining the integrity of the data.</p>
<p>If you’re ready to add some analytics to your application then getting started is easy. Simply go over to the <a href="http://www.flurry.com/" target="_blank">Flurry home page</a> and create an account. Then create an application to get the analytics SDK for BlackBerry 10.</p>
<p>I’ve also whipped up a sample app that you can take a look at to get a feel for the APIs that can be downloaded from the <a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/FlurryAnalyticsSample" target="_blank">Community Samples Repo</a> on GitHub.</p>
<p style="text-align:center;"><img alt="" src="http://rimdevblog.files.wordpress.com/2013/05/jam68-2.jpg?w=450" /></p>
<h3>JAM68 &#8211; Flurry Mobile Analytics on BlackBerry 10!!</h3>
<p>If you’re lucky enough to be at BlackBerry Jam Americas this week, you can attend <a href="https://bblive.blackberryconferences.net/2013/connect/sessionDetail.ww?SESSION_ID=2763" target="_blank">JAM68</a> where Anthony Watkins and Rich Brett from Flurry will be presenting with me on how to integrate the Analytics SDK into your BlackBerry applications. For those unable to make it, the recording should be posted a few days following the session and you can always send me a message on Twitter with your questions/comments: <a href="https://twitter.com/garettBeuk" target="_blank">@garettBeuk</a></p>
<p>For more information you can also refer to our Analytics page on the forums:</p>
<p><a href="http://developer.blackberry.com/devzone/develop/platform_services/platform_analytics.html" target="_blank"><br />
http://developer.blackberry.com/devzone/develop/platform_services/platform_analytics.html<br />
</a><br />
<a href="http://supportforums.blackberry.com/t5/BlackBerry-Analytics-Service/bd-p/analytics_serv" target="_blank"><br />
http://supportforums.blackberry.com/t5/BlackBerry-Analytics-Service/bd-p/analytics_serv<br />
</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14955/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14955&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/flurry-analytics-blackberry-10/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/05/jam68-1.png?w=600" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/jam68-2.jpg?w=450" medium="image" />
	</item>
		<item>
		<title>Learn the Built for BlackBerry Way to Monetize Your Apps</title>
		<link>http://devblog.blackberry.com/2013/05/learn-the-built-for-blackberry-way-to-monetize-your-apps/</link>
		<comments>http://devblog.blackberry.com/2013/05/learn-the-built-for-blackberry-way-to-monetize-your-apps/#comments</comments>
		<pubDate>Wed, 08 May 2013 19:56:12 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[BlackBerry Jam]]></category>
		<category><![CDATA[BlackBerry Live]]></category>
		<category><![CDATA[BlackBerry World]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[Jam]]></category>
		<category><![CDATA[monetization]]></category>
		<category><![CDATA[Payment Services]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14948</guid>
		<description><![CDATA[Join Larry McDonough and I (Garett Beukeboom) at JAM05 on Thursday May 16th at BlackBerry Jam Americas. Apart from getting a chance to hang out with the two of us (which should be enough, right?), we will also be discussing monetization strategies for BlackBerry 10, but not just any strategies, the strategies that will provide [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14948&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Join <a href="http://twitter.com/lmcdunna" target="_blank">Larry McDonough</a> and I (<a href="http://twitter.com/garettBeuk" target="_blank">Garett Beukeboom</a>) at <a href="https://bblive.blackberryconferences.net/2013/connect/sessionDetail.ww?SESSION_ID=2720">JAM05</a> on Thursday May 16<sup>th</sup> at BlackBerry Jam Americas. Apart from getting a chance to hang out with the two of us (which should be enough, right?), we will also be discussing monetization strategies for BlackBerry 10, but not just any strategies, the strategies that will provide the kind of user experience expected in a Built for BlackBerry application.</p>
<p><span id="more-14948"></span></p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/05/payment.png"><img class="aligncenter size-full wp-image-14950" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/05/payment-e1368042775411.png?w=400&#038;h=389" width="400" height="389" /></a></p>
<p>&nbsp;</p>
<p>Learn the tips and tricks around optimizing your payment services code to provide the best user experience possible while at the same time maximizing your potential revenue. See how other apps that have earned the coveted <a href="http://developer.blackberry.com/builtforblackberry/">Built for BlackBerry</a> designation have implemented payment services as we deconstruct the models used by real apps in BlackBerry World today.</p>
<p>In the ever growing world of app choices, choosing an appropriate monetization strategy is as important as a solid execution in determining the success of your application; in <a href="https://bblive.blackberryconferences.net/2013/connect/sessionDetail.ww?SESSION_ID=2720">JAM05</a> we will discuss both.</p>
<p>Whether you need to bus, train, fly, run, scooter, bike and/or pogo to get to this year’s BlackBerry Jam Americas, we hope to see you there. If you are without one or more of the aforementioned means of travel, fear not.  The sessions will be recorded for playback at a later time!  However, if you choose that option, you will miss out on Larry and my sparkling personalities and live stage theatrics, as well as the Q&amp;A, but we’re always reachable via Twitter at <a href="/Users/akinsella/AppData/Local/Microsoft/Windows/Temporary%20Internet%20Files/Content.Outlook/X7OSEEYU/lmcdunna">@lmcdunna</a> and <a href="https://twitter.com/garettBeuk">@garettBeuk</a> for questions and feedback.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14948/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14948/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14948&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/learn-the-built-for-blackberry-way-to-monetize-your-apps/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/05/payment-e1368042775411.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Building Your First BlackBerry 10 Push Enabled App</title>
		<link>http://devblog.blackberry.com/2013/01/push-samples/</link>
		<comments>http://devblog.blackberry.com/2013/01/push-samples/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 16:05:09 +0000</pubDate>
		<dc:creator>garett</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[scenecover]]></category>
		<category><![CDATA[thumbnail]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13109</guid>
		<description><![CDATA[Push is a very interesting feature to add to your application. It can dramatically enhance the performance and experience of your application, and therefore the stickiness to the end-user. With all of its uses, there are also many things to take into consideration when adding push: How should the app notify the user when new [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13109&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Push is a very interesting feature to add to your application. It can dramatically enhance the performance and experience of your application, and therefore the stickiness to the end-user. With all of its uses, there are also many things to take into consideration when adding push: How should the app notify the user when new data is available? What should the app do after the data arrives? How should the push data be stored? What is the easiest way to set up a server so I can easily test out pushing to my client application?</p>
<p>With these questions in mind, I set out to create a few fairly simplistic samples to demonstrate a few potential answers to the above questions.</p>
<h3><strong>Sample 1: Simple Push Server Sample</strong></h3>
<p><img class="aligncenter size-full wp-image-13110" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/01/push-life-1.jpg?w=325&#038;h=480" width="325" height="480" /></p>
<p><strong>What does it do?</strong> This app is written in Cascades, meaning that you effectively have a server-side app capable of sending pushes running right on your BlackBerry 10 device. No need to jump to your computer whenever you want to send a push to your client-side application &#8211; simply launch this app and push away!</p>
<p><span id="more-13109"></span></p>
<p><strong>Features</strong></p>
<p>1) Push a message to a single recipient (specify the device PIN)<br />
2) Retrieve all active and subscribed users (these are all persistently stored via QSettings)<br />
3) Push to all known active subscribed users (pulled from QSettings)<br />
4) Formats the push payload in a specific format that is expected in Sample 2 which includes 3 properties: priority of the push, a title for the message, a body for the message</p>
<h3><strong>Sample 2: Simple Push Client Sample</strong></h3>
<p><img class="aligncenter size-full wp-image-13111" alt="push-life-2" src="http://rimdevblog.files.wordpress.com/2013/01/push-life-2.jpg?w=325&#038;h=480" width="325" height="480" /></p>
<p><strong>What does it do?</strong> This sample is the second half to Sample 1 &#8211; it receives push messages, expecting them in the format sent from Sample 1, and handles them differently based on the priority level set. The app also works with the application lifecycle, notifications engine and application cover to provide a fairly comprehensive implementation of push.</p>
<p><strong>Features</strong></p>
<p>1) Receive and display push data<br />
2) Store push data messages (stored via QSettings)<br />
3) Integration with the cover of the application (seen when the application is minimized). The last received push message gets displayed along with a custom header graphic and a timestamp providing details to the user without the app needing to be opened.</p>
<p><img class="aligncenter size-full wp-image-13112" alt="push-life-3" src="http://rimdevblog.files.wordpress.com/2013/01/push-life-3.jpg?w=325&#038;h=480" width="325" height="480" /></p>
<p>4) Integration with the system notifications engine at 3 different levels depending on the priority of push message received:<br />
a. Low: Set the splat on the application icon<br />
b. Medium: Execute a Notification that will alert the user based on the system settings<br />
c. High: Display a NotificationDialog that will contain the details of the push message<br />
5) Work with the application lifecycle when a push arrives to close the application when a push arrives and the user’s attention is not immediately required, and the application is not in use:<br />
a. Low and Medium: Close the application after handling the push message<br />
b. High: Keep the application open; user engagement is expected</p>
<p>Note that best practices state that if the application is launched via a push invocation and does not need to remain open, then it should exit once <a href="https://developer.blackberry.com/cascades/documentation/device_comm/push/exiting_after_processing_push_message.html" target="_new">the message is processed</a>.</p>
<p>Both sample applications can be modified to work with your own push service account by just changing a few variables. Once that is completed, you will have a fully functioning client and server-side push implementation. In the client, the PushManager code handles the push messages received by the device while the CoverManager code handles all updates to the minimized application cover.</p>
<p>Ready to get started? The samples are hosted here:</p>
<p>SimplePushClient:<br />
<a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/SimplePushClient" target="_new"><br />
https://github.com/blackberry/Cascades-Community-Samples/tree/master/SimplePushClient<br />
</a><br />
SimplePushServer:<br />
<a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/SimplePushServer" target="_new"><br />
https://github.com/blackberry/Cascades-Community-Samples/tree/master/SimplePushServer<br />
</a></p>
<p>For any further support, please send a message out to <a href="http://twitter.com/BlackBerryDev" target="_new">@BlackBerryDev</a> or <a href="http://twitter.com/garettbeukeboom" target="_new">@garettbeukeboom</a>, and for more involved questions, post a message to the <a href="http://supportforums.blackberry.com/t5/BlackBerry-Push-Development/bd-p/Applications_using_Push_Technology" target="_new">BlackBerry Push Development</a> forum board.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13109&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/01/push-samples/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/push-life-1.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/01/push-life-2.jpg" medium="image">
			<media:title type="html">push-life-2</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/01/push-life-3.jpg" medium="image">
			<media:title type="html">push-life-3</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>
	</channel>
</rss>
