<?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; app</title>
	<atom:link href="http://devblog.blackberry.com/tag/app/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Wed, 19 Jun 2013 14:01:11 +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; app</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>[VIDEO] Top Reasons to Port to BlackBerry 10 according to Macadamian – February 2013</title>
		<link>http://devblog.blackberry.com/2013/03/port-to-blackberry-10-top-reasons/</link>
		<comments>http://devblog.blackberry.com/2013/03/port-to-blackberry-10-top-reasons/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 13:43:20 +0000</pubDate>
		<dc:creator>Alex Kinsella</dc:creator>
				<category><![CDATA[Adobe AIR Development]]></category>
		<category><![CDATA[Android Development]]></category>
		<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Interviews/Thought Leadership]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app porting]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[Macadamian]]></category>
		<category><![CDATA[port app to BlackBerry 10]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14003</guid>
		<description><![CDATA[You’ve heard it from us before that porting applications to BlackBerry 10 is easy. Some have even done it in 36 hours or less! One of the most compelling reasons to bring your applications to our platform is that developers do not have to spend time learning a complete new set of skills to get [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14003&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>You’ve heard it from us before that porting applications to BlackBerry 10 is easy. Some have even done it in <a href="http://devblog.blackberry.com/2013/02/port-app-to-blackberry-10/" target="_new">36 hours or less</a>! One of the most compelling reasons to bring your applications to our platform is that developers do not have to spend time learning a complete new set of skills to get apps running on BlackBerry 10. Whether you’re building for <a href="http://developer.blackberry.com/native/" target="_new">C/C++</a>, <a href="http://developer.blackberry.com/cascades/">Cascades</a>, <a href="http://developer.blackberry.com/html5/" target="_new">HTML5</a>, <a href="http://developer.blackberry.com/air/" target="_new">AIR</a>, <a href="http://developer.blackberry.com/android/" target="_new">Android</a>, or with one of our numerous <a href="http://developer.blackberry.com/develop/platform_partners/" target="_new">platform partners</a>, there’s bound to be some language that can guide you in building for BlackBerry 10.</p>
<p>That said, we wanted to put our money where our mouth is so Alec Saunders sat down with Frédéric Boulanger, CEO &amp; Co-Founder of <a href="http://www.macadamian.com/" target="_new">Macadamian</a>, to find out what their reasons are to port to BlackBerry 10. Watch what happened below.</p>
<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/XcRPUZV8BX0?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 style="text-align:center;">[ <a href="http://www.youtube.com/watch?feature=player_embedded&amp;v=XcRPUZV8BX0" target="_new">YouTube link for mobile viewing</a> ]</p>
<p>If you’re interested in using Macadamian to port to BlackBerry 10, make sure you visit them <a href="http://www.macadamian.com" target="_new">here</a>.</p>
<p>Have you ported your app to BlackBerry 10? We want to know your story! Let us know in the comments!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14003/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14003/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14003&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/03/port-to-blackberry-10-top-reasons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0e94a7e96e80d5911732d43f31a39c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alex K.</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry World Pricing Tier Update – February 2013</title>
		<link>http://devblog.blackberry.com/2013/02/blackberry-world-pricing-tier-update-february/</link>
		<comments>http://devblog.blackberry.com/2013/02/blackberry-world-pricing-tier-update-february/#comments</comments>
		<pubDate>Thu, 21 Feb 2013 14:35:11 +0000</pubDate>
		<dc:creator>Alex Kinsella</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[BlackBerry World]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[Pricing]]></category>
		<category><![CDATA[pricing tier]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[vendor]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13867</guid>
		<description><![CDATA[In conjunction with the launch of BlackBerry 10 in South Africa and India, we are introducing pricing tier updates for both of these markets. These updates are part of our continued effort to ensure both consumers and developers have an amazing BlackBerry World experience. These changes will go into effect over the next 48 hours. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13867&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In conjunction with the launch of BlackBerry 10 in South Africa and India, we are introducing pricing tier updates for both of these markets. These updates are part of our <a href="http://devblog.blackberry.com/2013/01/blackberry-world-pricing-tier-update/">continued effort</a> to ensure both consumers and developers have an amazing BlackBerry World experience. These changes will go into effect over the next 48 hours.</p>
<p>For both South Africa and India, the new pricing tiers reflect adjustments for updated foreign exchange rates, competitive benchmarking, consumer friendly price points, and taxes, where applicable.</p>
<p>The price change is completely automatic and will not impact the availability of your content items to customers. You are not required to take any action.</p>
<p>Should you like to adjust the price tier for your content items in a given country you can freely do so within the <a href="https://appworld.blackberry.com/isvportal">BlackBerry World vendor portal</a> at any time.</p>
<p>Please note that if you make any changes to the pricing of your content items there will be a delay of up to 24 hours until the prices appear.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13867/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13867/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13867&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/02/blackberry-world-pricing-tier-update-february/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0e94a7e96e80d5911732d43f31a39c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alex K.</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry Java to BlackBerry 10 Cascades Porting Series – Part 1: Introduction</title>
		<link>http://devblog.blackberry.com/2013/01/port-java-to-cascades-part-1/</link>
		<comments>http://devblog.blackberry.com/2013/01/port-java-to-cascades-part-1/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 17:07:38 +0000</pubDate>
		<dc:creator>Gurtej S.</dc:creator>
				<category><![CDATA[Java Development]]></category>
		<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[porting]]></category>
		<category><![CDATA[app porting]]></category>
		<category><![CDATA[port app to BlackBerry 10]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13401</guid>
		<description><![CDATA[With all the excitement around BlackBerry 10 launch, one key request from our developer community is how to bring your existing BlackBerry Java applications to BlackBerry 10. As always, we at RIM developer relations constantly strive to break any barriers for developers. Starting today, we will be publishing a series of blog posts specifically designed [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13401&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-13402" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/01/bb10-porting.jpg?w=557&#038;h=408" width="557" height="408" /></p>
<p>With all the excitement around BlackBerry 10 launch, one key request from our developer community is how to bring your existing BlackBerry Java applications to BlackBerry 10. As always, we at RIM developer relations constantly strive to break any barriers for developers.</p>
<p>Starting today, we will be publishing a series of blog posts specifically designed to help port your existing BlackBerry Java application to BlackBerry 10. As you may already be aware, BlackBerry Java is no longer supported on BlackBerry 10. Our goal here is to provide you all the info needed to quickly migrate your app functionality.</p>
<p>The BlackBerry 10 Native SDK enables you to develop applications in C/C++ and provides an open-source friendly environment for porting POSIX compliant code. It comes with the Cascades framework allowing you to build visually rich applications. The key focus of this development guide is specifically on BlackBerry 10 Cascades development. For more information on BlackBerry Native Development, please refer to <a href="http://developer.blackberry.com/native/" target="_new">http://developer.blackberry.com/native/</a></p>
<p><span id="more-13401"></span></p>
<p><img class="aligncenter size-full wp-image-13403" alt="cascades-porting-2" src="http://rimdevblog.files.wordpress.com/2013/01/cascades-porting-2.jpg?w=600&#038;h=265" width="600" height="265" /></p>
<h3><strong>What is Cascades?</strong></h3>
<p>BlackBerry Cascades is built using the Qt framework, which allows Cascades to leverage the Qt object model, event model and threading model. BlackBerry Cascades enables you to develop your UI in C++, Qt Modeling Language (QML), or both. Qt Modeling Language (QML) is a declarative language that&#8217;s based on JavaScript and is included as part of Qt. You can use QML to describe the structure and behavior of a set of UI controls. BlackBerry Cascades uses a modified version of QML to let you create UIs for your apps.</p>
<p>One fundamental importance when looking to develop your BlackBerry Cascades application is deciding when to use QML or C++. You can use both of these languages in your application, but as a general rule of thumb you should use QML for your UI development and C++ for your business logic. Please refer to the below link more information on BlackBerry Cascades development and to download Native SDK and BlackBerry 10 Simulator. <a href="https://developer.blackberry.com/cascades/" target="_new">https://developer.blackberry.com/cascades/</a></p>
<h3><strong>API Feature Parity</strong></h3>
<p>One of the main challenges while migrating app functionality from BlackBerry Java to Cascades is finding the correct mapping of APIs. To simplify this process, below is an API Feature Parity table that covers the most common BlackBerry Java APIs and their corresponding equivalent API in Cascades.</p>
<p><img class="aligncenter size-full wp-image-13412" alt="cascades-table" src="http://rimdevblog.files.wordpress.com/2013/01/cascades-table1.jpg?w=593&#038;h=959" width="593" height="959" /></p>
<p>As you can see from the above table image, most of the common Java APIs have a direct mapping in Cascades making it easy for you to port your existing BlackBerry Java application to BlackBerry 10.</p>
<p>Please stay tuned for series Part 2 – Application Life Cycle.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13401/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13401/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13401&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/01/port-java-to-cascades-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/41e8b1a2189dfce0a51887beab21795d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gurtejsan1</media:title>
		</media:content>

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

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

		<media:content url="http://rimdevblog.files.wordpress.com/2013/01/cascades-table1.jpg" medium="image">
			<media:title type="html">cascades-table</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>
		<item>
		<title>The Kaxi Beta Portal for BlackBerry 10 is now open</title>
		<link>http://devblog.blackberry.com/2012/10/kaxi-beta-portal/</link>
		<comments>http://devblog.blackberry.com/2012/10/kaxi-beta-portal/#comments</comments>
		<pubDate>Wed, 31 Oct 2012 19:28:45 +0000</pubDate>
		<dc:creator>karigow</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[Kaxi]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[taxi]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11846</guid>
		<description><![CDATA[C2 Development has opened up their application Kaxi for beta testing exclusively on BlackBerry® 10 Dev Alpha devices. Kaxi is a location-based app that simplifies the process of finding taxi companies local to the UK and USA. All you need is a GPS signal and a working network connection (Wi-Fi®/3G/4G). The app will then list [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11846&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-11855" title="" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/10/kaxi.jpg?w=500&#038;h=225" height="225" width="500" /></p>
<p>C2 Development has opened up their application Kaxi for beta testing exclusively on BlackBerry® 10 Dev Alpha devices. Kaxi is a location-based app that simplifies the process of finding taxi companies local to the UK and USA. All you need is a GPS signal and a working network connection (Wi-Fi®/3G/4G). The app will then list local taxi companies nearest your location.</p>
<p><a href="http://kaxiapp.com/beta" target="_new">Sign up for the beta</a> to gain access to the latest release before it reaches the BlackBerry App World™ storefront. Accepted beta requests will be given access to the Kaxi beta Portal which may be used to submit feedback and bug reports. The latest downloads will also be available via this portal.</p>
<p>Kaxi is currently only available for BlackBerry 10.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11846/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11846/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11846&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/10/kaxi-beta-portal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/fc8883163f140ec5371c68b362df9f4a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">karigow</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/10/kaxi.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrating NFC into your BlackBerry 10 Application</title>
		<link>http://devblog.blackberry.com/2012/10/blackberry-10-app-nfc/</link>
		<comments>http://devblog.blackberry.com/2012/10/blackberry-10-app-nfc/#comments</comments>
		<pubDate>Thu, 25 Oct 2012 15:34:13 +0000</pubDate>
		<dc:creator>mdwrim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Near Field Communication]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[use case]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11782</guid>
		<description><![CDATA[Guest post from John Murray &#8211; Ed. You know, working in the Developer Relations team at Research In Motion® (RIM®), you get to get to play around with some fun stuff. Recently, Near Field Communication (NFC) has been exercising my brain cells. Some of you may be familiar with the NFC-related articles and code samples [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11782&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><i>Guest post from John Murray &#8211; Ed.</i></p>
<p>You know, working in the Developer Relations team at Research In Motion® (RIM®), you get to get to play around with some fun stuff. Recently, Near Field Communication (NFC) has been exercising my brain cells. Some of you may be familiar with the NFC-related articles and code samples that I’ve co-authored with my co-conspirator, Martin Woolley (<a href="http://twitter.com/mdwrim" target="_new">@mdwrim</a>), which you can find listed in our <a href="http://supportforums.blackberry.com/t5/Java-Development/NFC-Article-and-Code-Index/ta-p/1538775" target="_new">NFC Article and Code index</a>.</p>
<p>Now, whenever you mention NFC in a conversation, people invariably think of payments. Using NFC to make secure payments is perhaps the most obvious use case. However, when I think of NFC I tend to think of workflows as well. “Workflows,” you say? What do you mean?</p>
<p>OK, let’s think about it anecdotally. How many times have you had the challenge of transcribing some data from an external source to your handset whilst holding a bag and trying to hold a conversation at the same time? How many times have you tried to share information on your handset with someone else and had to struggle with inputting email addresses whilst doing three other things at the same time? These use cases are examples of Workflows, or Business Processes, that stumble on the point of having to accommodate more “human” interaction than is really necessary. NFC can be used to help streamline simple workflows that involve human interactions on mobile devices and ultimately help achieve efficiencies.</p>
<p><span id="more-11782"></span></p>
<p>So, having thought about this and how to demonstrate a simple but realistic use case (whilst also having some fun), we came up with the concept of the “Fun Run”.</p>
<p>Suppose you’re taking part in a charity “Fun Run” – not quite a marathon but something shorter for fun. The race organizers have developed a simple mobile application to allow you to register for the event and have placed NFC Tags in the starting and finishing areas. As you start you tap on one of the tags, your race timer is started as well as notifying the organizers that you have begun. When you pass the finish line, simply tap on one of the tags in the Finish area to stop your timer and notify the organizers of your finishing time!</p>
<p>In between the start and finish, there may be Way Points with NFC Reader devices that can be used to register intermediate times as the runner passes these points. Tap the handset to the NFC Reader and receive confirmation that the timing data has been transferred successfully.</p>
<p>OK, maybe it’s not 100% realistic, but as an example it is sufficient to demonstrate how a workflow process that involves having to record start and finish times and tracking progress can be made more efficient using NFC. The key learning point is to understand how integrating NFC technology into your application can be used to achieve efficiencies in similar processes.</p>
<h3><strong>The Applications</strong></h3>
<p>Let’s take a look at how we implemented this simple example using BlackBerry® 10 and BlackBerry® 7 NFC capable devices. There are really three use cases:</p>
<p>1. Tap your handset against an NFC tag at the start of the race to start your race timer.<br />
2. Tap your handset against NFC readers at intermediate waypoints during the race to transfer your current race timer data to an application that manages the reader.<br />
3. Tap your handset against an NFC tag at the end of the race to stop your race timer.</p>
<h3><strong>Acting on External Tag Events</strong></h3>
<p>To implement the first and last use case, we decided to provide two NFC tags that had specific NDEF messages as their content. There would be one tag that would start the timer at the start of the race and one tag that would stop the timer at the end of the race.</p>
<p>Specifically the data in the two tags is:</p>
<p><strong>1. Tag used to start the timer:</strong></p>
<p>NDEF TNF = External ( integer value 4 )<br />
Type = &#8220;my.rim.com:myrecordtype&#8221;<br />
Payload = &#8220;start&#8221;</p>
<p><strong>2. Tag used to stop the timer:</strong></p>
<p>NDEF TNF = External ( integer value 4 )<br />
Type = &#8220;my.rim.com:myrecordtype&#8221;<br />
Payload = &#8220;stop&#8221;</p>
<p>Why use this data? Well, firstly we choose an NDEF TNF (Type Name Format) for the NDEF Message because it allows us to define custom tag content that won’t clash with standard tag message types such as Smart Poster (“Sp”) or URL (“U”) or Text (“T”). We want to make sure that when one of these tags is presented, our application, and our application alone, is launched to process the tag.</p>
<p>Secondly, we choose a “Type” of &#8220;<strong>my.rim.com:myrecordtype</strong>&#8220;. Within the context of an External TNF record the Type can be arbitrary, but in order to prevent clashes with other organizations’ custom tag formats, we use the DNS naming scheme to set the namespace of the tag as “<strong>my.rim.com</strong>” to establish it as a RIM NDEF message. We further qualify it with a specific sub-type of “<strong>myrecordtype</strong>” since an organization may define a whole family of custom tag formats for its own use.</p>
<p>So, these settings ensure that these tags will only make sense to our application and not overlap with tags form elsewhere. The “Payload” of the two tags differs in that one has the string “<strong>start</strong>” and the other has the string “<strong>stop</strong>” to mark them as ones to be used to start and stop the timers respectively.</p>
<p>In the case of BlackBerry 10, our application registered with the Invocation Framework through the stanza in its “<strong>bar-descriptor.xml</strong>” file as shown in Figure 1. The “<strong>uris</strong>” attribute of the “<strong>&lt;property &#8230; /&gt;</strong>” tag has been set to the value “<strong>ndef://4/my.rim.com/myrecordtype</strong>” which a URI format specification of the two tags just described above.</p>
<pre>...
&lt;invoke-target id="com.example.NfcRaceTimeWay"&gt;
    &lt;type&gt;APPLICATION&lt;/type&gt;
    &lt;filter&gt;
        &lt;action&gt;bb.action.OPEN&lt;/action&gt;
        &lt;mime-type&gt;application/vnd.rim.nfc.ndef&lt;/mime-type&gt;
        &lt;property var="uris" value="ndef://4/my.rim.com/myrecordtype"/&gt;
    &lt;/filter&gt;
&lt;/invoke-target&gt;
...</pre>
<p style="text-align:center;">Figure 1 Registering for tag types in BlackBerry 10</p>
<p>When a “start” or “stop” tag is presented to the handset, then our application is launched if it’s not already running, and the tag contents are handled as shown in Figure 2 &#8212; where the payload of “start” or “stop” is extracted once we’ve verified that it’s of the correct type.</p>
<pre>...
void NfcListener::receivedInvokeRequest(const bb::system::InvokeRequest&amp; request) {

    QByteArray data = request.data();
    QtMobilitySubset::QNdefMessage ndefMessage = QtMobilitySubset::QNdefMessage::fromByteArray(data);

    handleNdefRequest(ndefMessage);
}

void NfcListener::handleNdefRequest(const QtMobilitySubset::QNdefMessage ndefMessage) {

    QList::const_iterator ndefRecord;

    for ( ndefRecord = ndefMessage.begin(); ndefRecord != ndefMessage.end(); ndefRecord++) {
        if (ndefRecord-&gt;typeNameFormat() == QtMobilitySubset::QNdefRecord::ExternalRtd) {
            if (QString(ndefRecord-&gt;type()).compare("my.rim.com:myrecordtype") == 0 ) {
                emit raceTagDetected(QString(ndefRecord-&gt;payload()));
            }
        }
    }
}
...</pre>
<p style="text-align:center;">Figure 2 Handling a Start or Stop tag in BlackBerry 10</p>
<p>In the case of BlackBerry 7, registration is achieved in Java® by registering a listener for the specific NDEF message type as shown in Figure 3.</p>
<pre>...
    nfcManager = ReaderWriterManager.getInstance();
    nfcManager.addNDEFMessageListener(listener, NDEFRecord.TNF_EXTERNAL, "my.rim.com:myrecordtype", true);
...</pre>
<p style="text-align:center;">Figure 3 Registering for tag types in BlackBerry 7</p>
<p>A similar behaviour is achieved for BlackBerry 7 through the implementation of the “<strong>onNDEFMessageDetected()</strong>” method of the “<strong>NDEFMessageListener</strong>” interface as shown in Figure 4.</p>
<pre>...
    public void onNDEFMessageDetected(NDEFMessage msg) {
        NDEFRecord[] records = msg.getRecords();
        int numRecords = records.length;
        if(numRecords &gt; 0) {
            byte[] payloadBytes = records[0].getPayload();
            try {
                String ascii_payload = new String(payloadBytes,"US-ASCII");
                Utilities.log("XXXX payload="+ascii_payload);
                if (ascii_payload.equals("start")) {
                    startTimer();
                }
                if (ascii_payload.equals("stop")) {
                    stopTimer();
                }
            } catch(UnsupportedEncodingException e) {
                Utilities.log("XXXX "+e.getClass().getName()+":"+e.getMessage());
            }
        }

    }

...</pre>
<p style="text-align:center;">Figure 4 Handling a Start or Stop tag in BlackBerry 7</p>
<p>So, what we’ve achieved here is the ability to use an external NFC tag to trigger a process in our application. In this case it’s simply the starting and stopping of a timer, but it could be extended quite easily to, say, call a web service and integrate the event into a larger workflow process.</p>
<p>What does this look like in practice? Well, here’s a short video of the BlackBerry 10 application in action:</p>
<p style="text-align:center;"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='480' height='360' src='http://www.youtube.com/embed/QZ5nABZcFuo?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://www.youtube.com/watch?v=QZ5nABZcFuo&amp;feature=youtu.be" target="_new">YouTube link for mobile viewing</a> ]</p>
<h3><strong>Virtual Tag Emulation</strong></h3>
<p>Let’s get back to the original use cases. To implement the second one, we decided to have the BlackBerry handset emulate a virtual tag and allow the contents of the virtual tag to be read by an external NFC reader.<br />
What format of tag should be emulated by the handset? This is what we chose:</p>
<p><strong>1. Virtual tag emulated by the application</strong></p>
<p>NDEF TNF = External ( integer value 4 )<br />
Type = &#8220;my.rim.com:myrecordtype&#8221;<br />
Payload = &#8220;hh:mm:ss&#8221;</p>
<p>a. That is the time displayed on the handset in:<br />
Hours (hh)<br />
Minutes (mm)<br />
Seconds (ss)</p>
<p>The type of the virtual tag is exactly the same as for the “start” and “stop” physical tags for the very same reasons, except that the payload is a representation of the current race timer value (“hh:mm:ss”) as displayed by the application.</p>
<pre>...
void NfcListener::startTagEmulation(const QString &amp;tagData) {
    nfc_ndef_record_t *ndefRecord = makeCustomRecord(QString("my.rim.com"), QString("myrecordtype"), tagData);
    if (_emulateNdefMessage) {
        CHECK(nfc_delete_ndef_message(_emulateNdefMessage, true));
        _emulateNdefMessage = 0;
    }
    CHECK(nfc_create_ndef_message(&amp;_emulateNdefMessage));
    CHECK(nfc_add_ndef_record(_emulateNdefMessage, ndefRecord));
    CHECK(nfc_start_ndef_tag_emulation(_emulateNdefMessage));
...</pre>
<p style="text-align:center;">Figure 5 BlackBerry 10 &#8211; starting virtual tag emulation</p>
<p>As shown in Figure 5, starting tag emulation in BlackBerry 10 is quite simple. It just involves calling “<strong>nfc_start_ndef_tag_emulation()</strong>”. In addition we can use BPS (BlackBerry Platform Services) to determine when a read on the virtual tag has been successful, as shown here in Figure 6:</p>
<pre>...
void NfcListener::handleNfcEvent(bps_event_t *event) {
    uint16_t code = bps_event_get_code(event);
    if (NFC_VIRTUAL_TAG_SELECTION_EVENT == code) {
        emit tagEmulationSelectEvent();
    } else if (NFC_VIRTUAL_TAG_LEFT_EVENT == code) {
        emit tagEmulationLeftEvent();
    } else if (NFC_VIRTUAL_TAG_READ_EVENT == code) {
        emit tagEmulationReadEvent();
    }
}
...</pre>
<p style="text-align:center;">Figure 6 BlackBerry 10 &#8211; stopping virtual tag emulation</p>
<p>So, what we’ve achieved here is the ability to transmit live information from an application in the BlackBerry handset in real time to an external application via an NFC reader. The external application simply displays the time displayed by the BlackBerry application, but it could easily be extended to integrate with some larger workflow process.</p>
<p>Take a look at the video here for a demonstration of this on BlackBerry 10:</p>
<p style="text-align:center;"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='480' height='360' src='http://www.youtube.com/embed/g58Xpnsqq4o?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://www.youtube.com/watch?v=g58Xpnsqq4o&amp;feature=youtu.be" target="_new">YouTube link for mobile viewing</a> ]</p>
<p>If you’re interested, the virtual tag emulation functionality was tested using an NFC Reader attached to a PC controlled by a Python application using the “PyScard” (Python for Smart Cards) library available from <a href="http://pyscard.sourceforge.net/" target="_new">SourceForge.net</a>. (Python and Ruby are my favorite programming languages!)</p>
<p>The two versions of our NFC-enabled “Fun Run” applications are available with full source code from our GitHub repositories here:</p>
<p><a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/NfcRaceTimeWay" target="_new">https://github.com/blackberry/Cascades-Community-Samples/tree/master/NfcRaceTimeWay</a><br />
<a href="https://github.com/blackberry/Samples-for-Java/tree/master/NFC/NfcRaceTime7" target="_new">https://github.com/blackberry/Samples-for-Java/tree/master/NFC/NfcRaceTime7</a></p>
<p>Just in closing, it’s worth making one or two comments about the relative ease of developing applications to the same set of end user specifications in BlackBerry 10 Cascades™ versus BlackBerry 7 Java. I’ve been developing code in C/C++ for more years than I care to remember and for a shorter time in Java (but still since the language first saw the light of day), so I feel I’m qualified to make comparisons. I’ll be honest: I’ve found it much easier to develop applications using C/C++ and Cascades. The user interface elements are particularly easy to use, and I’ve found it possible to get a user interface up and running in Cascades much faster than I would have done in Java. It’s much easier to modify and extend since Cascades elements map directly to Qt/Cascades C++ classes and the SIGNAL() / SLOT() model makes it so easy to connect events to handlers.</p>
<p>I’m definitely sold on Cascades, Qt and C/C++!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11782/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11782/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11782&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/10/blackberry-10-app-nfc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d86c7fdd0d15b754b2760af4536923b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdwrim</media:title>
		</media:content>
	</item>
		<item>
		<title>Get Your Invoke On: BlackBerry 10 Invocation Framework</title>
		<link>http://devblog.blackberry.com/2012/08/blackberry-10-invocation-framework/</link>
		<comments>http://devblog.blackberry.com/2012/08/blackberry-10-invocation-framework/#comments</comments>
		<pubDate>Fri, 17 Aug 2012 14:18:52 +0000</pubDate>
		<dc:creator>Shadid</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry 10 invocation framework]]></category>
		<category><![CDATA[bound invocation]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[invoke]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[unbound invocation]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=10749</guid>
		<description><![CDATA[BlackBerry® apps have always been known for their ability to deeply integrate with core applications as well as with other third-party apps. With BlackBerry® 10, we are taking that experience to the next level with our Invocation Framework. It enables one application to request another to perform a specific task. For example, BlackBerry® Messenger (BBM™) [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10749&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>BlackBerry® apps have always been known for their ability to deeply integrate with core applications as well as with other third-party apps. With BlackBerry® 10, we are taking that experience to the next level with our Invocation Framework. It enables one application to request another to perform a specific task. For example, BlackBerry® Messenger (BBM™) may request an app to open a .DOC file that it received in a chat session. But that’s just the tip of the iceberg &#8211; the framework streamlines the communication between apps and provides a consistently smooth and jitter-free user experience.</p>
<p>First and foremost, there are two kinds of invocations – unbound and bound. An unbound invocation is performed when an app does not specify a specific target app that should get invoked, and hence relies on the invocation framework to select the best target. For example, if there are three apps that can open .DOC files, the framework chooses the best one based on its own target selection logic. So, for unbound invocations, the framework provides automatic brokering to find the best-fit targets and also performs target selection to choose the best among the best. This is very powerful because the client application does not need to know any target applications at all, and yet it can discover and invoke them via the invocation framework.</p>
<p><span id="more-10749"></span></p>
<p><img class="aligncenter size-full wp-image-10751" title="" src="http://rimdevblog.files.wordpress.com/2012/08/invocation-framework-1.jpg?w=600&#038;h=422" alt="TITLE_IMAGE" width="600" height="422" /></p>
<p>On the other hand, a bound invocation is performed when the target app is specified by the client application while sending an invocation request. For example, a client app may request that Docs to Go® should be invoked for opening a .doc file. In this case, the invocation framework does not provide any brokering (or target selection) and blindly invokes the specified target app with the request parameters. Extra care must be taken when performing a bound invocation because an app may be sending a request to a target that the target does not understand at all. One thing is clear &#8212; bound invocation assumes that the client knows the target well.</p>
<p><img class="aligncenter size-full wp-image-10750" title="" src="http://rimdevblog.files.wordpress.com/2012/08/invocation-framework-2.jpg?w=600&#038;h=191" alt="" width="600" height="191" /></p>
<p>There are really two ways you can know a target. First, you might have had a conversation with the author of the target app and have an agreement on the invocation request parameters. In return, they have made you aware of their target ID that you can use to perform a bound invocation. Second, you can query the invocation framework with an invocation request to get a list of best-fit targets and programmatically parse their attributes (capabilities) including their target IDs and invoke one programmatically. Note that querying is another way to discover apps without knowing them and is even more powerful and flexible than unbound invocations. As long as you have a valid target ID, you can perform a bound invocation with the appropriate parameters.</p>
<p>So far so good, but how does the invocation framework know about all the target apps? It does because each target app is required to register with the framework if they wish to be considered by the framework. While registering with the framework, targets must specify a target id which alone makes them candidates for bound invocation. However if a target wants to make itself available for unbound invocations or invocation queries, it must define one or more invoke filters. Each filter is a combination of the following attributes.</p>
<ul>
<li>Actions (e.g. bb.action.OPEN) that describes the action it can perform</li>
<li>MIME types (e.g. application/pdf) describing the content type it can perform the action on</li>
<li>URIs (e.g. <a href="http://" rel="nofollow">http://</a>, file://) specifying the protocols it can handle to retrieve the data</li>
<li>EXTs describing the file extensions it can handle if the URI scheme is file://</li>
</ul>
<p>Note that at least one action and one MIME type is mandatory for each filter definition, and if the URI is file://, at least one EXT must be specified. Filters are what really allow the invocation framework to broker between clients and potential targets as well as target selection that lead to successful invocations.</p>
<p>Well, that’s a 30,000 feet overview of the invocation framework but as a developer I know your hands are itching for some real code. The good news is I have that covered &#8212; I have already uploaded a few sample applications on Github that you may find very (very) useful.</p>
<ul>
<li><a href="https://github.com/blackberry/Cascades-Samples/tree/master/invokeclient" target="_new">InvokeClient</a> – An application that demos different ways to invoke and to query for targets</li>
<li><a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/InvokeTarget1" target="_new">InvokeTarget1</a> – A dummy target app that can be used with InvokeClient</li>
<li><a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/InvokeTarget2" target="_new">InvokeTarget2</a> – A second dummy target app that can also be used with InvokeClient</li>
</ul>
<p>Samples are great, but so are documentations (if we read them) for a solid understanding. Please refer to our <a href="https://developer.blackberry.com/cascades/documentation/device_platform/invocation/index.html" target="_new">App Integration</a> development guide for a comprehensive guide with code snippets for both invoke clients and targets.</p>
<p>I am more excited than ever before to introduce the invocation framework as part of the <a href="https://developer.blackberry.com/cascades/download" target="_new">BlackBerry 10 Native SDK beta 2</a> and have no doubt that this will help most app developers out there to provide a deeply integrated user experience. Invocation is one of the core aspects of the BlackBerry 10 experience and come launch, it is going to be hard to find an app that does not invoke or get invoked. I will keep everyone posted on new features as we add them to this framework but more importantly, I am all ears to your feedbacks at shaque[at]rim[dot]com, <a href="http://twitter.com/BlackBerryDev" target="_new">@BlackBerryDev</a> and <a href="http://twitter.com/shadidhaque" target="_new">@shadidhaque</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/10749/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/10749/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10749&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/08/blackberry-10-invocation-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/25ee80c29143f159bad70d24df820bc1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shadidhaque</media:title>
		</media:content>

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

		<media:content url="http://rimdevblog.files.wordpress.com/2012/08/invocation-framework-2.jpg" medium="image" />
	</item>
		<item>
		<title>PineLake Communications on Porting Cubifice to BlackBerry 10</title>
		<link>http://devblog.blackberry.com/2012/08/dev-success-cubifice/</link>
		<comments>http://devblog.blackberry.com/2012/08/dev-success-cubifice/#comments</comments>
		<pubDate>Tue, 07 Aug 2012 15:02:44 +0000</pubDate>
		<dc:creator>Milena H</dc:creator>
				<category><![CDATA[Case Studies & Success Stories]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app porting]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry 10 Dev Alpha]]></category>
		<category><![CDATA[blackberry app world]]></category>
		<category><![CDATA[case study]]></category>
		<category><![CDATA[Cubifice]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Pinelake Communications]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=10590</guid>
		<description><![CDATA[A Q&#38;A with members of Pinelake Communications about their experience porting the Cubifice app to BlackBerry 10.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10590&#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/2012/08/1_cubifice.png"><img class="aligncenter  wp-image-10605" title="1_cubifice" src="http://rimdevblog.files.wordpress.com/2012/08/1_cubifice.png?w=552&#038;h=303" alt="TITLE_IMAGE" width="552" height="303" /></a></p>
<p>When digital media company <a href="http://pinelake.com/" target="_blank">PineLake Communications®</a> wanted to learn more about BlackBerry® 10 development, it developed a simple application on the Android™ platform and ported it to the BlackBerry® PlayBook™ tablet and BlackBerry 10 Dev Alpha device. The company quickly learned that porting the app was not only a simple and straightforward process, but also that the visibility of their application on the <a href="http://www.blackberry.com/playbook" target="_new">BlackBerry PlayBook</a> tablet was far superior to any other platform. After enjoying measurable early success with their <a href="http://appworld.blackberry.com/webstore/content/123752" target="_blank">Cubifice®</a> app, the company is looking forward to the official launch of the game on the BlackBerry 10 platform.</p>
<p>PineLake’s Creative Director, Bill Larocque, Cubifice lead developer, Dave Wagler and Associate Account Director, Liana Buenaventura Brown talked about the ease of porting the application, why it is important to develop for the BlackBerry platform and the importance of sharing the app with other BlackBerry 10 Dev Alpha device developers.</p>
<p><span id="more-10590"></span></p>
<p><strong>Describe your experience porting your application to the BlackBerry 10 Dev Alpha device.</strong></p>
<p><strong>Dave:</strong> The porting process only took us one hour. The application was built using the OpenGL framework, which has a lot of existing support. Once I read the documentation about how to convert the application, it was extremely easy to install the BlackBerry tools into Eclipse™. After a couple of clicks, we came up with the BlackBerry 10 application. It took a very small amount of increased labor to build on the BlackBerry PlayBook tablet and BlackBerry 10 versions, and the rewards have certainly been worth it.</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/AkQvNAysbrk?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><strong>Bill:</strong> We couldn’t believe how quick, easy and powerful the porting process was. That last hour of work was the most productive time that we spent on the entire project and it allowed us to work with a real live device. I would recommend that all Android developers try it because it is so straightforward and has already proven to be successful for us.</p>
<p><strong>Why was it important for you to develop this application on the BlackBerry platform?</strong></p>
<p><strong>Bill:</strong> The BlackBerry user community is very engaged, and there is far greater visibility of your application on the BlackBerry App World™ storefront than on other platforms. <a href="http://appworld.blackberry.com/" target="_new">BlackBerry App World</a> has a clear layout and does not suffer from the over-saturation that you find somewhere like Google Play, where your app quickly feels lost in a huge sea of similar applications. With this application, not only do we have 25 times more downloads on BlackBerry App World than on Google Play, but we’ve also been able to maintain that high number and visibility. This visibility translates into a far better return on investment once the app becomes monetized because we will have to spend far less on marketing the application to users.</p>
<p><strong>Why is developing for the BlackBerry 10 Dev Alpha device such a good opportunity?</strong></p>
<p><strong>Bill:</strong> It’s important to be able to put an application on an actual device, put it in other peoples&#8217; hands and have them test it. Having access to the BlackBerry 10 Dev Alpha device means that we can avoid going through launch issues and beta testing. We also have the ability to submit this application to BlackBerry App World and allow other developers to download it on their BlackBerry 10 Dev Alpha devices. Developers are keen to download each other’s apps and outdo each other, leading to healthy competition and better overall apps.</p>
<p><strong>Liana:</strong> We feel confident that we are well ahead of the curve for the launch of the BlackBerry 10 smartphones. Developing the application on the BlackBerry 10 Dev Alpha device ahead of time helps us ensure that we’ve covered all of our bases and gives us the utmost confidence that we’ll be able to deliver a great experience to the public. We now have the opportunity to fine-tune the experience with the help of every BlackBerry developer who downloads it onto their device, and that’s a huge plus.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/10590/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/10590/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10590&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/08/dev-success-cubifice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f212868ddd28136953d9b84739741ba1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">milenahewitt</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/08/1_cubifice.png" medium="image">
			<media:title type="html">1_cubifice</media:title>
		</media:content>
	</item>
		<item>
		<title>Building Compelling 3D Apps using Cascades and OpenGL ES</title>
		<link>http://devblog.blackberry.com/2012/07/cascades-webcast-4/</link>
		<comments>http://devblog.blackberry.com/2012/07/cascades-webcast-4/#comments</comments>
		<pubDate>Tue, 24 Jul 2012 17:12:04 +0000</pubDate>
		<dc:creator>Jayne L</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[ndk]]></category>
		<category><![CDATA[OpenGL ES]]></category>
		<category><![CDATA[sample app]]></category>
		<category><![CDATA[webcast]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=10358</guid>
		<description><![CDATA[We've got the fourth Cascades webcast coming up soon - register now!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10358&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><img title="" src="http://rimdevblog.files.wordpress.com/2012/07/cascades-webcast-1.jpg?w=242&#038;h=402" alt="" width="242" height="402" /> <img title="" src="http://rimdevblog.files.wordpress.com/2012/07/cascades-webcast-2.jpg?w=242&#038;h=402" alt="" width="242" height="402" /></p>
<p>If you want to write your own Cascades™ app using OpenGL ES, you can’t miss our webcast on <strong>Building Compelling 3D Apps using Cascades and OpenGL ES</strong>, which will take place on July 31, 2012 at 11am EST.</p>
<p>This fourth Cascades webcast will focus on how to combine Cascades and OpenGL ES to create compelling 3D apps. The techniques discussed were first presented at <a href="http://www.blackberryjamconference.com/" target="_new">BlackBerry® 10 Jam</a> in Orlando by discussing the creation of GoodCitizenCascades, a Cascades version of the NDK sample app Good Citizen (the original version of this sample app will be posted to the Cascades-Community-Samples repository on GitHub soon). The sample app featured best practices for how to properly structure the OpenGL code and link it in with Cascades, how to leverage Actions and the use of NavigatorPanes for multiple panels, and how to process touch events and use them to control a 3D scene rendered in OpenGL using Qt objects and JavaScript®. In the webcast, we will also expand on the original content with more Cascades tips and tricks based on new Cascades features coming in the next BlackBerry 10 beta release, and demonstrate at least one additional sample app demonstrating some of the integration techniques not covered before.</p>
<p><a href="http://www.blackberrydeveloperevents.com/events/webcast/registration/register.html?scoid=1052564617" target="_new">Registration is now open</a>, so get signed up and reserve your seat today!</p>
<h3><strong>Miss the first three webcasts? No problem!</strong></h3>
<p>If you would like to attend the fourth webcast but missed the first three, don’t worry &#8212; they are available on-demand from the <a href="https://developer.blackberry.com/cascades/documentation/videos/index.html" target="_new">Cascades microsite</a>. Feel free to watch these webcasts, follow along with the sample applications demonstration, and code at the same time. You’ll be able to get caught up on all the information needed to take full advantage of the fourth webcast session.</p>
<p>On the topic of videos: if you are unable to attend this fourth session, rest assured that it too will be posted to the Cascades microsite shortly following its presentation, so keep watch of the site for updates.</p>
<p>I am eagerly looking forward to the upcoming webcasts and interacting with you all again!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/10358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/10358/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10358&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/07/cascades-webcast-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/26be54b1524c0cfc3ec4a27e5ef449a2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lordy1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/07/cascades-webcast-1.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/07/cascades-webcast-2.jpg" medium="image" />
	</item>
		<item>
		<title>Best Practices for Internationalizing your BlackBerry WebWorks App</title>
		<link>http://devblog.blackberry.com/2012/06/internationalizing-webworks-app/</link>
		<comments>http://devblog.blackberry.com/2012/06/internationalizing-webworks-app/#comments</comments>
		<pubDate>Mon, 18 Jun 2012 14:09:53 +0000</pubDate>
		<dc:creator>Naveen</dc:creator>
				<category><![CDATA[Java Development]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[blackberry webworks]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[sample code]]></category>
		<category><![CDATA[texts]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=9764</guid>
		<description><![CDATA[Demonstrating the best ways to internationalize your BlackBerry WebWorks application.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9764&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><img class="aligncenter size-full wp-image-9769" src="http://rimdevblog.files.wordpress.com/2012/06/webworks.jpg?w=550&#038;h=255" alt="TITLE_IMAGE" width="550" height="255" /></p>
<p>Last month, we looked at <a href="http://devblog.blackberry.com/2012/05/app-internationalization" target="_new">how to internationalize your BlackBerry® Java® application</a>. In this post, we will look at how to internationalize your BlackBerry® WebWorks™ application. There are a few options for accomplishing this – let’s take a look.</p>
<h3><strong>Using JavaScript and storing all the texts locally</strong></h3>
<p>One common way to internationalize your web application is to remove all strings from your code and have them all in an object with key-value pairs. All the code exists locally and nothings get stored on the server side.</p>
<p>This looks something like:</p>
<pre>var strings = {
	"en" : {
		"BUTTON_CANCEL" : "Cancel",
		"BUTTON_SAVE" : "Save"
	},
	nl: {
		"BUTTON_CANCEL" : "Annuleer",
		"BUTTON_SAVE" : "Opslaan"
	}
}</pre>
<p>Now let&#8217;s assume you keep the chosen language somewhere in a variable called language. You can then access the right string for the user language, like with the cancel button text for example:</p>
<p>Strings[language].BUTTON_CANCEL</p>
<p>That will give you either &#8216;Cancel&#8217; or &#8216;Annuleer&#8217; depending on whether the language variable contains &#8216;en&#8217; or &#8216;nl&#8217;.</p>
<p><span id="more-9764"></span></p>
<h3><strong>Using JavaScript and storing all the texts on a remote server</strong></h3>
<p>Another way of internationalizing your application in BlackBerry WebWorks platform is to use the server side code. Unfortunately, JavaScript does not have the concept of a resource file, and strings that will be generated by JavaScript must be defined in the code.</p>
<p>The easiest approach to deal with this issue is to define your JavaScript strings dynamically in server-side code (Java/JSP, ASPX, PHP, etc.). The following example defines some string resources in a JavaScript script block at the top of a JSP page:</p>
<p><img class="alignnone size-full wp-image-9768" title="" src="http://rimdevblog.files.wordpress.com/2012/06/webworks-1.jpg?w=600&#038;h=142" alt="" width="600" height="142" /></p>
<p>Assuming the currentLocale object is set to English (US), the resulting block should look like this:</p>
<p><img class="alignnone size-full wp-image-9767" title="" src="http://rimdevblog.files.wordpress.com/2012/06/webworks-2.jpg?w=600&#038;h=216" alt="" width="600" height="216" /></p>
<p>When currentLocale is set to German (Germany) it should change to this:</p>
<p><img class="alignnone size-full wp-image-9766" title="" src="http://rimdevblog.files.wordpress.com/2012/06/webworks-3.jpg?w=600&#038;h=195" alt="" width="600" height="195" /></p>
<p>There are a couple things to keep in mind with this approach. First, any strings that are embedded in the files, whether JSP/ASPX/PHP/etc. or JavaScript .js files, must be externalized, i.e. the strings should be moved into the string resource block as demonstrated above, and replaced in the code with their variable names. Second, the JavaScript string resource block should be defined before any other embedded blocks or .js file includes that make use of these externalized strings. For example, the resource block should be defined before the following function is called:</p>
<p><img class="alignnone size-full wp-image-9765" title="" src="http://rimdevblog.files.wordpress.com/2012/06/webworks-4.jpg?w=500&#038;h=272" alt="" width="500" height="272" /></p>
<h3><strong>Using JavaScript Object Notation (JSON)</strong></h3>
<p>Finally, another way to add multi-language support to your BlackBerry WebWorks application is to use JSON objects. Here is a sample which illustrates the use of JSON objects and changes the text dynamically based on the user’s language selection:</p>
<pre>&lt;html&gt;
&lt;body&gt;
&lt;h2&gt;Internationalization Sample in WebWorks&lt;/h2&gt;
&lt;h3&gt;Select a language:&lt;/h3&gt;
&lt;p&gt;

&lt;select id="languagechoice" onChange="displayGreeting()" &gt;
  &lt;option value="1"&gt;English&lt;/option&gt;
  &lt;option value="2"&gt;French&lt;/option&gt;
  &lt;option value="3"&gt;Spanish&lt;/option&gt;
  &lt;option value="4"&gt;German&lt;/option&gt;
&lt;/select&gt;

&lt;br/&gt; 
&lt;br/&gt;
&lt;br/&gt;

 &lt;span id="greetings"&gt;&lt;/span&gt; &lt;br/&gt;
&lt;/p&gt;

&lt;script type="text/javascript"&gt;

function displayGreeting(){

 var lang = document.getElementById("languagechoice");
 var lang_value = lang.options[lang.selectedIndex].value; 

 var JSONObject_en = {"hello":"Hello, Welcome to Internalization of WebWorks Applications in English!"};
 var JSONObject_fr = {"hello":"Hello, Welcome to Internalization of WebWorks Applications in French!"};
 var JSONObject_es = {"hello":"Hello, Welcome to Internalization of WebWorks Applications in Spanish!"};
 var JSONObject_de = {"hello":"Hello, Welcome to Internalization of WebWorks Applications in German!"};

 if(lang_value == 1){
   document.getElementById("greetings").innerHTML=JSONObject_en.hello 
 }
 else if (lang_value == 2 ){
   document.getElementById("greetings").innerHTML=JSONObject_fr.hello
 }
 else if (lang_value == 3 ){
   document.getElementById("greetings").innerHTML=JSONObject_es.hello
 }
 else{
   document.getElementById("greetings").innerHTML=JSONObject_de   .hello
 }
}

&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/9764/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/9764/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9764&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/06/internationalizing-webworks-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/83a3304d7f99cd7e5d2323b7338f7305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">naveenm1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/06/webworks.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

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

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

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

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