<?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; web apps</title>
	<atom:link href="http://devblog.blackberry.com/tag/web-apps/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Fri, 17 May 2013 17:47:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devblog.blackberry.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/9ef0a66c09615fa946c4179662398878?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>BlackBerry Developer Blog &#187; web apps</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>PeaksAndValleys: Limitless Landscape</title>
		<link>http://devblog.blackberry.com/2012/11/peaksandvalleys-landscape/</link>
		<comments>http://devblog.blackberry.com/2012/11/peaksandvalleys-landscape/#comments</comments>
		<pubDate>Tue, 13 Nov 2012 21:35:46 +0000</pubDate>
		<dc:creator>Erik O.</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[web apps]]></category>
		<category><![CDATA[WebGL]]></category>

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

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

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

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

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

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/peaksandvalleys-5.jpg" medium="image" />
	</item>
		<item>
		<title>Introducing Sencha Touch 2.1 on BlackBerry 10</title>
		<link>http://devblog.blackberry.com/2012/11/sencha-touch-blackberry-10/</link>
		<comments>http://devblog.blackberry.com/2012/11/sencha-touch-blackberry-10/#comments</comments>
		<pubDate>Tue, 06 Nov 2012 20:44:19 +0000</pubDate>
		<dc:creator>Naveen</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[sencha]]></category>
		<category><![CDATA[web apps]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[Web Frameworks]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11904</guid>
		<description><![CDATA[We’re very pleased to announce that Sencha has released an update to their Sencha Touch framework that brings beta support for the BlackBerry® 10 operating system. For those unfamiliar with Sencha Touch, it is an impressive JavaScript® framework based entirely on HTML5, CSS and JavaScript that is designed to bring an incredibly powerful set of [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11904&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><img class="aligncenter  wp-image-11916" title="IMG_00000119" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/11/img_00000119.png?w=614&#038;h=360" height="360" width="614" /></p>
<p>We’re very pleased to announce that <a href="http://www.sencha.com/" target="_new">Sencha</a> has released an update to their Sencha Touch framework that brings beta support for the BlackBerry® 10 operating system. For those unfamiliar with Sencha Touch, it is an impressive JavaScript® framework based entirely on HTML5, CSS and JavaScript that is designed to bring an incredibly powerful set of components to create rich mobile applications. Today’s Sencha Touch release not only brings support for BlackBerry 10, but it also supports the BlackBerry® PlayBook™ tablet.</p>
<p>Sencha Touch includes all of the core concepts around Controllers, including refs, control and routes as well as Device Profiles, which enables you to easily develop applications that can present customized UIs on BlackBerry 10 devices and BlackBerry PlayBook tablet. In terms of components, Sencha touch 2.1 supports all the major components which helps you to develop compelling application for the BlackBerry 10 Platform. Sencha Touch supports Forms, DataView, Carousel, List, TabPanel, NestedList and Navigation View, and the BlackBerry 10 specific CrossCut component.</p>
<p><span id="more-11904"></span></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/uM5qHrsrACQ?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>&nbsp;</p>
<p>While Sencha Touch 2.1 includes key upgrades such as significant performance improvements, a new and improved charting and data visualization package, a new infinite list component, and enhanced native support through the Sencha Mobile Packager, the most relevant upgrade to BlackBerry platform is the new BlackBerry theme and the new CrossCut component.</p>
<p>With over fifty built-in components, state management, and a built-in MVC system, Sencha Touch provides everything you need to create immersive applications for the BlackBerry 10 and BlackBerry PlayBook tablet platforms. Sencha Touch also provides access to local hardware services like geolocation and accelerometers as well as system services like localStorage, which allow developers to take advantage of hardware features. For more information on Sencha Touch 2.1, visit their <a href="http://www.sencha.com/products/touch/" target="_new">website</a>.</p>
<p>To get started, developers should <a href="http://www.sencha.com/products/touch/download/" target="_new">download the framework</a> and then check out the <a href="http://www.sencha.com/learn/Sencha_Touch" target="_new">Sencha Touch Learning Center</a>, where they will find code samples, videos and tutorials. To get an idea of what is possible using the framework, there are a variety of <a href="http://www.sencha.com/products/touch/demos/" target="_new">demo applications</a> showcasing the breadth and power of the platform. For the complete BlackBerry guide to Sencha Touch, refer to <a href="http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/Introducing-Sencha-Touch-2-1-on-BlackBerry10/ta-p/1976695" target="_new">http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/Introducing-Sencha-Touch-2-1-on-BlackBerry10/ta-p/1976695</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11904/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11904/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11904&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/sencha-touch-blackberry-10/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/11/img_00000119.png" medium="image">
			<media:title type="html">IMG_00000119</media:title>
		</media:content>
	</item>
		<item>
		<title>Building the BlackBerry 10 WebWorks Open Source Framework on Your Own</title>
		<link>http://devblog.blackberry.com/2012/10/blackberry-10-webworks-framework/</link>
		<comments>http://devblog.blackberry.com/2012/10/blackberry-10-webworks-framework/#comments</comments>
		<pubDate>Wed, 24 Oct 2012 16:36:18 +0000</pubDate>
		<dc:creator>Tim W.</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[BlackBerry 10 WebWorks]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[web apps]]></category>
		<category><![CDATA[webworks]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11795</guid>
		<description><![CDATA[Guest post from Nukul &#8211; Ed. We’ve received a lot of requests from developers to be able to build BlackBerry® 10 WebWorks™ directly from GitHub. Before I talk about how to take advantage of this, I would like to explain why it took us so long to get here and what it means for you. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11795&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-11796" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/10/bb10-framework.jpg?w=600&#038;h=425" height="425" width="600" /></p>
<p><i>Guest post from Nukul &#8211; Ed.</i></p>
<p>We’ve received a lot of requests from developers to be able to build BlackBerry® 10 WebWorks™ directly from GitHub. Before I talk about how to take advantage of this, I would like to explain why it took us so long to get here and what it means for you.</p>
<p>The main issue was that the latest BlackBerry 10 WebWorks SDK features were dependent on features in the BlackBerry 10 OS. Therefore, if you built BlackBerry 10 WebWorks in open source, it potentially would not work with latest BlackBerry 10 OS beta.</p>
<p>This has changed as we get closer and closer to launch. We are now starting to work on features that are not dependent on the latest BlackBerry 10 OS beta. Imagine this: You hear about an awesome new feature or extension we are working on. You can now go to our <a href="http://github.com/blackberry" target="_new">GitHub repositories</a>, look at pull requests, pull down the branch, and a few minutes later you have a BlackBerry 10 WebWorks build with the new extension or feature.</p>
<p><span id="more-11795"></span></p>
<p>Build time can be less than two to three minutes from a clean build. From the time you see someone’s tweet about an awesome new feature, it could take you less than five minutes to get a build of BlackBerry 10 WebWorks that has that feature.</p>
<p>The advantages to a BlackBerry 10 WebWorks app developer are infinite here. You should never need to wait for new features. You can even build with Linux! It’s all there. There will still be some features that you will need the next OS release for, but that will happen less frequently as we get closer to launch of BlackBerry 10.</p>
<p>Here are the two repos you need to build to get ready to take advantage of this:</p>
<p><a href="https://github.com/blackberry/BB10-WebWorks-Framework" target="_new">https://github.com/blackberry/BB10-WebWorks-Framework</a></p>
<p><a href="https://github.com/blackberry/BB10-Webworks-Packager" target="_new">https://github.com/blackberry/BB10-Webworks-Packager</a></p>
<p>The framework repo contains the Framework that is packaged with your app when you build a BlackBerry 10 WebWorks app. The Packager repo contains all the code for the packaging tool.</p>
<p>There are two main branches in each BlackBerry 10 WebWorks repo: master and next. The master branch will contain all the features that you can currently use with the current publicly-released OS &#8212; think of it as the features we wish we had time to get into the previous release. When a feature is completed, it’s merged into master if does not have any OS dependencies. The next branch will contain the new features that have OS dependencies.</p>
<p>To allow developers to easily build stable versions, each release is tagged using the version number of the release. This allows you to easily check out the source of a particular release. You can simply use the tags to check out the code from that release. For example, you can use “git checkout v1.0.2.9” to pull down the code for the last release. So, any pull request you see going into the master branch, you can grab and use right away. You will see none open today, but over the next couple of weeks you should start seeing many.</p>
<p>The README.md has been updated with all the updated instructions.<br />
Run the unit tests, automated tests, all the developer tools we use are all available to you.</p>
<p>We are doing everything we can to enable developers to take advantage of our latest and greatest work. Just open an issue on our repo when you find an issue with our BlackBerry 10 WebWorks SDK. If you fix a bug or build an awesome extension, contribute it back and help us make BlackBerry 10 WebWorks SDK even better. For details on how to contribute, check out <a href="http://blackberry.github.com/howToContribute.html" target="_new">http://blackberry.github.com/howToContribute.html</a></p>
<p>We recently had <a href="https://github.com/badtoyz" target="_new">Mark Robinson</a> contribute changes to make SDK work on Linux &#8212; contributions like that go a long way. Be sure to see our <a href="http://blackberry.github.com/approvedSignatories.html" target="_new">growing list of contributors</a>!</p>
<p>You can reach me any time on Twitter® <a href="https://twitter.com/nukulb" target="_new">@nukulb</a> or <a href="https://github.com/nukulb" target="_new">send me a message through GitHub</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11795/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11795&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/10/blackberry-10-webworks-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d4af90af66399bef37f445ec81aba64a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">timwin1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/10/bb10-framework.jpg" medium="image" />
	</item>
		<item>
		<title>Join the BlackBerry 10 revolution at the Sprint Open Solutions Conference</title>
		<link>http://devblog.blackberry.com/2012/10/sprint-open-solutions-conference/</link>
		<comments>http://devblog.blackberry.com/2012/10/sprint-open-solutions-conference/#comments</comments>
		<pubDate>Mon, 22 Oct 2012 18:28:47 +0000</pubDate>
		<dc:creator>Alex Kinsella</dc:creator>
				<category><![CDATA[Android Development]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android apps]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[porting]]></category>
		<category><![CDATA[Sprint]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[web apps]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11779</guid>
		<description><![CDATA[The BlackBerry® Developer Relations will be at the Sprint Open Solutions Conference to help you with porting your existing Android™ or HTML5 application for the BlackBerry® PlayBook™ tablet and our upcoming BlackBerry® 10 platform. The Sprint Open Solution Conference runs on Wednesday, October 24th and Thursday, October 25th at the San Jose Convention Center in [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11779&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://developer.sprint.com/dynamicContent/devcon2012/"><img class="aligncenter  wp-image-11784" title="2012_conf_banner" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/10/2012_conf_banner.jpg?w=558&#038;h=196" height="196" width="558" /></a></p>
<p>The BlackBerry® Developer Relations will be at the <a href="http://developer.sprint.com/dynamicContent/devcon2012" target="_new">Sprint Open Solutions Conference</a> to help you with porting your existing Android™ or HTML5 application for the BlackBerry® PlayBook™ tablet and our upcoming BlackBerry® 10 platform. The Sprint Open Solution Conference runs on Wednesday, October 24th and Thursday, October 25th at the San Jose Convention Center in beautiful downtown San Jose.</p>
<blockquote class="twitter-tweet"><p>Are you ready for <a href="https://twitter.com/search/%23SprintOSC12">#SprintOSC12</a>?Have you registered?It&#8217;s not too late! Reg NOW! <a title="http://ow.ly/eBVv6" href="http://t.co/0tA5OnZJ">ow.ly/eBVv6</a></p>
<p>— Sprint Dev Program (@SprintDeveloper) <a href="https://twitter.com/SprintDeveloper/status/260033120261271552">October 21, 2012</a></p></blockquote>
<p>Stop by our booth to port your HTML5 and Android apps to the BlackBerry 10 platform and the BlackBerry PlayBook tablet with few or no required code modifications. We’ll have porting experts on hand to help, and the first ten developers to get their app running on a BlackBerry 10 Dev Alpha testing device and submitted to the BlackBerry App World™ storefront will be given a BlackBerry 10 Dev Alpha testing device on site. Plus, if you get it running on the BlackBerry PlayBook tablet, you could receive 1 of 100 free BlackBerry PlayBook tablets &#8212; and once your app is on the BlackBerry PlayBook tablet, it can be easily ported to BlackBerry 10!</p>
<h3><strong>Want to get a head start?</strong></h3>
<p>1. <strong><a href="http://appworld.blackberry.com/isvportal" target="_new">Register for BlackBerry App World</a></strong> – Become an official BlackBerry developer.<br />
2. <strong><a href="https://www.blackberry.com/SignedKeys" target="_new">Request signature keys</a></strong> – Ensure you select for BlackBerry PlayBook OS and BlackBerry 10 and higher. Downloading in advance is strongly recommended as the time involved to do so on site could prevent you from competing for Alphas.<br />
3. <strong><a href="https://developer.blackberry.com/" target="_new">Get the BlackBerry Tools and Plug-ins</a></strong> – Get your laptop set up with the right tools so you can begin creating apps for BlackBerry 10.</p>
<p>In addition to our Porting Booth, our own <a href="https://twitter.com/lmcdunna" target="_new">Larry McDonough</a> is <a href="http://developer.sprint.com/dynamicContent/devcon2012/overview/6?sliderId=0&amp;sortOrderId=1#blackberry" target="_new">presenting</a> the session “Mobile Monetization with BlackBerry &#8211; What Developers Need to Know” on Thursday, October 25th at 2:30pm PST in room 210G. This presentation will cover the different methods for monetizing mobile applications on BlackBerry devices. Larry will cover NFC, in-app payments, advertising, “freemium” apps, and carrier billing. This discussion will also consider how to prepare and market your app through a mobile app marketplace like BlackBerry App World.</p>
<p>See you in San Jose!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11779/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11779/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11779&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/10/sprint-open-solutions-conference/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>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/10/2012_conf_banner.jpg" medium="image">
			<media:title type="html">2012_conf_banner</media:title>
		</media:content>
	</item>
		<item>
		<title>Get Your Web and Android Apps Distribution-ready at BlackBerry DevCon Americas 2011</title>
		<link>http://devblog.blackberry.com/2011/10/app-express-devcon-2011/</link>
		<comments>http://devblog.blackberry.com/2011/10/app-express-devcon-2011/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 13:45:09 +0000</pubDate>
		<dc:creator>Sarah B.</dc:creator>
				<category><![CDATA[Android Development]]></category>
		<category><![CDATA[Dev Con]]></category>
		<category><![CDATA[android apps]]></category>
		<category><![CDATA[app express]]></category>
		<category><![CDATA[blackberry app world]]></category>
		<category><![CDATA[devcon]]></category>
		<category><![CDATA[DevCon 2011]]></category>
		<category><![CDATA[web apps]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=7229</guid>
		<description><![CDATA[Learn about the new App Express kiosks that will be available at BlackBerry DevCon Americas 2011.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=7229&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://rimdevblog.files.wordpress.com/2011/06/devcon2011_americas_horz_cmyk.jpg?w=600&#038;h=46" alt="BlackBerry DevCon Americas 2011" title="BlackBerry DevCon Americas 2011" width="600" height="46" class="aligncenter size-full wp-image-6696" /></p>
<p>Beyond all you can learn at <a href="http://www.blackberrydevcon.com/Americas" target="_new">BlackBerry® DevCon Americas 2011</a> and the many great people you can meet, there is another real draw at the show: Your web or Android™ app can be ported over to the BlackBerry platform and be made distribution-ready for submission to the BlackBerry® App World™ storefront. </p>
<p><a href="http://www.blackberrydevcon.com/americas/content/app-express" target="_new">App Express kiosks</a> are a show feature this year. Walk up to any kiosk in the Golden Gate Foyer, plug in your laptop and you can begin to port your existing Android app to the BlackBerry® PlayBook™ tablet. You’ll also be able to transform your existing web application into a ready-to-go app for both the BlackBerry PlayBook tablet and BlackBerry smartphones. </p>
<p>You can do all this quickly and then get your app submitted to BlackBerry App World right then and there – no kidding!  Just keep in mind, submission to BlackBerry App World still requires your application to be signed with BlackBerry Code Signing keys. Get them <a href="http://us.blackberry.com/developers/javaappdev/codekeys.jsp" target="_new">here</a> for free <strong>before</strong> coming on site to BlackBerry DevCon Americas (keys can take up to two hours to be generated). You’ll also want to check out this <a href="http://www.blackberrydevcon.com/americas/content/app-express" target="_new">handy checklist</a> for a list of other items to have ready to facilitate your BlackBerry App World submission.</p>
<p>App Express is free, and it opens on Monday, October 17 and runs through Thursday, October 20. It’s also a great place to meet experts from the development team at Research In Motion® (RIM®) and the BlackBerry App World team.</p>
<p>If you’re not registered for BlackBerry DevCon Americas 2011 yet, don’t worry. Come by and try out App Express on us. And then think about registering for the rest of the conference – there’s a lot to see and experience this year at <a href="http://www.blackberrydevcon.com/" target="_new">BlackBerry DevCon 2011</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/7229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/7229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=7229&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2011/10/app-express-devcon-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0f2a608eb63d544051c2a9c6ecb4ad0d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sarbur1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2011/06/devcon2011_americas_horz_cmyk.jpg" medium="image">
			<media:title type="html">BlackBerry DevCon Americas 2011</media:title>
		</media:content>
	</item>
	</channel>
</rss>
