<?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 development</title>
	<atom:link href="http://devblog.blackberry.com/tag/app-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Wed, 22 May 2013 19:49:17 +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 development</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>Application Security Part II: What Should App Developers Do?</title>
		<link>http://devblog.blackberry.com/2013/02/application-security-part-2/</link>
		<comments>http://devblog.blackberry.com/2013/02/application-security-part-2/#comments</comments>
		<pubDate>Wed, 06 Feb 2013 12:27:44 +0000</pubDate>
		<dc:creator>lmcdunna</dc:creator>
				<category><![CDATA[Adobe AIR Development]]></category>
		<category><![CDATA[Android Development]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[Code Safety]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13491</guid>
		<description><![CDATA[In my previous blog post on this topic, “Application Security Part I: Whose Responsibility is it?”, I explored the responsibility of security in the mobile app ecosystem. In this post, let’s take a little deeper look at the problem of security and code safety from a mobile app developer’s point of view and explore what [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13491&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In my previous blog post on this topic, <a href="http://devblog.blackberry.com/2012/12/application-security-part-1/" target="_new">“Application Security Part I: Whose Responsibility is it?”</a>, I explored the responsibility of security in the mobile app ecosystem. In this post, let’s take a little deeper look at the problem of security and code safety from a mobile app developer’s point of view and explore what developers need to think about and how they can avoid potential security problems in their applications.</p>
<p>The majority of security problems in app development are really software quality problems. There’s something wrong with the way the code was written that leaves a door open for someone to exploit. Fortunately, many of these problems can be easily fixed. Some of these can be fixed in the design phase of product development and others in the code phase. We’ll explore a few examples of each type in this post.</p>
<p><span id="more-13491"></span></p>
<h3><strong>The Objective of this Post</strong></h3>
<p>Now, before we jump in, I need to confess that this is a broad and deep subject. My goal here is to present a high-level understanding of code security through discussion and a few examples that will help you understand the kinds of vulnerabilities that can lead to problems. I will also provide references to further reading for those that really want the “Full Monty” on developing secure apps.</p>
<h3><strong>Code Security at Design Time</strong></h3>
<ol>
<li><span style="text-decoration:underline;">Design with security in mind</span>. This is perhaps the most important thing you can do. Think about the following questions before you design your code and have answers for all of them:
<ul>
<li>What Assets does this software need to protect? Credit Card numbers, user data, contact lists, account info, access to paid services, and privileged access to device. To protect sensitive assets, you need to plan how you’re going to deal with the data at design time. If you’re sending sensitive data over a computer network, you should use SSL/TLS protocol to prevent attackers from eavesdropping. Look into OpenSSL for open source libraries and code examples on how to use this protocol. Also, for server-side storage, consider using a 3rd party database such as MySQL. These systems have their own built-in security policies that you can leverage. Also, for secure authentication, leverage trusted services like OAuth and OpenID (See Additional Resources for more info below)</li>
<li>How might an attacker exploit my code? This is often called “Thread Modeling”. Attackers might be eavesdropping on the network ports you use, or providing unexpected inputs that overflow memory buffers and inject attacker-supplied code to be executed. You have to ensure, for example, that you never execute code on behalf of an untrusted user</li>
</ul>
</li>
<li>Follow a Secure Coding Standard &#8211; Select a secure coding standard and make sure your code conforms. A secure coding standard will identify specific issues with a particular programming language that a compiler or analysis tool might fail to diagnose. Secure coding standards also define requirements for producing code level security in your system. Several popular secure coding standards are available from CERT® on their website at <a href="http://www.securecoding.cert.org/" target="_new">www.securecoding.cert.org</a>.</li>
<li>Perform Design Reviews. This is a simple thing teams can do, and it can really pay off in the long run. A few years ago, I managed a couple of engineering teams at Sun and when a new code module was planned. The engineering lead would present the design to a team of Senior Architects with different backgrounds (JVM, networking, platform architecture, etc.). This always uncovered potential problems –and did so early on before they became big problems that were expensive to fix.</li>
<li>Understand Emerging Threats. Pay attention to the type of exploits that are popular, and make sure you’re not helping the bad guys. Designate one person on your team to stay up to date on the current security trends and put her/him in the code review. A great place to start is by visiting the <a href="https://www.cert.org/" target="_new">CERT website</a> frequently and becoming familiar with all the resources they offer. In addition, all major platform and OS providers publish security updates from time to time as issues are uncovered.</li>
<li>Use Static Analysis Tools. Static code analysis can really help locate many kinds of software validation and reliability problems, including many memory problems. Some examples of companies that provide these products include: <a href="http://www.klocwork.com/landing/static-analysis/index-v1.php?gclid=CJjgweHW0LMCFelFMgodXDUA6g" target="_new">Klocwork</a> and <a href="http://www.coverity.com/" target="_new">Coverity</a>, <a href="http://www.parasoft.com/jsp/home.jsp">Parasoft</a>, and <a href="http://vericode.com/" target="_new">Vericode</a>. A more complete list can be found here: <a href="http://www.cert.org/secure-coding/tools.html" target="_new">http://www.cert.org/secure-coding/tools.html</a></li>
</ol>
<p>If you’re doing all these things, you’re actually doing pretty well. You’ve got a solid design, you’re following a secure coding standard, you’ve got someone keeping an eye out for potential security exploits, and you’re conducting design reviews and running static analysis tools on a regular basis. You’ve got the design side covered pretty well. Now let’s look at some specific code issues that can cause problems.</p>
<h3><strong>Code Security at Development Time</strong></h3>
<p>Most of the following examples demonstrate some of common problems found in native C and C++ development. Web developers and Java developers can still benefit as the concepts behind the problems are valid in many languages. In the Additional Resources section below, I provide links to specific Web and Java resources for code security.</p>
<ol>
<li>
<h3><strong>Application Frameworks</strong></h3>
<p>Use application frameworks whenever possible. Frameworks hide a lot of the nasty memory management and secure network connection issues from the developer and reduce the possibility of making simple, but costly, mistakes. Fortunately, the BlackBerry platform supports a lot of great developer frameworks, both from BlackBerry (such as the <a href="https://developer.blackberry.com/devzone/design/bb10/sharing_and_the_invocation_framework.html" target="_new">Invocation and Share Framework</a>, and the <a href="https://developer.blackberry.com/cascades/" target="_new">UI Framework Cascades</a>) and through <a href="https://developer.blackberry.com/devzone/develop/platform_partners/" target="_new">BlackBerry’s Platform Partners</a>.</li>
<li>
<h3><strong>Memory Management</strong></h3>
<p>Aside from the obvious allocation of memory insufficient for the data you’re writing into it, there’s a common issue people new to C and C++ sometimes experience regarding memory management. The problem occurs when you confuse which action you use to release the memory you’ve allocated.</p>
<p>Using Cascades will reduce the likelihood of memory management problems because it hides all the messy details for you within the framework. However, if you must allocate memory yourself for your app, keep the following tip in mind.</p>
<p>There are two main C functions for allocating memory: malloc() and calloc(). Use malloc() when you don’t care about initializing the data in memory. Use calloc() if you want to initialize the memory to 0. The important thing to remember is when using either malloc() or calloc(), you must use the function free() to release the memory and give it back to the system.</p>
<p>In contrast, when using the C++ method new() to create a new object, you must use the corresponding delete() method. Nothing good can happen when you call free() on memory you’ve created using new().</li>
<li>
<h3><strong>Function Safety</strong></h3>
<p>The QNX platform provides a number of preferred C functions that are safer to use than the more commonly known standard functions. A subset of these is shown in the table below. You can find the complete list in the BlackBerry Native SDK online docs (referenced in Additional Resources section below).</p>
<p>As with memory management, using an application framework helps with function safety as well. For instance, the Cascades classes such as QString and QByteArray protect you from many of these problems as well.</p>
<p>As you’ll see in these examples, most of the serious problems occur when buffers you’re reading into or writing out to are not large enough to take the data. These functions below help you from over-writing some of the time. You should always perform bounds checking if you want to be on the safe side.</p>
<table border="2" cellpadding="10">
<tbody>
<tr>
<th>Unsafe Function(s)</th>
<th>Preferred Function(s)</th>
<th>Comments</th>
</tr>
<tr>
<td>
<pre>strcpy() and strncpy()

strcat() and strncat()</pre>
</td>
<td>
<pre>strlcpy() and strlcat()</pre>
</td>
<td>The function strlcpy() copies strings and the function strlcat() concatenates strings. They&#8217;re designed to be safer, more consistent, and less error-prone replacements for strncpy() and strncat().<br />
Unlike those functions, strlcpy() and strlcat() take the full size of the buffer (not just the length) and guarantee to NUL-terminate the result (as long as the size is larger than 0 or, in the case of strlcat(), as long as there&#8217;s at least one byte free in the destination string).<br />
There also exist &#8220;wide&#8221; versions of these functions that are equally dangerous: wcscpy(), but there is no &#8220;l&#8221; safe version to use, only wcsncpy() which does not necessarily NUL-terminate the output. Care must be taken to ensure the output buffer is NUL-terminated.</td>
</tr>
<tr>
<td>
<pre>sprintf() and vsprintf()</pre>
</td>
<td>
<pre>snprintf() and vsnprintf()</pre>
</td>
<td>The snprintf() function is similar to fprintf(), except that snprintf() places the generated output (up to the specified maximum number of characters) into the character array pointed to by buf, instead of writing it to a file. The snprintf() function is similar to sprintf(), but with boundary checking. A null character is placed at the end of the generated character string.</td>
</tr>
<tr>
<td>
<pre>gets()</pre>
</td>
<td>
<pre>fgets(buf, n, fp)</pre>
</td>
<td>The fgets() function reads a string of characters from the stream specified by <i>fp</i>, and stores them in the array specified by <i>buf</i>, limited to size <i>n</i>.</td>
</tr>
<tr>
<td>
<pre>getwd()</pre>
</td>
<td>
<pre>getcwd(buffer, size)</pre>
</td>
<td>The getcwd() function returns the name of the current working directory. buffer is a pointer to a buffer of at least size bytes where the NUL-terminated name of the current working directory will be placed. The maximum size that might be required for buffer is PATH_MAX + 1 bytes</td>
</tr>
</tbody>
</table>
</li>
<li>
<h3><strong>Structures</strong></h3>
<p>Structures in C and C++ are aggregated types that define and contain other data elements within them. The elements of a structure cannot be re-ordered by the compiler. Modern compilers do use a variety of methods to minimize the security risk of stack-buffer overflows such as stack canaries, address-space layout randomization, re-ordering the local variables within a function, among other things. However, since the compiler can’t re-order the elements within your structures, the possibility of a buffer overflow on one of your elements affecting function parameters or local variables remains. Consider the following example:</p>
<pre>struct _JOB {
            char name[64];
                        char title[64];
            DATE startdate;
            DATE enddate;
            WAGE salary;      
        } JOB, *PJOB;</pre>
<p>The buffers name and title can both overrun. Since they’re placed on the stack first, the elements defined after them in the structure and on the stack itself can be affected. For this reason, care should be given when defining the elements in a structure. The next example shows a structure that&#8217;s defensively designed:</p>
<pre>struct _JOB {
            DATE startdate;
            DATE enddate;
            WAGE salary;  
            char name[64];    // Buffers placed at end 
                        char title[64];   // of struct definition

        } JOB, *PJOB;</pre>
<h3><strong>Recommendations for using structures</strong></h3>
<p>When dealing with structures that contain fixed-width buffers or arrays designed to receive data that&#8217;s controlled or influenced by a user:</p>
<ul>
<li>Buffers and arrays in structures should be grouped at the end of the structure</li>
<li>Local variables declared as structures should be declared after local buffers but before any other local variables</li>
<li>Global variables declared as structures should be declared before any global buffers and arrays and after any other global variables</li>
<li>Pointers to structures do not need any special consideration</li>
<li>Where practical, try to minimize the number of local variables cast as structures with buffers and arrays as elements</li>
</ul>
</li>
<li>
<h3><strong>Macros</strong></h3>
<p>Macros are one of my favorite mechanisms in C and C++. I love using them; however, you have to be very careful as they can get you into trouble. Macros are defined through the use of the #define preprocessor directive and when processed, literally expand in your source code prior to compilation. If IDE’s could show you what the processed source code looked like (maybe some do?), then I suspect we’d see fewer problems. Consider the following example that demonstrates the issue:</p>
<pre>#define CUBE (x*x*x)
…
int x = CUBE (5-2)</pre>
<p>In this example, you might expect that you’re going to get the cube of 3 which is 27. However, when the preprocessor expands the macro, normal operator precedence rules apply. So, here’s how that the value of x will be calculated:</p>
<pre>CUBE(5-2) = (5 – 2*5 – 2*5 – 2)
CUBE(5-2) = (5 – 10 -10 -2)
CUBE(5-2) = -17</pre>
<p>Therefore, to protect against this problem, the macro can easily be defined using parentheses as in:</p>
<pre>#define CUBE(x)   (x)*(x)*(x)</pre>
<p>In this example, we’ve seen how operator precedence rules can get you into trouble with macros. There are other problems such as the importance of white space when defining macros, using macros in if statements, and self-referencing macros to name a few. Provided you think about how the macro will expand in your source and you consider how the arguments you pass to macros will be interpreted in that expansion, you should be fine.</li>
<li>
<h3><strong>Integers (signed, unsigned) and Enumerations</strong></h3>
<p>Another common problem that can expose serious threats to your code involves integer overflow or underflow. This can happen when care is not taken with integers. The following code fragment demonstrates how serious this problem can be (recall our discussion about buffer sizes above):</p>
<pre>int buffLen = 0;
printf(“[buf] %d %u\n”, buffLen, buffLen);
buffLen = -1;
printf(“[buf] %d %u\n”, bufflen, bufflen);</pre>
<p>Executing this code gives:</p>
<pre>[buf] 0 0
[buf] -1 4294967295</pre>
<p>In this example, I forced the value of bufLen to be -1 for demonstration purposes. But, it’s easy to imagine a simple arithmetic error in a length calculation to be off by one.</p>
<p>Similar problems arise with the use of Enumerations. Not all compilers use the same kind of “int” for Enumerated types. So, you need to be careful when using Enumerations. Make sure you know how your compiler treats them. If your compiler uses signed integers by default (such as Microsoft Visual C++ and ARMCC), it’s not possible to create an unsigned enumeration as the value will be overflow the signed int (for example, you can’t set the enumerated value to be 0xffffffff).</li>
</ol>
<h3><strong>Summary</strong></h3>
<p>Though we’ve just scratched the surface of this topic, we’ve discussed a number of things developers can do to protect their code from security problems.</p>
<p>We’ve explored good practices developers can adopt at design time, such as:</p>
<ul>
<li>Design with security in mind</li>
<li>Follow a Secure Coding Standard</li>
<li>Perform Design Reviews</li>
<li>Understand Emerging Threats</li>
<li>Use Static Analysis Tools</li>
</ul>
<p>We’ve also looked at some common coding mistakes that can lead to security problems and discussed how the code can be fixed to avoid these problems. We’ve seen how leveraging Application Frameworks (like Cascades) can greatly reduce security problems. As an app developer, you have a responsibility to protect your user’s identity and sensitive data as best you can from attackers seeking to exploit it. The content in this blog post should help you get started with some good practices and links to learn more.</p>
<p>For more information on application security, additional examples, and deeper analysis, please refer to the additional resources below.</p>
<h3><strong>Additional Resources</strong></h3>
<ul>
<li>BlackBerry Native SDK Online Docs. <a href="http://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.native_sdk.security/topic/security_overview.html" target="_new">Security Considerations for Native Application Development</a></li>
<li>QNX Online Docs, <a href="http://www.qnx.com/download/feature.html?programid=20984" target="_new">Neutrino C Library Reference</a></li>
<li>Chad Tetreault, <a href="http://devblog.blackberry.com/2012/10/say-it-aint-soauth/" target="_new">Say It Aint S’OAuth</a>, in BlackBerry Dev</li>
</ul>
<p><strong>Blogs</strong></p>
<ul>
<li>Software Engineering Institute | Carnegie Mellon <a href="http://www.sei.cmu.edu/" target="_new">http://www.sei.cmu.edu/</a></li>
<li>Seacord, Robert. The CERT C Secure Coding Standard, Addison Wesley, 2008</li>
<li>Seacord, Robert. Secure Coding in C and C++, 2nd Edition, Addison Wesley, 2013.</li>
<li>Mark Dowd, John McDonald, Justin Schuh, The Art of Software Security Assessment</li>
</ul>
<h3><strong>Acknowledgements</strong></h3>
<p>I’d like to thank Robert Seacord for taking the time to read an early draft of my blog and provide helpful feedback. Robert is a senior analyst in the CERT Program at the Software Engineering Institute (SEI) in Pittsburgh, PA where he leads the Secure Coding Initiative and is author of a number of books on Secure Programming. I’d also like to thank the BlackBerry Security team for their insightful comments and suggestions.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13491/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13491/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13491&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/02/application-security-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/649c096f0b8996184db6d0509771ecfb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lmcdunna</media:title>
		</media:content>
	</item>
		<item>
		<title>SAP Applications on BlackBerry – Application Development and App Porting</title>
		<link>http://devblog.blackberry.com/2013/01/sap-applications-on-blackberry/</link>
		<comments>http://devblog.blackberry.com/2013/01/sap-applications-on-blackberry/#comments</comments>
		<pubDate>Fri, 11 Jan 2013 15:59:22 +0000</pubDate>
		<dc:creator>Alex Kinsella</dc:creator>
				<category><![CDATA[Case Studies & Success Stories]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[business apps]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[mobility]]></category>
		<category><![CDATA[sap]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12861</guid>
		<description><![CDATA[Guest post from Morgan &#8211; Ed. With the latest development approaches and technologies from SAP and Research In Motion, we have made cross device development easy – taking existing enterprise applications and porting them over to multiple BlackBerry devices (both past, current, and future), while all connecting into the enterprise back-end for the latest data [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12861&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><i>Guest post from <a href="http://bizblog.blackberry.com/author/moparker85/" target="_new">Morgan</a> &#8211; Ed.</i></p>
<p>With the latest development approaches and technologies from SAP and Research In Motion, we have made cross device development easy – taking existing enterprise applications and porting them over to multiple BlackBerry devices (both past, current, and future), while all connecting into the enterprise back-end for the latest data and updates. This enables organizations to take desktop applications, and mobilize them to provide road warriors with the same up to date data, and even additional capabilities using features included on mobile devices that are not available on desktop computers – features such as GPS for example.</p>
<p>Watch the video below, where Jim Ing (Enterprise Mobility Architect, RIM) and Pete Graham (Director of Finance Solutions &amp; Mobility, SAP) will take you through the approaches SAP has used to successfully develop, and port their applications across past, present, and future BlackBerry smartphones and the BlackBerry PlayBook tablet.</p>
<p style="text-align:center;"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='560' height='315' src='http://www.youtube.com/embed/nUanpbBtYrg?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=nUanpbBtYrg" target="_new">YouTube link for mobile viewing</a> ]</p>
<p>For more on BlackBerry development tools and resources visit BlackBerry Developer Zone at <a href="http://www.blackberry.com/developers" target="_new">www.blackberry.com/developers</a>, and for more on SAP mobile applications please visit <a href="http://www.sap.com/mobile" target="_new">www.sap.com/mobile</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12861/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12861&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/01/sap-applications-on-blackberry/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>How to Integrate Your BlackBerry WebWorks Application with BBM</title>
		<link>http://devblog.blackberry.com/2012/11/blackberry-webworks-bbm-integration/</link>
		<comments>http://devblog.blackberry.com/2012/11/blackberry-webworks-bbm-integration/#comments</comments>
		<pubDate>Thu, 15 Nov 2012 15:14:23 +0000</pubDate>
		<dc:creator>MSohm</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[bbm]]></category>
		<category><![CDATA[BBM SP]]></category>
		<category><![CDATA[blackberry webworks]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[native development]]></category>
		<category><![CDATA[native sdk]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12070</guid>
		<description><![CDATA[Welcome to part 3 of my series of blog posts discussing the BlackBerry® Messenger (BBM™) Social Platform. My previous blog post, Integrate with BBM and Watch Your Application Go Viral, covered the features of the BlackBerry Messenger Social Platform (BBM SP) and how you can use them to promote your application. If you haven’t read [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12070&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Welcome to part 3 of my series of blog posts discussing the BlackBerry® Messenger (BBM™) Social Platform. My previous blog post, <a href="http://devblog.blackberry.com/2012/11/bbm-integration/" target="_new">Integrate with BBM and Watch Your Application Go Viral</a>, covered the features of the <a href="https://developer.blackberry.com/devzone/develop/bbm_connected/bbm.html" target="_new">BlackBerry Messenger Social Platform (BBM SP)</a> and how you can use them to promote your application. If you haven’t read it yet, I recommend giving it a read. Part 2, <a href="http://devblog.blackberry.com/2012/11/bbm-native-app-integration/" target="_new">How to Integrate Your Native Application with BBM</a>, covered use of the BBM SP in a native application.</p>
<p>Now I’m here to talk about how you can integrate your BlackBerry® WebWorks™ application with the BBM SP. Most of what will be covered is available to both BlackBerry® OS 5-7 and BlackBerry® 10 applications. However, at the time of writing some of the BBM SP APIs discussed here are available only for BlackBerry OS 5-7 applications &#8212; I’ve noted where this is the case. We are planning on adding these to the BlackBerry 10 WebWorks SDK as well.</p>
<p>Testing a BBM SP application for BlackBerry 10 currently requires a real device. We’re working on adding BBM SP support in the BlackBerry 10 simulator and this should be available before the end of 2012. Support for testing BlackBerry OS 5-7 applications that use BBM SP is supported in many <a href="http://us.blackberry.com/sites/developers/resources/simulators.html" target="_new">BlackBerry smartphone simulators</a> we have available today, so ensure you <a href="http://swdownloads.blackberry.com/Downloads/contactFormPreload.do?code=060AD92489947D410D897474079C1477&amp;dl=345C5BE25AEFA97F7E54894B04A59AA4" target="_new">download one that lists support for BBM</a>.</p>
<p><span id="more-12070"></span></p>
<h3><strong>Configure Your Project</strong></h3>
<p>The <a href="https://developer.blackberry.com/html5/download/" target="_new">BlackBerry 10 WebWorks SDK</a> includes everything you need to get started. If you have a BlackBerry OS 5-7 application, you’ll need to download the <a href="http://swdownloads.blackberry.com/Downloads/contactFormPreload.do?code=DC727151E5D55DDE1E950767CF861CA5&amp;dl=BEC7A49FE8DDDD6ED13781CB67B3406D&amp;check1=A" target="_new">BBM SDK v1.1 for BlackBerry WebWorks</a> in addition to the regular <a href="https://developer.blackberry.com/html5/download/#smartphones" target="_new">BlackBerry WebWorks SDK for Smartphones</a>. Instructions for connecting these two SDK for targeting BlackBerry OS 5-7 can be found in <a href="http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/Getting-Started-BlackBerry-WebWorks-Development-for-Smartphones/ta-p/1185353" target="_new">Getting Started: BlackBerry WebWorks Development for Smartphones and the BBM Social Platform</a>.</p>
<p>In order for your application to access to the BBM SP APIs, you’ll need to request the appropriate permissions in your application’s config.xml file. There are two elements you’ll need to add: bbm_connect for rim:permissions and blackberry.bbm.platform for feature. Here is what it looks like:</p>
<pre>&lt;rim:permissions&gt;
	&lt;rim:permit&gt;bbm_connect&lt;/rim:permit&gt;
&lt;/rim:permissions&gt;
&lt;feature id="blackberry.bbm.platform" /&gt;</pre>
<h3><strong>Register with the BBM Social Platform</strong></h3>
<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. A <a href="https://github.com/blackberry/BB10-WebWorks-Samples/tree/master/bbm" target="_new">BBM sample</a> is available on the BlackBerry github site that demonstrates BBM SP registration along with the invite to download feature. Have a look at it once you’ve finished reading this section for the complete version of the code snippets used here.</p>
<p>When using BlackBerry WebWorks, the first thing to do is to register for the onaccesschanged event. If you try to register before registering for this, an IllegalStateException is thrown. Here is how you can register for this event:</p>
<pre>blackberry.event.addEventListener("onaccesschanged", function (accessible, status) {
	if (status === 'allowed') {
		/* Access allowed. */
	} 
});</pre>
<p>This code sample only catches the allowed status. Your application would need to handle disallowed status that could be caused by the user being out of coverage or if the user disallowed access to BBM. The <a href="https://github.com/blackberry/BB10-WebWorks-Samples/tree/master/bbm" target="_new">BBM sample</a> demonstrates how to catch the other statuses.</p>
<p>Each application must define its own Universally Unique Identifier (UUID) so that it can uniquely identify itself. This UUID is used to register with the BBM SP servers during testing and development. Applications in the BlackBerry App World™ storefront are assigned their own UUID automatically. You can generate a UUID using various web sites, such as the one <a href="http://www.guidgenerator.com/" target="_new">here</a>. In BlackBerry WebWorks, the UUID is stored in the options parameter used in registration.</p>
<pre>options = {
	uuid: "33490f91-ad95-4ba9-82c4-33f6ad69fbbc"
};</pre>
<p>Now we’re ready for the final step in the registration process, which is to call the register method using the options parameter we defined above. This will trigger the onaccesschanged event.</p>
<pre>blackberry.bbm.platform.register(options);</pre>
<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. This is one of the easiest features to implement. After you’ve registered, you can do this with just one method call.</p>
<pre>blackberry.bbm.platform.users.inviteToDownload();</pre>
<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>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. Here are a few examples of how to use these APIs:</p>
<p>This first code sample shows how to access the image the user has set for their BBM profile.</p>
<pre>blackberry.bbm.platform.self.getDisplayPicture(function (image) {
    // do something with the image here
});
Now let’s look at how your application could update the user’s BBM profile picture.
blackberry.bbm.platform.self.setDisplayPicture("local:///smiley.jpg", function (accepted) {
    if(accepted) {
        // User allowed the change
    } else {
        // User denied the change
    }
});</pre>
<p>If an update to a 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. 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. Let’s take a look at how to update the personal message and status.</p>
<pre>blackberry.bbm.platform.self.setStatus("busy", "Getting a new high score", function (accepted) {
    if(accepted) {
        // User allowed the change
    } else {
        // User denied the change
    }
});
blackberry.bbm.platform.self. setPersonalMessage ("I’m loving this app!", function (accepted) {
    if(accepted) {
        // User allowed the change
    } else {
        // User denied the change
    }
});</pre>
<h3><strong>Profile Boxes</strong></h3>
<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.</p>
<p>The ability to add a profile box item using BlackBerry WebWorks is not yet supported on BlackBerry 10, but you can do it on BlackBerry OS 5-7. There are C and C++ APIs for populating the profile box on BlackBerry 10, so you could accomplish this by building a custom BlackBerry WebWorks extension.</p>
<p>When creating a profile box item, use of the image is optional. If you don’t wish to include an image, you can omit it from the options variable.</p>
<pre>var options = {text:"No one’s ever beat me at solitare!", icon:"local:///cardshark.jpg", cookie:"unbeatable"};
blackberry.bbm.platform.self.profilebox.addItem(options);</pre>
<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 for 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.</p>
<p>Currently, working with BBM contacts is not supported using BlackBerry WebWorks for BlackBerry 10, but there are APIs for WebWorks for BlackBerry OS 5-7 as well as C and C++ APIs for BlackBerry 10. Further support for this in BlackBerry WebWorks for BlackBerry 10 is planned for a December release. Watch the <a href="https://developer.blackberry.com/html5/download/roadmap/" target="_new">BlackBerry WebWorks roadmap</a> for updates.</p>
<h3><strong>Wrapping It Up</strong></h3>
<p>That wraps up my intro post for getting started with the BlackBerry Messenger Social Platform using BlackBerry WebWorks. Now it’s up to you to make use of these APIs in your next hit application, which could be featured on the <a href="https://developer.blackberry.com/devzone/develop/bbm_connected/showcase.html" target="_new">Connected App Showcase</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12070/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12070/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12070&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/blackberry-webworks-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>
	</item>
		<item>
		<title>How to Integrate Your Native Application with BBM</title>
		<link>http://devblog.blackberry.com/2012/11/bbm-native-app-integration/</link>
		<comments>http://devblog.blackberry.com/2012/11/bbm-native-app-integration/#comments</comments>
		<pubDate>Thu, 08 Nov 2012 16:24:51 +0000</pubDate>
		<dc:creator>MSohm</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[bbm]]></category>
		<category><![CDATA[BBM SP]]></category>
		<category><![CDATA[Cascades]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[native development]]></category>
		<category><![CDATA[native sdk]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11879</guid>
		<description><![CDATA[My previous blog post Integrate with BBM and Watch Your Application Go Viral covered the features of the BlackBerry® Messenger Social Platform (BBM™ SP) and how you can use them to promote your application. If you haven’t read it yet, I recommend giving it a look. In this next blog post, we’ll cover the technical [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11879&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>My previous blog post <a href="http://devblog.blackberry.com/2012/11/bbm-integration/" target="_new">Integrate with BBM and Watch Your Application Go Viral</a> covered the features of the <a href="https://developer.blackberry.com/devzone/develop/bbm_connected/bbm.html" target="_new">BlackBerry® Messenger Social Platform (BBM™ SP)</a> and how you can use them to promote your application. If you haven’t read it yet, I recommend giving it a look.</p>
<p>In this next blog post, we’ll cover the technical aspects of how you can use the BBM SP within your application. I’m going to assume that you are using the <a href="https://developer.blackberry.com/cascades/download/" target="_new">BlackBerry Native SDK</a> to create a Cascades™ application using the <a href="https://developer.blackberry.com/cascades/reference/cascades.html" target="_new">Qt style BBM SP APIs</a>. The same functionality is available at the <a href="http://developer.blackberry.com/native/beta/reference/com.qnx.doc.bbmsp.lib_ref/topic/overview.html" target="_new">c level</a> in the style of the BlackBerry Platform Services library. If you are already using BPS within your application, you could use it for BBM SP as well, but in general I recommend using the <a href="https://developer.blackberry.com/cascades/reference/cascades.html" target="_new">Cascades BBM SP APIs</a> instead because they’re easier to use.</p>
<p>Testing an application BBM SP application for BlackBerry® 10 currently requires a real device. We’re working on adding BBM SP support in the BlackBerry 10 Simulator and this should be available before the end of 2012.</p>
<p><span id="more-11879"></span></p>
<h3><strong>Configure Your Project</strong></h3>
<p>The first step is to configure your project in the BlackBerry Native SDK, adding the BBM SP libraries and permissions.</p>
<p>Open <strong>bar-descriptor.xml</strong> and click on the General tab. Within <strong>bar-descriptor.xml</strong> click on the Application tab and check off BlackBerry Messenger in the Permissions box.</p>
<p><img class="aligncenter size-full wp-image-11880" title="TITLE_IMAGE" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/11/bbm-integration-part-2-1.jpg?w=480&#038;h=288" height="288" width="480" /></p>
<p>Now it’s time to add the BBM SP library. Right click on your project and choose <strong>Configure -&gt; Add Library</strong>. Click Next and filter for BBM. Add the libbbplatformbbm library. Follow the steps in the wizard and add the line below to your .pro file.</p>
<pre>LIBS += -lbbplatformbbm
LIBS += -lbbsystem</pre>
<h3><strong>Register with the BBM Social Platform</strong></h3>
<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. A sample called <a href="https://github.com/blackberry/Cascades-Samples/tree/master/bbmregistration" target="_new">BBMRegistration</a> is available on the BlackBerry github site. It demonstrates BBM SP registration, so have a look at it once you’ve finished reading this section for the complete version of the code snippets used here.</p>
<p>Each application must define its own Universally Unique Identifier (UUID) so that it can uniquely identify itself. This UUID is used to register with the BBM SP servers during testing and development. Applications in the BlackBerry App World™ storefront are assigned their own UUID automatically.</p>
<pre>// Attempt to register the application with the following UUID.
//Define your own UUID.  You can generate one here: http://www.guidgenerator.com/
m_uuid = QString::fromUtf8("c0fef20e-5f94-4eb1-be1e-e055f2c2391c");</pre>
<p>Next, create a new instance of the BBM platform context.</p>
<pre>m_context = new bb::platform::bbm::Context(QUuid(m_uuid));</pre>
<p>Now connect the registrationStatusUpdate signal with a slot in your application. In this example, I created slot called registrationStatus.</p>
<pre>QObject::connect(m_context, SIGNAL(registrationStateUpdated(bb::platform::bbm::RegistrationState::Type)),
  			this, SLOT(registrationStatus(bb::platform::bbm::RegistrationState::Type)));</pre>
<p>Now we’re ready to kick off the BBM SP registration process by calling requestRegisterApplication.</p>
<pre>m_context-&gt;requestRegisterApplication();</pre>
<p>Refer to the <a href="https://github.com/blackberry/Cascades-Samples/tree/master/bbmregistration" target="_new">BBMRegistration</a>for implementation details for the registrationsStatus. Once it receives a status of</p>
<pre>case bb::platform::bbm::RegistrationState::Allowed:</pre>
<p>our application will be ready to use the rest of the BBM SP APIs described below. Also note m_context used above &#8212; it’ll be used throughout the rest of the examples.</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 the user sending the invitation. This is one of the easiest features to implement. After you’ve registered, you can do this with just two lines of code.</p>
<p>The first line instantiates the MessageService object and the second kicks off the invite to download process. The user would then be prompted to select the BBM contacts they want to send the invitation to.</p>
<pre>m_messageService = new bb::platform::bbm::MessageService(
				m_context, this);
m_messageService-&gt;sendDownloadInvitation();</pre>
<p>We have a complete sample for this feature as well called <a href="https://github.com/blackberry/Cascades-Samples/tree/master/bbminvitetodownload" target="_new">BBMInviteToDownload</a>.</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>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. To see more, have a look at the <a href="//github.com/blackberry/Cascades-Samples/tree/master/bbmprofile" target="_new">BBMProfile</a> sample. Let’s learn how to update the user’s personal and status messages in BBM.</p>
<p>If an update to a 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. 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. Let’s take a look at how to update the personal message and status.</p>
<p>The first step is to get an instance of the user’s BBM profile:</p>
<pre>m_userProfile = new bb::platform::bbm::UserProfile(m_context, this);</pre>
<p>With that, we can update the user’s BBM personal message or status. Here’s how we can do both with just three lines of code:</p>
<pre>QString personalMessageString = "Best app ever!";
m_userProfile-&gt;requestUpdatePersonalMessage(personalMessageString);
m_userProfile-&gt;requestUpdateStatus(false, statusMessageString);</pre>
<p>The boolean false being passed into requestUpdateStatus is the flag to set the free/busy indicator shown beside their BBM status. If we had updated their status to something like “Don’t bug me I’m busy playing Slingshot 5000” we’d likely set that to true.</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 for 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.</p>
<p>Step one is to get an instance of the ContactService.</p>
<pre>m_ContactService = new bb::platform::bbm::ContactService(m_context, this);</pre>
<p>Once we have that, we can retrieve the BBM contacts that also have the same application installed. The sample code below prints out the display name of all contacts retrieved to the BlackBerry Native SDK console.</p>
<pre>if (m_ContactService-&gt;contactCount() &gt; 0)
{
	foreach (const Contact &amp;contact, m_ContactService-&gt;contacts())
	{
		qDebug() &lt;&lt; contact.displayName();
	}
}</pre>
<p>To listen for updates to a user’s contact list and/or the contacts themselves, we can connect a slot to the contactListUpdated and/or contactUpdated signals. Here’s an example of connecting them to handleUpdateContactList and handleUpdateContact slots.</p>
<pre>QObject::connect(m_ContactService, SIGNAL(contactListUpdated()), this, SLOT(handleUpdatedContactList()));
QObject::connect(m_ContactService, SIGNAL(contactUpdated(const QString)), this, SLOT(handleUpdatedContact()));</pre>
<p>The handlers would take care of updated any in application resources that reference the users BBM Contacts.</p>
<h3><strong>Wrapping It Up</strong></h3>
<p>I hope this helped you get started in implementing some features of the BBM Social Platform into your application, or at least convinced you how easy it is to do. I look forward to seeing your innovative uses of the BBM SP. Your application could be the next one featured on the <a href="https://developer.blackberry.com/devzone/develop/bbm_connected/showcase.html" target="_new">Connected App Showcase</a>.</p>
<p>Come back next week if you are a BlackBerry® WebWorks™ developer &#8212; we’ll have a post similar to this one, but demonstrate these features using the BlackBerry WebWorks APIs.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11879/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11879/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11879&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/bbm-native-app-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/2012/11/bbm-integration-part-2-1.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Test your BlackBerry 10 apps in BlackBerry App World!</title>
		<link>http://devblog.blackberry.com/2012/08/blackberry-10-app-world/</link>
		<comments>http://devblog.blackberry.com/2012/08/blackberry-10-app-world/#comments</comments>
		<pubDate>Fri, 17 Aug 2012 15:56:33 +0000</pubDate>
		<dc:creator>Shaun A.</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[BlackBerry World]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[app world]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry 10 apps]]></category>
		<category><![CDATA[BlackBerry 10 Dev Alpha]]></category>
		<category><![CDATA[blackberry app world]]></category>
		<category><![CDATA[submit apps to App World]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=10803</guid>
		<description><![CDATA[Guest post from Lou G. &#8211; Ed. Everyone here in Developer Relations at RIM® is excited that developers are now able to submit their BlackBerry® 10 applications to the BlackBerry App World™ storefront and target BlackBerry 10 Dev Alpha testing devices. This means that developers who are using the BlackBerry 10 Dev Alpha testing devices [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10803&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>Guest post from Lou G. &#8211; Ed.</em></p>
<p>Everyone here in Developer Relations at RIM® is excited that developers are now able to submit their BlackBerry® 10 applications to the <a href="http://appworld.blackberry.com/" target="_new">BlackBerry App World™</a> storefront and target BlackBerry 10 Dev Alpha testing devices. This means that developers who are using the BlackBerry 10 Dev Alpha testing devices will be able to download and test each other’s applications through BlackBerry App World.</p>
<p>How do you submit an application? It’s the same process you’d use for any other BlackBerry® smartphone or BlackBerry® PlayBook™ tablet app – you just need to select the BlackBerry 10 Dev Alpha for your app.</p>
<p><img class="aligncenter size-full wp-image-10804" title="" src="http://rimdevblog.files.wordpress.com/2012/08/app-world.jpg?w=600&#038;h=147" alt="TITLE_IMAGE" width="600" height="147" /></p>
<p>Next, apps are vetted for content to ensure that the BlackBerry App World Vendor Guidelines are adhered to. Then they’re tested to ensure they do not interfere with the normal operation of the BlackBerry 10 Dev Alpha testing device. You may be contacted by a member of the Review Team if they run into any problems or have any questions/concerns. This entire process normally takes a five to ten business days.</p>
<p><span id="more-10803"></span></p>
<p>Once your application is <strong>Approved</strong>, it will automatically be posted <strong>Up for Sale</strong>. You can opt out of this automatic posting during the submission process, but must be done prior to submitting your application(s) for approval. Keep in mind it may take a few hours before your application is searchable and visible in BlackBerry App World.</p>
<p>The recent update to the OS on the BlackBerry 10 Dev Alpha testing devices includes a BlackBerry App World client, so developers will have to update their test devices to access apps. Additionally, anyone that visits the <a href="http://appworld.blackberry.com/webstore" target="_new">BlackBerry App World webstore</a> will be able to see your application after you click “Post for Sale”. Please ensure that you use app Icons and descriptions with that in mind.</p>
<p>You can also choose to leave the application in an <strong>Approved</strong> status. This allows you to deep link to your application using the AppID (found on the Details page of your application). Using the standard Web Store URL, you can deep link to your application from a device. The standard Web Store URL is <a href="http://appworld.blackberry.com/webstore/content/&lt;AppID&#038;gt" rel="nofollow">http://appworld.blackberry.com/webstore/content/&lt;AppID&#038;gt</a>;. You can download your application using the deep link for testing purposes and you can share this link with select users for targeted testing.<br />
All applications on the store can be reviewed, but only by users who purchase or download the application. Use these reviews for your testing purposes. These will be reset when you submit your application for commercial release of BlackBerry 10.</p>
<p>As a BlackBerry App World vendor with an application live in the store, you are able to generate download and purchase reports for your app.</p>
<p>Finally, we recommend that your app is available for free as this is a testing period. However, we do allow you to charge for your app and test in-app payments.</p>
<p>Happy testing and we look forward to seeing all your great apps!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/10803/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/10803/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10803&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/08/blackberry-10-app-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/18c17294682890b9d49d6d56d0c43cac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaunam1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/08/app-world.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Prevent BBM Connection Errors in your App – Use the Correct UUID Format</title>
		<link>http://devblog.blackberry.com/2012/05/bbm-uuid/</link>
		<comments>http://devblog.blackberry.com/2012/05/bbm-uuid/#comments</comments>
		<pubDate>Mon, 28 May 2012 14:54:01 +0000</pubDate>
		<dc:creator>MSohm</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[bbm]]></category>
		<category><![CDATA[BBM Connected Apps]]></category>
		<category><![CDATA[identification]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[UUID]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=9551</guid>
		<description><![CDATA[Find out what a UUID is used for, and why it's important to BBM Connected applications.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9551&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://rimdevblog.files.wordpress.com/2012/05/bbmuuid.jpg?w=359&#038;h=92" alt="" title="" width="359" height="92" class="aligncenter size-full wp-image-9552" /></p>
<p>When <a href="http://blogs.blackberry.com/2011/07/bbm-6/" target="_new">BBM™ Connected applications</a> instantiate <a href="http://www.blackberry.com/developers/docs/bbm/1.3.0api/net/rim/blackberry/api/bbm/platform/BBMPlatformApplication.html" target="_new">BBMPlatformApplication</a>, they must supply a UUID.  The UUID is a 128-bit universally unique identifier for the application that must be 36 characters long and comply with the Microsoft® 8-4-4-4-12 format.  Those numbers represent the number of characters in each sequence, separated by a dash.  Here is an example of a UUID in the correct format: 4995d07c-13ee-42d1-92bb-90ba6ed33e1d.  You can manually create a UUID or use an <a href="http://www.guidgenerator.com/" target="_new">online UUID generator</a>.</p>
<p>Using a UUID that doesn’t comply with the Microsoft 8-4-4-4-12 format can prevent your application from connecting to the BBM test/pre-production environment.  If you do use an incorrect UUID format, you could receive an error of “Unable to connect to BBM. [App name] disconnected by RIM” when trying to connect.  This only affects developers using the test/pre-production environment.  Consumers who have purchased the application from the <a href="http://appworld.blackberry.com/" target="_new">BlackBerry App World™</a> storefront will remain unaffected because BlackBerry App World will assign unique identifies to applications when they are put up for sale.</p>
<p>The UUID is used to uniquely identify an application in the test/pre-production environment.  Once you upload the application to <a href="http://appworld.blackberry.com/" target="_new">BlackBerry App World</a>, it is no longer used.  Changing your UUID allows you to perform tests of your application in isolation of one another.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/9551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/9551/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9551&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/05/bbm-uuid/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/2012/05/bbmuuid.jpg" medium="image" />
	</item>
		<item>
		<title>Congratulations to the Finalists and Winners of the BlackBerry 10 Jam AppCircus!</title>
		<link>http://devblog.blackberry.com/2012/05/blackberry-10-jam-appcircus-winners/</link>
		<comments>http://devblog.blackberry.com/2012/05/blackberry-10-jam-appcircus-winners/#comments</comments>
		<pubDate>Fri, 04 May 2012 18:45:31 +0000</pubDate>
		<dc:creator>Victoria B</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[appcircus]]></category>
		<category><![CDATA[BlackBerry 10 Jam]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[finalists]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[winners]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=9254</guid>
		<description><![CDATA[Announcing the finalists and winners of the AppCircus at BlackBerry 10 Jam!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9254&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-9255" title="" src="http://rimdevblog.files.wordpress.com/2012/05/app-circus-winner-bb10jam-2.jpg?w=550&#038;h=413" alt="" width="550" height="413" /></p>
<p>Yesterday at <a href="http://www.blackberryjamconference.com/?IID=E30C015" target="_new">BlackBerry® 10 Jam</a>, we held an <a href="http://devblog.blackberry.com/2012/04/blackberry-10-jam-appcircus/" target="_new">AppCircus</a> event. Developers registered their apps for the contest last week and three finalists were chosen for each category – BlackBerry® WebWorks™, Adobe® AIR®, and Native – earlier this week. The nine finalists had three minutes each to pitch their apps to a panel of judges that included our own Alec Saunders, Bob Taniguchi and Peter Valin. Also joining the judging panel was Kevin Michaluk of <a href="http://www.crackberry.com/" target="_new">Crackberry.com</a> fame, as well as Peter Hansen, Michael Brooks and Jeremy Adams, some of our most recognized community members. All of the finalists have their apps working on (or being finalized for) the BlackBerry® PlayBook™ tablet, and several had a running version on their <a href="http://devblog.blackberry.com/2012/05/what-is-blackberry-10-dev-alpha/" target="_new">BlackBerry Dev Alpha</a> device.</p>
<p><span id="more-9254"></span></p>
<h3><strong>The BlackBerry WebWorks finalists:</strong></h3>
<p><strong>B’Giftee</strong> is a real world social sharing app that lets people gift real-world items to others. If you go to a restaurant and like the burger there, you share that knowledge and offer friends a gift of the burger – a reward that could be for the first to take advantage or for all involved.</p>
<p><strong>2Scoops</strong> allows people to find the best gelato in Rome, Paris, New York and London, and also gives pronunciation for ordering in Italian. It includes map integration, business hours and ratings and reviews.</p>
<p><a href="http://appworld.blackberry.com/webstore/content/101029/?lang=en"><strong>Pesktop</strong></a> creates a desktop feel on the BlackBerry PlayBook tablet with video playback, audio playback, note-taking and picture viewing all in one place.</p>
<h3><strong>The Adobe AIR finalists:</strong></h3>
<p><a href="http://appworld.blackberry.com/webstore/content/60772"><strong>Cooklet</strong></a> is a guide to cooking that includes recipes with shopping list integration, gesture interation through the camera, photo and recipe libraries and more.</p>
<p><a href="http://appworld.blackberry.com/webstore/content/58131/?lang=en"><strong>Nobex Radio</strong></a> allows people to listen to radio stations from their BlackBerry® smartphones or BlackBerry PlayBook tablet. They have a selection of over 16,000 stations and have worked to integrate social features for sharing stations and songs.</p>
<p><a href="http://appworld.blackberry.com/webstore/content/96714/?lang=en"><strong>Nexus</strong></a> is a direct BlackBerry PlayBook tablet to BlackBerry PlayBook tablet file-sharing app that allows people to share content over their local network without using any mid-server.</p>
<h3><strong>The Native Finalists:</strong></h3>
<p><strong>Training with Messi</strong> is a soccer game that uses device motion and hand gesture controls to take Messi down the field. This app has Scoreloop integration with leaderboards and achievements.</p>
<p><a href="http://appworld.blackberry.com/webstore/content/106166/?lang=en"><strong>DOO-DOo-Doo</strong></a> allows people to play piano on the BlackBerry PlayBook tablet and goes beyond a normal keyboard with pre-recorded sounds. People can even adjust the tones and harmonics.</p>
<p><a href="http://appworld.blackberry.com/webstore/content/64921/?lang=en"><strong>Kami Retro</strong></a> is a new game with an old-school feel that takes the fun of 80’s and 90’s side-scroller games and brings it to the BlackBerry PlayBook tablet.</p>
<p>The winners were B’Giftee, Cooklet, and Training with Messi. All three had their apps working and running on the BlackBerry Dev Alpha device. They also had the apps working during their initial pitches, which took place the day that they got the device.</p>
<p>Winners received $25,000 to go see their favorite bands in concert! More details are available at <a href="http://devblog.blackberry.com/2012/04/blackberry-10-jam-appcircus/" target="_new">http://devblog.blackberry.com/2012/04/blackberry-10-jam-appcircus/</a></p>
<p>Congratulations to everyone!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/9254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/9254/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9254&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/05/blackberry-10-jam-appcircus-winners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/62fb1afd67b75b691d917c08c1d1cb74?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">berryvic</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/05/app-circus-winner-bb10jam-2.jpg" medium="image" />
	</item>
		<item>
		<title>The BlackBerry 10 Native SDK Experience</title>
		<link>http://devblog.blackberry.com/2012/05/blackberry-10-native-sdk/</link>
		<comments>http://devblog.blackberry.com/2012/05/blackberry-10-native-sdk/#comments</comments>
		<pubDate>Tue, 01 May 2012 13:39:32 +0000</pubDate>
		<dc:creator>Alex Kinsella</dc:creator>
				<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry 10 developer tools]]></category>
		<category><![CDATA[BlackBerry 10 Native SDK]]></category>
		<category><![CDATA[BlackBerry Plug-in for Microsoft Visual Studio]]></category>
		<category><![CDATA[Payment API]]></category>
		<category><![CDATA[Push Management API]]></category>
		<category><![CDATA[scoreloop]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=9128</guid>
		<description><![CDATA[Some of the new APIs and features being introduced with the BlackBerry 10 Native SDK.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9128&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After months of hard work and lots of late nights and weekends, we have the first beta release of the BlackBerry® 10 Native SDK that we are thrilled to share with you. The BlackBerry 10 Native SDK contains a set of rich APIs and IDE improvements that will help developers build high-performance native applications. The Native SDK contains all the APIs and features previously available on our BlackBerry Native SDK for Tablet OS, along with additional functionality.</p>
<p>Some of the new APIs being introduced include:</p>
<p><strong>Scoreloop™ SDK 2.0:</strong> Our Scoreloop social gaming SDK provides APIs to set up user profiles and global leaderboards, award achievements, and challenge other players. Game developers in particular can enhance their games by adding cool new functionality for social gaming.</p>
<p><strong>Payment APIs:</strong> Our payment APIs will help facilitate the integration of in-app payment processing mechanisms in apps.</p>
<p><strong>Battery Monitoring and LED Control:</strong> These APIs will give apps access to hardware components on the device. Battery monitoring in particular will allow our applications to read the battery level, so they can inform their users about potential loss of data if the battery level is too low to complete an activity. It also allows an app to register for battery level notifications so that it can receive low battery warnings and handle them accordingly.</p>
<p>On the tooling side, we are introducing a limited beta version of the new BlackBerry® Plug-in for Microsoft® Visual Studio. We’ve been listening to our game developers who develop their titles using the Visual Studio IDE, and this plug-in will now make it easier for these developers to adapt their games for our platform. The Visual Studio plug-in provides options to register for code signing keys, create developer certificates, create and upload debug tokens as well as to build and run applications on the BlackBerry® PlayBook™ OS 2.0 and BlackBerry 10 platforms. The plug-in can be installed with either Visual Studio 10 Standard or Professional edition, though it is still in Beta and lacks support for features such as debugging. We are interested in getting your feedback as you start it to build your apps, and would like you to report any issues or concerns through our <a href="http://supportforums.blackberry.com/t5/Developer-Support-Forums/ct-p/blackberrydev" target="_new">BlackBerry developer support forums</a>, which are monitored regularly.</p>
<p>This new BlackBerry 10 Native SDK is just the start of the journey. We will be bringing additional APIs along with associated tooling improvements, and we are continuing to work with our third party partners and developers to ensure that their needs and requirements are being taken into account as we continue to release new functionality. This will not only help our developers build and monetize their apps for BlackBerry, but also enrich our BlackBerry App World™ with new and exciting content.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/9128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/9128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=9128&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/05/blackberry-10-native-sdk/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>HTML5 and BlackBerry WebWorks Hackathon at Pace University</title>
		<link>http://devblog.blackberry.com/2012/03/html5-webworks-hackathon/</link>
		<comments>http://devblog.blackberry.com/2012/03/html5-webworks-hackathon/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 18:00:26 +0000</pubDate>
		<dc:creator>Victoria B</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[blackberry webworks]]></category>
		<category><![CDATA[hackathon]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Pace University]]></category>
		<category><![CDATA[students]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=8812</guid>
		<description><![CDATA[This weekend - March 30th and 31st - we’ll be hosting a HTML5 hackathon for students with Pace University in New York City.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=8812&#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-8813" src="http://rimdevblog.files.wordpress.com/2012/03/blackberry-logo.jpg?w=500&#038;h=164" alt="TITLE_IMAGE" width="500" height="164" /></p>
<p>The BlackBerry® Developer Relations team here at Research In Motion® (RIM®) continues to make amazing strides in reaching out to the developer community. This weekend &#8211; March 30th and 31st &#8211; we’ll be hosting a HTML5 hackathon for students with Pace University in New York City. We collaborated with Pace University to create an opportunity for students to learn how to develop in HTML5 and take mobile apps to the next level with our BlackBerry® WebWorks™ platform.</p>
<p>Adam Stanley, Patrick Mollins and Erik Oros from the Developer relations team will be on-hand to help guide students as they work with the BlackBerry platform and to give them some tips and tricks, as well as lead some sessions to help these developers gain insight into our web tools.</p>
<p>Students can choose to develop an HTML5/BlackBerry WebWorks application around one of the topics suggested by RIM experts prior to the event or use their own imagination to come up with an app idea and work under RIM experts’ guidance to implement it as a BlackBerry smartphone or BlackBerry® PlayBook™ tablet app. A total of three winners will be selected by a jury of three-five experts from Pace University and RIM at the end of the two days and recognized with prizes including free participation at one of RIM’s upcoming developer conferences.</p>
<p>We’re hoping that at the end of the event, students will have a working prototype or full-fledged BlackBerry application which leverages HTML5/BlackBerry WebWorks technology.</p>
<p>This event is intended to be the first in a series of Future Developer Days focused on student participation as part of our BlackBerry Jam Program. For more details on the BlackBerry Jam Program please visit <a href="https://bdsc.webapps.blackberry.com/devzone/jamcommunity" target="_new">https://bdsc.webapps.blackberry.com/devzone/jamcommunity</a>.</p>
<p>Stay tuned here for more info from the event and to learn about the winning apps and developers.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/8812/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/8812/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=8812&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/03/html5-webworks-hackathon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/62fb1afd67b75b691d917c08c1d1cb74?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">berryvic</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/03/blackberry-logo.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Enterprise app development with BlackBerry Mobile Fusion and BlackBerry PlayBook OS 2.0</title>
		<link>http://devblog.blackberry.com/2012/03/enterprise-app-development/</link>
		<comments>http://devblog.blackberry.com/2012/03/enterprise-app-development/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 19:21:43 +0000</pubDate>
		<dc:creator>Gurtej S.</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[app development]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry Balance]]></category>
		<category><![CDATA[BlackBerry Device Service]]></category>
		<category><![CDATA[BlackBerry Mobile Fusion]]></category>
		<category><![CDATA[BlackBerry PlayBook OS 2.0]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[mobile device management]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=8660</guid>
		<description><![CDATA[Introducing BlackBerry Device Service, the component of BlackBerry® Mobile Fusion used to manage BlackBerry PlayBook tablets and future BlackBerry 10 devices.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=8660&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-8661" title="" src="http://rimdevblog.files.wordpress.com/2012/03/enterprise-fusion.jpg?w=600&#038;h=261" alt="" width="600" height="261" /></p>
<p>Today, I am very excited to introduce you to BlackBerry® Device Service, which is the component of BlackBerry® Mobile Fusion used to manage BlackBerry® PlayBook™ tablets and future BlackBerry® 10 devices. <a href="http://bizblog.blackberry.com/2012/02/playbook-mobile-fusion/" target="_new">BlackBerry Mobile Fusion</a> is RIM’s new unified multi-platform MDM (mobile device management) solution for managing in market BlackBerry OS devices, BlackBerry 10 devices, and iOS and Android™ devices as shown in the image above.</p>
<p>Why should you be excited about the launch of BlackBerry Device Service together with <a href="http://blogs.blackberry.com/2012/02/playbook-os-2-0-update-here-download-now/" target="_new">BlackBerry PlayBook OS 2.0</a>? Well that’s simple. For those of you new to enterprise mobility, especially when it comes to BlackBerry, we’ve always had the secret sauce to enable your enterprise mobile applications to seamlessly connect to your backend application server with no need for an enterprise VPN. This secret sauce was our BlackBerry Mobile Data System (MDS) which abstracted away much of the wireless network complexities and provided an end to end, AES secure connection for enterprise application developers.</p>
<p><span id="more-8660"></span></p>
<p>For those of you that have been long waiting for this feature, look no further as we are bringing this functionality back to BlackBerry PlayBook OS 2.0 and future BlackBerry 10 devices. Just imagine if you were an insurance adjuster in the field and wanted an application:</p>
<ul>
<li>pushed to your BlackBerry PlayBook tablet</li>
<li>to seamlessly upload both vehicles pictures and a brief description to your application server that resides behind your corporate firewall</li>
</ul>
<p>Together with BlackBerry Device Service and BlackBerry PlayBook OS 2.0, these problems are solved! This is exactly what we have enabled both the corporate customers and enterprise developers to implement.</p>
<p>Although customers have long had the ability to push applications to BlackBerry users with a BlackBerry Enterprise Server, this is the first time we are introducing a user self-serve portal to manage all enterprise applications – right from BlackBerry App World™. With BlackBerry Balance™, enterprise applications are installed within a corporate perimeter on the device. For more information on BlackBerry Balance, be sure to read this blog post from <a href="http://blogs.blackberry.com/2011/05/introducing-blackberry-balance/" target="_new">the Inside BlackBerry Blog</a>, and check out the <a href="http://ca.blackberry.com/business/software/balance/" target="_new">BlackBerry Balance website</a> as well.</p>
<p>Together, these features will protect all your resident enterprise application data within the corporate perimeter and at the same time provide a secure AES encrypted pipe to transport your data securely from behind the firewall. This is exactly why I share this excitement with all our enterprise development community today.</p>
<p>If you haven’t already done so, I would check for BlackBerry PlayBook OS upgrades and immediately <a href="http://helpblog.blackberry.com/2012/02/download-update-blackberry-playbook-2-0/" target="_new">upgrade your device to BlackBerry PlayBook OS 2.0</a>. You can also <a href="http://ca.blackberry.com/business/software/mobilefusion/?CPID=KNC-kw461269_p7&amp;HBX_PK=rim|48df4058-6993-6689-42fc-000053a41b7d" target="_new">download a free trial of BlackBerry Mobile Fusion</a> today.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/8660/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/8660/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=8660&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/03/enterprise-app-development/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/2012/03/enterprise-fusion.jpg" medium="image" />
	</item>
	</channel>
</rss>
