<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>PhoneGap</title>
 <link href="http://phonegap.com/rss.xml" rel="self"/>
 <link href="http://phonegap.com/"/>
 <updated>2013-06-18T05:47:46+00:00</updated>
 <id>http://PhoneGap.com/</id>
 <author>
   <name>PhoneGap</name>
 </author>

 
 <entry>
   <title>Recording + Assets from PhoneGap Presentation</title>
   
   <link href="http://www.raymondcamden.com/index.cfm/2013/6/17/Recording--Assets-from-PhoneGap-Presentation"/>
   <id>http://www.raymondcamden.com/index.cfm/2013/6/17/Recording--Assets-from-PhoneGap-Presentation</id>
   
   <updated>2013-06-17T17:13:00Z</updated>
   <content type="html">Thanks to those who showed up today for my PhoneGap presentation as part of &lt;a href=&quot;http://www.coldbox.org/cbdw&quot;&gt;ColdBox Developer Week&lt;/a&gt;. You may find the recording here:

&lt;a href=&quot;https://experts.adobeconnect.com/_a204547676/p6a701ksfig/&quot;&gt;https://experts.adobeconnect.com/_a204547676/p6a701ksfig/&lt;/a&gt;

Slide deck and demos may be found on GitHub: &lt;a href=&quot;https://github.com/cfjedimaster/Introduction-to-PhoneGap&quot;&gt;https://github.com/cfjedimaster/Introduction-to-PhoneGap&lt;/a&gt;

As always, comments and criticisms are welcome.&lt;img src=&quot;http://feeds.feedburner.com/~r/RaymondCamdensColdfusionBlog/~4/2YOW01-LU2U&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;
</content>
 </entry>
 
 <entry>
   <title>Death to setProperties</title>
   
   <link href="http://www.infil00p.org/death-to-setproperties/"/>
   <id>http://www.infil00p.org/death-to-setproperties/</id>
   
   <updated>2013-06-14T18:35:51Z</updated>
   <content type="html">One pet peeve of mine with Cordova was the fact that to do certain things, you still had to set certain properties such as splashscreen, timeouts and other minor details. These APIs traditionally only had documentation at the top of &amp;#8230; &lt;a href=&quot;http://www.infil00p.org/death-to-setproperties/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;
</content>
 </entry>
 
 <entry>
   <title>My PhoneGap Presentation to Ottawa JS</title>
   
   <link href="http://simonmacdonald.blogspot.com/2013/06/so-on-wednesday-night-i-did-my.html"/>
   <id>http://simonmacdonald.blogspot.com/2013/06/so-on-wednesday-night-i-did-my.html</id>
   
   <updated>2013-06-13T20:49:00Z</updated>
   <content type="html">&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-cs_a2ro_P0Y/TkA8D-vPCVI/AAAAAAAABwE/gHJwh4m8Jkw/s1600/pg.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://1.bp.blogspot.com/-cs_a2ro_P0Y/TkA8D-vPCVI/AAAAAAAABwE/gHJwh4m8Jkw/s200/pg.png&quot; width=&quot;159&quot; /&gt;&lt;/a&gt;&lt;/div&gt;So on Wednesday night I did my &lt;b&gt;Introduction to PhoneGap/Apache Cordova&lt;/b&gt;&amp;nbsp;(&lt;a href=&quot;https://github.com/macdonst/Ottawa-JavaScript-PhoneGap&quot;&gt;GitHub repo&lt;/a&gt;) presentation for&amp;nbsp;&lt;a href=&quot;http://www.meetup.com/Ottawa-JavaScript&quot;&gt;Ottawa JS&lt;/a&gt; at the beautiful &lt;a href=&quot;https://www.shopify.com/&quot;&gt;Shopify&lt;/a&gt; lounge. I've given this presentation a ton of times so I decided to give it a twist this time around.&lt;br /&gt;&lt;br /&gt;The first thing I did was convert my old slide deck into a &lt;a href=&quot;http://lab.hakim.se/reveal-js/#/&quot;&gt;reveal.js&lt;/a&gt; presentation. Then I popped all&amp;nbsp;the assets into a PhoneGap iPad project to see how it looked. Well, reveal.js looks and works great on an iPad.&lt;br /&gt;&lt;br /&gt;At this point I started to get fancy. When I got to the part of the presentation where I would usually switch from&amp;nbsp;the presentation software to Eclipse/Xcode to show the code and emulator I decided to call out to PhoneGap to take a picture instead. All I needed to do was include cordova.js in the app and make a call to &lt;a href=&quot;http://docs.phonegap.com/en/2.8.0/cordova_camera_camera.md.html#camera.getPicture&quot;&gt;Camera.getPicture&lt;/a&gt; and the results were:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-qoEDhTLK4Y4/UbouEHk9WrI/AAAAAAAAChs/Uf_MYtXwWPk/s1600/cdv_photo_006.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://3.bp.blogspot.com/-qoEDhTLK4Y4/UbouEHk9WrI/AAAAAAAAChs/Uf_MYtXwWPk/s400/cdv_photo_006.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;this is my view from&amp;nbsp;the stage&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://photos1.meetupstatic.com/photos/event/4/f/c/6/highres_247100422.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://photos1.meetupstatic.com/photos/event/4/f/c/6/highres_247100422.jpeg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;the view from&amp;nbsp;the audience&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;And Darren took a picture of me taking the picture, while the picture I was taking was being put up on the big screen which is also in this picture. So I was able to do a presentation on&amp;nbsp;&lt;b&gt;PhoneGap&lt;/b&gt;&amp;nbsp;in a&amp;nbsp;&lt;b&gt;PhoneGap&lt;/b&gt;&amp;nbsp;app calling the&amp;nbsp;&lt;b&gt;PhoneGap&lt;/b&gt;&amp;nbsp;API. It got meta pretty damn quick!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.myconfinedspace.com/wp-content/uploads/2010/08/1280894772031.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;134&quot; src=&quot;http://www.myconfinedspace.com/wp-content/uploads/2010/08/1280894772031.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;
</content>
 </entry>
 
 <entry>
   <title>Power Your PhoneGap App with the New ShowKit SDK</title>
   
   <link href="http://phonegap.com/blog/2013/06/13/power-your-phonegap-app-with-the-new-showkit-sdk"/>
   <id>http://phonegap.com/blog/2013/06/13/power-your-phonegap-app-with-the-new-showkit-sdk</id>
   
   <updated>2013-06-13T16:15:00+00:00</updated>
   <content type="html">&lt;p&gt;ShowKit, a powerful mobile SDK that allows developers to easily integrate audio/video conferencing, screen sharing, and remote gesture control into any mobile application, is happy to announce that our latest release now supports PhoneGap &lt;a href=&quot;http://blog.showkit.com/post/52806556213/showkit-now-supports-phonegap&quot;&gt;integration&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;Together, PhoneGap and ShowKit make developing robust mobile applications easier. PhoneGap simplifies app creation for multiple platforms and ShowKit offers PhoneGap users the ease of adding powerful in-app communication features. &lt;/p&gt;

&lt;p&gt;View more about ShowKit:&lt;br/&gt;
&lt;iframe src=&quot;http://player.vimeo.com/video/65253521&quot; width=&quot;500&quot; height=&quot;281&quot; frameborder=&quot;0&quot; webkitAllowFullScreen mozallowfullscreen allowFullScree&gt;&lt;/iframe&gt; 
&lt;/p&gt;

&lt;p&gt;Check out ShowKit’s demo app to see these features at work:&lt;br/&gt;
&lt;iframe src=&quot;http://player.vimeo.com/video/65406591&quot; width=&quot;500&quot; height=&quot;281&quot; frameborder=&quot;0&quot; webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Audio / Video Conferencing&lt;/b&gt; 
&lt;a href=&quot;http://www.showkit.com&quot;&gt;Showkit&lt;/a&gt; users benefit from smooth video conferencing, with clear VGA and 720p resolutions at 30 frames per second using minimal CPU resources. ShowKit’s best in class audio / video conferencing feature is built on the only framework that includes hardware accelerated video encoding and decoding. The decoding component is fairly tricky and unique, and enables device to device communication, which is a more complex development than device to web communication. The minimal CPU usage allows the device to run other functions in parallel, such as a game or app. ShowKit’s competitors (which shall remain nameless) use full CPU and only get 4-5fps at that resolution, which isn’t feasible for video conferencing. ShowKit reports that this feature is so easy to integrate that they watched a team of junior mobile developers at the recent ShowKit sponsored &lt;a href=&quot;http://angelhack.com/&quot;&gt;AngelHack Los Angeles&lt;/a&gt; add a working implementation into their hack in about 30 minutes.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Screen Share &amp;amp; Remote Gesture Control&lt;/b&gt;&lt;br /&gt;
(a feature ShowKit is pioneering) &lt;br /&gt;
The ShowKit SDK also provides users with shared gestures on UIKit controls, gesture indication graphics, and gaming-compatible screen sharing. ShowKit envisions several possible use cases for this feature set that might include (but not limited to) the facilitation of sales, customer support, or social gaming. Teja Vishwanadha won ShowKit’s prize for best implementation at AngelHack Los Angeles by creating MemoryPlay, a casual memory game with rich real time interaction between players.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;PhoneGap Integration And Exclusives&lt;/b&gt;&lt;br /&gt;
ShowKit’s technology now seamlessly facilitates integration with PhoneGap, just check out our PhoneGap specific &lt;a href=&quot;http://www.showkit.com/docs/phonegap&quot;&gt;docs&lt;/a&gt;.
&lt;br /&gt;
	&lt;ol&gt;
		&lt;li&gt;Drag ShowKit.framework into your project&lt;/li&gt;
		&lt;li&gt;Add the following line to your config.xml file:
&lt;pre&gt;&lt;code&gt;&amp;lt;plugin name=&amp;quot;ShowKitPlugin&amp;quot; value=&amp;quot;ShowKitPlugin&amp;quot;/&amp;gt;&lt;/code&gt;&lt;/pre&gt;
		&lt;/li&gt;
		&lt;li&gt;Initialize the app with your ShowKit API key in index.js:
&lt;pre&gt;
&lt;code&gt;// The scope of 'this' is the event. In order to call the 'receivedEvent'
// function, we must explicitly call 'app.receivedEvent(...);'
onDeviceReady: function() {
	app.receivedEvent('deviceready');
	var apiKey = &quot;aa2ab742-a7B8-4acf-8af4-6694265a2a25&quot;;
	ShowKit.initializeShowKit(apiKey);
},&lt;/code&gt;
&lt;/pre&gt;
		&lt;/li&gt;
		&lt;li&gt;Include ShowKit.js in any HTML files where you plan to use ShowKit:
&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;js/ShowKit.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
		&lt;/li&gt;
		&lt;li&gt;Select your project in the Project Navigator, select the Target, and then select the Build Settings tab. Search for “Other Linker Flags.” After that, you can build and run your ShowKit-enabled project!&lt;/li&gt;
		&lt;li&gt;Remove the -all_load linker flag. Then add -force_load &quot;$(BUILT_PRODUCTS_DIR)/libCordova.a&quot; and -lc++ to your Other Linker Flags&lt;/li&gt;
	&lt;/ol&gt;
&lt;/p&gt;

&lt;p&gt;ShowKit recently launched a private beta and is currently available for iOS developers, with web and Android compatibility coming soon. We are offering an exclusive promotion code for PhoneGap users who would like to implement the technology. Interested mobile developers can request an invite from &lt;a href=&quot;http://www.showkit.com/invites/new&quot;&gt;ShowKit’s&lt;/a&gt; site using the code &lt;b&gt;&quot;PhoneGap&quot;&lt;/b&gt; to gain immediate access to the SDK.&lt;/p&gt;

&lt;p&gt;For additional information and a more in-depth explanation of this technology, developers can register for a &lt;a href=&quot;https://startupminds.clickwebinar.com/PhoneGap_ShowKit_Webinar&quot;&gt;webinar&lt;/a&gt; that I will be hosting next week. The webinar is exclusively for PhoneGap users and will take place on Wednesday, June 19th, 2013 from 11:05 am – 12:05 pm PT.
&lt;/p&gt;

&lt;p&gt;
	&lt;i&gt;Guest blog post by Matt Van Veenendaal, ShowKit Co-Founder, CTO&lt;br /&gt;
Matt is a graduate of the Swinburne University of Technology. He formerly served as a software engineer at internet security giant Telesign and  as the CTO of Ringadoc.  As the current CTO of Curious Minds, Matt manages the engineering department.  He has a passion for software architecture, design, and various web technologies.*
&lt;/i&gt;
&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Using Errorception with PhoneGap</title>
   
   <link href="http://www.raymondcamden.com/index.cfm/2013/6/13/Using-Errorception-with-PhoneGap"/>
   <id>http://www.raymondcamden.com/index.cfm/2013/6/13/Using-Errorception-with-PhoneGap</id>
   
   <updated>2013-06-13T10:57:00Z</updated>
   <content type="html">I thought I had blogged about &lt;a href=&quot;http://www.errorception.com&quot;&gt;Errorception&lt;/a&gt; before, but unless my search engine skills are failing me I must not have ever gotten around to it. Errorception is a service that aggregates and reports on client-side errors on your web site. By placing a simple embed in your HTML code, all errors will be sent off to their service for your perusal. When I first tested this service, I remember thinking, glibly, that I hope I'd get enough data points to make it worthwhile to demonstrate. I mean, my blog runs well, I never see any errors myself, so I just kinda assumed everything was good. Heh.I logged in to the Errorception portal after a week and discovered that there were a &lt;i&gt;huge&lt;/i&gt; amount of errors reported. Obviously my blog &quot;worked&quot;, and most of these bugs were not preventing people from using my site, but I really had no idea what was going on and Errorception provided a wealth of data. Here are some screen shots from those reports. (Note that the screenshots are from last year.)

First - the general list of issues:

&lt;img src=&quot;http://www.raymondcamden.com/images/ec1.png&quot; /&gt;

Then a drill down:

&lt;img src=&quot;http://www.raymondcamden.com/images/ec2.png&quot; /&gt;

And yet another drill down:

&lt;img src=&quot;http://www.raymondcamden.com/images/ec3.png&quot; /&gt;

Errorception is not a free service, but the pricing model seems rather fair to me and as I said - I can bet you've got more issues than you think you do.

So what about PhoneGap? When I tried to use the Errorception code snippet with PhoneGap, I noted that the error reporting didn't work. I got in contact with the Errorception team and Rakesh Pai was able to figure out the issue. 

Here is the original snippet:

&lt;script src=&quot;https://gist.github.com/cfjedimaster/5773177.js&quot;&gt;&lt;/script&gt;

Rakesh noticed this:

&lt;blockquote&gt;
It turns out, the problem you faced is indeed trivial, fortunately.
The tracking snippet Errorception gives you is protocol-relative, so
as to make it work on HTTP and HTTPS. However, on phonegap, the
protocol for the 'index.html' page is file://, and so the tracking
snippet fails to load (404).

The fix is simple: it's to modify the snippet to load the beacon from
a hard-coded http/https protocol
&lt;/blockquote&gt;

Here is his modified snippet:

&lt;script src=&quot;https://gist.github.com/cfjedimaster/5773181.js&quot;&gt;&lt;/script&gt;

That worked! I fired up both my iOS simulator and my Android simulator and as soon as I forced my error they showed up immediately in the console.

&lt;img src=&quot;http://www.raymondcamden.com/images/ec4.png&quot; /&gt;

Notice that the error is reported differently in iOS versus Android.&lt;img src=&quot;http://feeds.feedburner.com/~r/RaymondCamdensColdfusionBlog/~4/3urH04WRrdY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;
</content>
 </entry>
 
 <entry>
   <title>Introducing Cordova 2.8.1 on Android</title>
   
   <link href="http://www.infil00p.org/introducing-cordova-2-8-1-on-android/"/>
   <id>http://www.infil00p.org/introducing-cordova-2-8-1-on-android/</id>
   
   <updated>2013-06-12T23:14:55Z</updated>
   <content type="html">A little less than two months ago, we improperly deprecated the Plugin API for Cordova Plugins. The reason for this was to move from the old architecture to the new one. However, it seems that once again that people ran &amp;#8230; &lt;a href=&quot;http://www.infil00p.org/introducing-cordova-2-8-1-on-android/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;
</content>
 </entry>
 
 <entry>
   <title>My Development Workflow for PhoneGap iOS Apps</title>
   
   <link href="http://devgirl.org/2013/06/12/my-development-workflow-for-phonegap-ios-apps/"/>
   <id>http://devgirl.org/2013/06/12/my-development-workflow-for-phonegap-ios-apps/</id>
   
   <updated>2013-06-12T20:45:45Z</updated>
   <content type="html">I decided to blog the process I have personally found productive when developing mobile apps for PhoneGap and iOS in case it might help others. Below I cover the overall steps I take followed by a short video showing the process in use. This is only one of many possible workflows but if you&amp;#8217;re looking [...]
</content>
 </entry>
 
 <entry>
   <title>What’s new in Cordova iOS 2.8.0</title>
   
   <link href="http://shazronatadobe.wordpress.com/2013/06/11/whats-new-in-cordova-ios-2-8-0/"/>
   <id>http://shazronatadobe.wordpress.com/2013/06/11/whats-new-in-cordova-ios-2-8-0/</id>
   
   <updated>2013-06-11T23:38:53Z</updated>
   <content type="html">Highlights: deprecation of the &amp;#60;plugin&amp;#62; tag in config.xml (replaced by &amp;#60;feature&amp;#62;) cordova-XXX.js is just cordova.js now (on all platforms) new InAppBrowser options EXIF metadata writing for photos New command line scripts for your project * [CB-2840] Nil checks to avoid crash when network disconnected * [CB-3416] adding empty element during deprecation window. * [CB-3006] Customize [&amp;#8230;]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=shazronatadobe.wordpress.com&amp;#038;blog=24879806&amp;#038;post=673&amp;#038;subd=shazronatadobe&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;
</content>
 </entry>
 
 <entry>
   <title>PhoneGap Exploration &amp;#8211; Realtime Hardware Communication</title>
   
   <link href="http://www.tricedesigns.com/2013/06/11/phonegap-exploration-realtime-hardware-communication/"/>
   <id>http://www.tricedesigns.com/2013/06/11/phonegap-exploration-realtime-hardware-communication/</id>
   
   <updated>2013-06-11T17:45:58Z</updated>
   <content type="html">Recently I&amp;#8217;ve undertaken some explorations with fellow evangeslit Kevin Hoyt, trying to determine how far we can push PhoneGap applications with devices and physical computing. Turns out, you can push things really far and now I&amp;#8217;m delighted to share one of the experiments that we&amp;#8217;ve been pursuing. I&amp;#8217;ve been asked on more than one occasion, can you [...]
</content>
 </entry>
 
 <entry>
   <title>Quick Start Guide to PhoneGap+AngularJS</title>
   
   <link href="http://devgirl.org/2013/06/10/quick-start-guide-phonegap-and-angularjs/"/>
   <id>http://devgirl.org/2013/06/10/quick-start-guide-phonegap-and-angularjs/</id>
   
   <updated>2013-06-10T16:22:31Z</updated>
   <content type="html">I&amp;#8217;ve created a sample mobile application to help developers get started building mobile applications with PhoneGap and AngularJS quickly. The sample application includes view navigation, some standard user interface components and code to help avoid common pitfalls in mobile application development (click delays etc). Below are a few screenshots showing parts of the application. It [...]
</content>
 </entry>
 
 <entry>
   <title>Get Started Building Mobile Apps Fast with PhoneGap+AngularJS!</title>
   
   <link href="http://devgirl.org/2013/06/10/get-started-building-mobile-apps-fast-with-phonegapangularjs/"/>
   <id>http://devgirl.org/2013/06/10/get-started-building-mobile-apps-fast-with-phonegapangularjs/</id>
   
   <updated>2013-06-10T16:22:31Z</updated>
   <content type="html">I&amp;#8217;ve created a sample mobile application to help developers get started building mobile applications with PhoneGap and AngularJS quickly. The sample application includes view navigation, some standard user interface components and code to help avoid common pitfalls in mobile application development (click delays etc). Below are a few screenshots showing parts of the application. It [...]
</content>
 </entry>
 
 <entry>
   <title>PhoneGap Plugin for the Dropbox Sync API</title>
   
   <link href="http://coenraets.org/blog/2013/06/phonegap-plugin-for-the-dropbox-sync-api/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=phonegap-plugin-for-the-dropbox-sync-api"/>
   <id>http://coenraets.org/blog/2013/06/phonegap-plugin-for-the-dropbox-sync-api/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=phonegap-plugin-for-the-dropbox-sync-api</id>
   
   <updated>2013-06-10T15:01:31Z</updated>
   <content type="html">A couple of weeks ago, I started working on a PhoneGap application that required file synchronization between the users computer and their mobile device. I looked at the new Dropbox Sync API and decided to give it a try. The Dropbox Sync API is available for iOS and Android. So, I created a PhoneGap plugin [...]
</content>
 </entry>
 
 <entry>
   <title>PhoneGap 2.8.0 Released!</title>
   
   <link href="http://phonegap.com/blog/2013/06/07/pg-280-released"/>
   <id>http://phonegap.com/blog/2013/06/07/pg-280-released</id>
   
   <updated>2013-06-07T18:20:03+00:00</updated>
   <content type="html">&lt;p&gt;We have just released PhoneGap 2.8.0! Thanks to everyone who worked so hard to get this release out.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;ve squashed a lot of bugs this release to make way for some really big improvements coming soon. We&amp;#8217;ll be unveiling some big changes at &lt;a href='http://pgday.phonegap.com/us2013/'&gt;PhoneGap Day US&lt;/a&gt; in Portland, OR on July 19. Join us at PhoneGap Day to hear the news firsthand! Early bird tickets are only $25!&lt;/p&gt;

&lt;p&gt;You can view the 2.8.0 commits in the changelog on &lt;a href='https://github.com/phonegap/phonegap/blob/2.8.0/changelog'&gt;GitHub&lt;/a&gt;. &lt;a href='https://twitter.com/infil00p'&gt;Joe Bowser&lt;/a&gt; has a written up a good summary about &lt;a href='http://www.infil00p.org/whats-new-for-cordova-2-8-0-on-android/'&gt;what is new for 2.8.0 on Android&lt;/a&gt;. &lt;a href='https://twitter.com/shazron'&gt;Shazron Abdullah&lt;/a&gt; has a similar summary for iOS up on his &lt;a href='http://shazronatadobe.wordpress.com/2013/06/11/whats-new-in-cordova-ios-2-8-0/'&gt;blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you find any bugs with this version, help out our community and project by reporting them on our &lt;a href='https://issues.apache.org/jira/browse/CB'&gt;issue tracker&lt;/a&gt;.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Kick Backs – WP8 back button handling.</title>
   
   <link href="http://www.risingj.com/archives/493"/>
   <id>http://www.risingj.com/archives/493</id>
   
   <updated>2013-06-04T22:57:38Z</updated>
   <content type="html">With the PhoneGap Windows Phone Porting Challenge well under way, I felt it would be a good time to take a deeper dive into the hardware back button mechanism that is implemented in Apache Cordova, and how to use it. “A frequent cause of failing app certification is due to an inappropriate implementation of the back button behavior. &amp;#8230; Developers ...
</content>
 </entry>
 
 <entry>
   <title>What’s new for Cordova 2.8.0 on Android</title>
   
   <link href="http://www.infil00p.org/whats-new-for-cordova-2-8-0-on-android/"/>
   <id>http://www.infil00p.org/whats-new-for-cordova-2-8-0-on-android/</id>
   
   <updated>2013-06-04T21:48:13Z</updated>
   <content type="html">As we&amp;#8217;re ramping up to the 3.0.0 release of Cordova, there haven&amp;#8217;t been massive sweeping changes on Cordova, but mostly minor ones. The major change is now that cordova.js no longer has a version, which should make upgrading the js &amp;#8230; &lt;a href=&quot;http://www.infil00p.org/whats-new-for-cordova-2-8-0-on-android/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;
</content>
 </entry>
 
 <entry>
   <title>Sample Mobile / PhoneGap Application with Backbone.js and TopCoat</title>
   
   <link href="http://coenraets.org/blog/2013/06/sample-mobile-phonegap-application-with-backbone-js-and-topcoat/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sample-mobile-phonegap-application-with-backbone-js-and-topcoat"/>
   <id>http://coenraets.org/blog/2013/06/sample-mobile-phonegap-application-with-backbone-js-and-topcoat/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sample-mobile-phonegap-application-with-backbone-js-and-topcoat</id>
   
   <updated>2013-06-04T16:22:24Z</updated>
   <content type="html">In this post, I&amp;#8217;m excited to share my first sample application built with TopCoat. TopCoat is a CSS library &amp;#8212; a set of customizable styles for mobile components &amp;#8212; that you can use to build polished, clean and fast mobile web apps. TopCoat has a desktop profile as well. Because TopCoat focuses exclusively on the [...]
</content>
 </entry>
 
 <entry>
   <title>Sample Mobile / PhoneGap Application with Backbone.js and Ratchet</title>
   
   <link href="http://coenraets.org/blog/2013/06/sample-mobile-phonegap-application-with-backbone-js-and-ratchet/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sample-mobile-phonegap-application-with-backbone-js-and-ratchet"/>
   <id>http://coenraets.org/blog/2013/06/sample-mobile-phonegap-application-with-backbone-js-and-ratchet/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sample-mobile-phonegap-application-with-backbone-js-and-ratchet</id>
   
   <updated>2013-06-04T16:16:42Z</updated>
   <content type="html">I continue my experiments with different frameworks and UI toolkits to build mobile and PhoneGap applications. In this post, I use Backbone.js as the architectural framework and Ratchet as the UI toolkit to build my Employee Directory reference application. You can experience the application below: Click here to run the app in a full browser [...]
</content>
 </entry>
 
 <entry>
   <title>Have a published PhoneGap app? Try the Windows Phone Porting Challenge</title>
   
   <link href="http://www.raymondcamden.com/index.cfm/2013/6/3/Have-a-published-PhoneGap-app-Try-the-Windows-Phone-Porting-Challenge"/>
   <id>http://www.raymondcamden.com/index.cfm/2013/6/3/Have-a-published-PhoneGap-app-Try-the-Windows-Phone-Porting-Challenge</id>
   
   <updated>2013-06-03T19:33:00Z</updated>
   <content type="html">&lt;img src=&quot;http://www.raymondcamden.com/images/Homepage_phone.png&quot; style=&quot;float:left;margin-right:10px;margin-left:10px&quot; /&gt; If you have published a PhoneGap application to any of the existing app stores (and if you haven't, then you really have need to get on it!) then you should consider taking Microsoft's &lt;a href=&quot;http://www.phonegapwpchallenge.com/&quot;&gt;Windows Phone Porting Challenge&lt;/a&gt;. Simply port your application and test it in the Windows Phone Emulator and then publish it to the Windows Phone Store by June 30th, 2013. Prizes for winners include Surface Pros and Windows devices. To be clear, those of you with Macs (like myself) can test with VMFusion. I have and have had success seeing my content show up on my Windows Phone device. To help you get started, here's an introductory video on PhoneGap and Windows Phone.

&lt;iframe style=&quot;height:540px;width:960px&quot; src=&quot;http://channel9.msdn.com/Blogs/Interoperability/Getting-started-with-Windows-Phone-8-and-Cordova/player?w=600&amp;h=338&quot; frameBorder=&quot;0&quot; scrolling=&quot;no&quot; &gt;&lt;/iframe&gt;

Note - even if you haven't published a PhoneGap application to an app store yet, you can do so and then submit your app to Microsoft!&lt;img src=&quot;http://feeds.feedburner.com/~r/RaymondCamdensColdfusionBlog/~4/prORf0ztCdk&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;
</content>
 </entry>
 
 <entry>
   <title>Why Don't My Plugins Work in PhoneGap Android 2.7?</title>
   
   <link href="http://simonmacdonald.blogspot.com/2013/06/why-dont-my-plugins-work-in-phonegap.html"/>
   <id>http://simonmacdonald.blogspot.com/2013/06/why-dont-my-plugins-work-in-phonegap.html</id>
   
   <updated>2013-06-03T00:16:00Z</updated>
   <content type="html">&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-cs_a2ro_P0Y/TkA8D-vPCVI/AAAAAAAABwE/gHJwh4m8Jkw/s1600/pg.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://1.bp.blogspot.com/-cs_a2ro_P0Y/TkA8D-vPCVI/AAAAAAAABwE/gHJwh4m8Jkw/s200/pg.png&quot; width=&quot;159&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Well it's pretty simple, the Plugin class which has been deprecated for awhile has been removed from the package and should be replaced with CordovaPlugin. &lt;br /&gt;&lt;br /&gt;I'm going to go through the steps needed to upgrade your old style plugins to the new style. For this example I'm going to use the &lt;a href=&quot;https://github.com/phonegap/phonegap-plugins/tree/master/Android/Analytics/2.0&quot;&gt;Google Analytics plugin&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first thing you will notice in 2.7.0+ is that the GoogleAnalyticsTracker class now has 4 errors in Eclipse. To get rid of them you would change:&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;&lt;span class=&quot;s1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;org.apache.cordova.api.Plugin&lt;/span&gt;;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;into:&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;       &lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;&lt;span class=&quot;s1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;org.apache.cordova.api.CordovaPlugin&lt;/span&gt;;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;and:&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;       &lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;&lt;span class=&quot;s1&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;GoogleAnalyticsTracker&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;extends&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;Plugin&lt;span class=&quot;s2&quot;&gt; {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;to:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;       &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;&lt;span class=&quot;s1&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;GoogleAnalyticsTracker&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;extends&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;CordovaPlugin&lt;span class=&quot;s2&quot;&gt; {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;and now you'll notice you only have one error left in&amp;nbsp;the file and that has to do with the execute method. You'll need to change&amp;nbsp;the method signature from:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;       &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;&lt;span class=&quot;s1&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;PluginResult&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s3&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s5&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s6&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;s5&quot;&gt;JSONArray&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s6&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;s5&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s6&quot;&gt;callbackId&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;to:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;       &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;&lt;span class=&quot;s1&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;boolean&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s3&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s5&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s6&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;s5&quot;&gt;JSONArray&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s6&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;s5&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s6&quot;&gt;callbackId&lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;and we still have one error which is now the line in which we are returning the PluginResult. That's because the method now expect a boolean to be the return value. To fix this issue you would replace:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s2&quot;&gt;       &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;return&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s1&quot;&gt;with:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;span class=&quot;s1&quot;&gt;       &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p1&quot;&gt;&lt;b&gt;&lt;span class=&quot;s2&quot;&gt;callbackContext&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;.&lt;/span&gt;sendPluginResult&lt;span class=&quot;s1&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s3&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;);&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;b&gt;return&lt;span class=&quot;s1&quot;&gt; &lt;/span&gt;true&lt;span class=&quot;s1&quot;&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Finally our Java code is free of error messages. Whew, were done but what's with&amp;nbsp;the change to the execute method? Well let's just say there have been improvements in the way the Plugins are handled internally. What you need to know is that when you want to send a result back to the JavaScript side you now have a choice of three methods:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;b&gt;1) callbackContext.sendPluginResult(...)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Use this if you have constructed your own PluginResult and you want to send it to the JavaScript side.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;b&gt;2) callbackContext.error(int | String | JSONObject)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Skip creating a PluginResult and just invoke&amp;nbsp;the error callback on&amp;nbsp;the JavaScript side sending back an int, a String or a JSONObject as&amp;nbsp;the method payload.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;b&gt;&lt;span class=&quot;s1&quot;&gt;3) callbackContext.success(empty |&amp;nbsp;&lt;/span&gt;int | String | JSONObject | JSONArray)&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;Again, just skip creating&amp;nbsp;the PluginResult and invoke&amp;nbsp;the success callback on&amp;nbsp;the JavaScript side sending back an int, a String, JSONObject or JSONArray as&amp;nbsp;the method payload. If you don't provide any payload the method on&amp;nbsp;the JS side will be executed with no payload.&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;p2&quot;&gt;So that should get you unstuck if you have a Plugin that no longer works for you as of PhoneGap 2.7.0. You should also check out my posts on the &lt;a href=&quot;http://simonmacdonald.blogspot.ca/2013/01/galleryplugin.html&quot;&gt;GalleryPlugin&lt;/a&gt; as shows how to write a Plugin using the new API for JS and Java.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
</content>
 </entry>
 
 <entry>
   <title>Congrats to our PhoneGap Build Champions</title>
   
   <link href="http://phonegap.com/blog/build/congrats-to-our-phonegap-build-champions/"/>
   <id>http://phonegap.com/blog/build/congrats-to-our-phonegap-build-champions</id>
   
   <updated>2013-05-31T17:10:26+00:00</updated>
   <content type="html">&lt;p&gt;PhoneGap Build users looking for support head to our free forum hosted over on &lt;a href='http://getsatisfaction.com/nitobi/products/nitobi_phonegap_build'&gt;Get Satisfaction&lt;/a&gt;. If you&amp;#8217;ve ever been on the forum, you&amp;#8217;ve probably seen some people who go above and beyond by helping others. They&amp;#8217;re not PhoneGap Build staff, but fellow Build users who are passionate about the service and like to help the community.&lt;/p&gt;
&lt;!-- end-slug --&gt;
&lt;p&gt;To thank these super users, we&amp;#8217;ve decided to recognize them by awarding some perks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Champions: On Get Satisfaction, we&amp;#8217;ve promoted these users to &amp;#8216;Champion&amp;#8217; status. They get a badge on their profile and are recognized by the PhoneGap Build team as highly valued contributors.&lt;/li&gt;

&lt;li&gt;SWAG! We have some awesome PhoneGap Build swag including t-shirts, stickers and pins.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We&amp;#8217;ve recently promoted the following users to our new Champion status: &lt;a href='http://community.phonegap.com/people/alan_neveu'&gt;Alan_neveu&lt;/a&gt;, &lt;a href='http://community.phonegap.com/people/red_laser'&gt;red_laser&lt;/a&gt; and &lt;a href='http://community.phonegap.com/people/yann_s'&gt;yann_s&lt;/a&gt;. Thanks for your hard work!&lt;/p&gt;

&lt;p&gt;Interested in becoming a PhoneGap Build Champion? All you need to do is be active on the forum, post frequently and regularly, and help others. We&amp;#8217;d love to see you on there!&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Improving Build One Step at a Time</title>
   
   <link href="http://phonegap.com/blog/build/improving-build-one-step-at-a-time/"/>
   <id>http://phonegap.com/blog/build/improving-build-one-step-at-a-time</id>
   
   <updated>2013-05-31T17:01:47+00:00</updated>
   <content type="html">&lt;p&gt;Hey friends,&lt;/p&gt;

&lt;p&gt;We wanted to address many questions related to the PhoneGap Build service and provide a status update on our team&amp;#8217;s progress for the last week and upcoming plans.&lt;/p&gt;
&lt;!-- end-slug --&gt;
&lt;h2 id='service_reliability'&gt;Service Reliability:&lt;/h2&gt;

&lt;p&gt;As you may have noticed, our service stability has slowly degraded over the last month. Why has this been happening? Why haven&amp;#8217;t we done anything about it? Those are just some of the questions we want to address.&lt;/p&gt;

&lt;p&gt;First of all, let&amp;#8217;s address why this has been happening: The main reason is that the service has more than doubled in the volume of builds being compiled by our servers. This means that we&amp;#8217;re constantly facing scaling issues, and until recently this has been quite a tedious and time consuming task.&lt;/p&gt;

&lt;p&gt;Our ability to scale has been sub-par and we&amp;#8217;ve already been working hard to address that over the last few weeks. We still have a ways to go, but over the next few weeks you&amp;#8217;ll notice large improvements in build times during peak hours.&lt;/p&gt;

&lt;p&gt;Our work so far has been focused around the following tasks:&lt;/p&gt;

&lt;p&gt;- Improving internal tooling for recovering the system and monitoring it. - Assembling a team to ensure the service stays running around the clock.&lt;/p&gt;

&lt;p&gt;We’ve made great strides toward our tooling and providing a great foundation to help automate tasks, restart build components, update components, and monitor our components.&lt;/p&gt;

&lt;p&gt;We’ve also been able to find a team to help monitor and correct issues that may occur while our team is out of office and/or asleep.&lt;/p&gt;

&lt;p&gt;Now that we’re able to keep the service online for more than twenty-four hours, we need to focus on scaling the service to meet demand during peak hours. This is what we’re focusing on now.&lt;/p&gt;

&lt;h2 id='customer_support'&gt;Customer Support&lt;/h2&gt;

&lt;p&gt;As Build has been growing we’ve been struggling to keep up with the volume of questions coming in via community.phonegap.com.&lt;/p&gt;

&lt;p&gt;Together with our support team, we’ve started formalizing a strategy for addressing and closing issues, questions, and suggestions with a faster turn around time.&lt;/p&gt;

&lt;p&gt;For example, you may have noticed that when we receive an issue on our community forum we open a corresponding issue on our Github tracker (https://github.com/phonegap/build/issues). This is great for the engineering team, however it doesn’t give you, our users, a sense of when we’ll resolve it.&lt;/p&gt;

&lt;p&gt;To address this we now provide a response on the type of problem it is (bug, feature request) and the priority our development team has given it (low, medium, high).&lt;/p&gt;

&lt;p&gt;We’ll continue to streamline our support process to provide a more transparent service.&lt;/p&gt;

&lt;p&gt;We have also begun exploring the options of adding paid support plans for users who want more attention. Stay tuned for more on that.&lt;/p&gt;

&lt;h2 id='communication'&gt;Communication&lt;/h2&gt;

&lt;p&gt;It’s hard to know when Build is having issues isn’t it?.&lt;/p&gt;

&lt;p&gt;We currently have monitors that are used by our internal team, however it’s exposing them in a meaningful way to the community that has not been addressed. We’re working on it :)&lt;/p&gt;

&lt;p&gt;For the interim, we’ll post any service issues on the following:&lt;/p&gt;

&lt;p&gt;Community Support Channel: http://community.phonegap.com/nitobi/updates/recent Twitter: https://twitter.com/PhoneGapBuild&lt;/p&gt;

&lt;p&gt;We understand your frustration and we&amp;#8217;re working hard to address these issues as quickly as we can.&lt;/p&gt;

&lt;h2 id='status_update'&gt;Status Update&lt;/h2&gt;

&lt;p&gt;This part of the blog post is the not so regular but regular information we provide on what we’ve been working on for the last week, what we’ve got on our plate for this week, and what we plan on working on in the following weeks to come.&lt;/p&gt;

&lt;h3 id='last_week'&gt;Last Week&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Removed support for PhoneGap 1.x.x&lt;/li&gt;

&lt;li&gt;Update GAPlugin to use GA SDK version 2+&lt;/li&gt;

&lt;li&gt;Add build servers for Android, WebOS, Hydration, Symbian, Winphone, and BB&lt;/li&gt;

&lt;li&gt;Internal tooling&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id='this_week'&gt;This Week&lt;/h3&gt;

&lt;p&gt;- Various bug patches - BUG #130 Open external page in InAppBrowser android 2.3 doesn&amp;#8217;t work - BUG #66: &lt;span&gt;Android&lt;/span&gt; Not whitelisted link still open in webview - PhoneGap 2.1.0 - BUG #71: &lt;span&gt;iOS&lt;/span&gt; Custom URL Scheme within CONFIG.XML - Integrating Pushwoosh with 2.7.0 before release - Updating Facebook plugin to support plugin.xml - Adding additional IOS servers - Working on a public service status panel - Working on auto-scaling our build servers to handle peak times - Working on internal tooling to help automate team processes - Merging changes contributed by the Build team from pluginstall to plugman. This will allow for us to align ourselves with the Cordova plugin architecture. - Working with the Cordova team on a plugin distribution channel architecture that will be supported by Build. - Working on integrating Medic to provide a continuous integration system to validate PhoneGap distributions and plugin distributions.&lt;/p&gt;

&lt;h3 id='next_week_rough_estimate'&gt;Next Week (rough estimate)&lt;/h3&gt;

&lt;p&gt;- Release Pushwoosh plugin for public consumption - Continue working on our service status panel - Continue working on auto-scaling of our build servers - Continue working on internal tooling to help automate team processes - Continue working on our plugin distribution channel architecture&lt;/p&gt;

&lt;p&gt;That concludes our status update for this week. Please note that plans scheduled for the future may change and we may shuffle them according to necessity or demand.&lt;/p&gt;

&lt;p&gt;We continue to welcome your feedback on Get Satisfaction.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Celebrate PhoneGap Day US 2013</title>
   
   <link href="http://phonegap.com/blog/2013/05/29/phonegap-day"/>
   <id>http://phonegap.com/blog/2013/05/29/phonegap-day</id>
   
   <updated>2013-05-29T23:20:02+00:00</updated>
   <content type="html">&lt;p&gt;We&amp;#8217;re excited to announce our 3rd Annual PhoneGap Day! On Friday July 19th, we&amp;#8217;re celebrating PhoneGap Day at &lt;a href='http://leftbankannex.com'&gt;The LeftBank Annex&lt;/a&gt; in Portland, Oregon.&lt;/p&gt;

&lt;p&gt;What&amp;#8217;s it all about? PhoneGap Day is one part conference and one part celebration where you&amp;#8217;ll meet and mingle with like-minded people interested in PhoneGap and mobile app development. You&amp;#8217;ll help us celebrate the &lt;a href='http://cordova.io'&gt;Apache Cordova&lt;/a&gt; community&amp;#8217;s achievements and recognize their hard work on each monthly release.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;ll have tons of speakers covering the latest on PhoneGap and PhoneGap Build, tools, apps, and more. You&amp;#8217;ll get to meet the PhoneGap team and connect with other PhoneGap developers from Google, Mozilla, Microsoft, and more.&lt;/p&gt;

&lt;p&gt;And of course, what&amp;#8217;s a PhoneGap event without some beer? We&amp;#8217;ll be serving a catered breakfast, lunch and snacks with plenty of beer to go around. We&amp;#8217;ve got a few tricks up our sleeve to make this event really special, including some limited edition PhoneGap swag that&amp;#8217;s being created especially for this event.&lt;/p&gt;

&lt;p&gt;&lt;img src='/uploads/blog/2013-05/pgday12.jpg' alt='' /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW THIS YEAR&lt;/strong&gt;&lt;br /&gt;You asked for it and you got it! We&amp;#8217;ve got pre-conference workshops on Thursday July 18th from 10:00-4:30pm. Choose between two tracks:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;PhoneGap Essentials Workshop&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beginner: Building your first PhoneGap app&lt;/li&gt;

&lt;li&gt;Advanced: Architecting PhoneGap apps&lt;/li&gt;

&lt;li&gt;God mode: Extending PhoneGap with Plugins and Embedding PhoneGap with CordovaView&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;PhoneGap Ecosystem Workshop&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn everything about Chrome Packaged Apps with Google and Cordova&lt;/li&gt;

&lt;li&gt;Learn about Windows Phone 8 tools and support for Cordova with Microsoft and community experts. Have a PhoneGap app? Find out how to migrate your PhoneGap app to the Windows Phone 8 store in a few hours.&lt;br /&gt;(More details coming soon!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TICKETS&lt;/strong&gt;&lt;br /&gt;For all you die-hards out there, we&amp;#8217;ve got some awesome deals: &lt;strong&gt;$25 Early Bird ticket&lt;/strong&gt; (until June 15th) or a &lt;strong&gt;$50 Workshop Combo ticket&lt;/strong&gt; including PhoneGap Day and your choice of workshop. We&amp;#8217;ve got limited seats in the workshops, so get your ticket quick!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://pgday13.eventbrite.com'&gt;Register for PhoneGap Day&lt;/a&gt; | &lt;a href='http://pgday.phonegap.com/us2013'&gt;Visit the PhoneGap Day website&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Can&amp;#8217;t make it to Portland in July? We&amp;#8217;re also hosting &lt;a href='http://pgday.phonegap.com'&gt;PhoneGap Day EU&lt;/a&gt; on September 24 in Amsterdam! Save the date and stay tuned for more info.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SPECIAL THANKS&lt;/strong&gt;&lt;br /&gt;Thanks to &lt;a href='http://www.kendoui.com/'&gt;Kendo UI&lt;/a&gt; for sponsoring the wifi.&lt;br /&gt;Big cheers to our major sponsors &lt;a href='http://blackberry.com'&gt;BlackBerry&lt;/a&gt;, &lt;a href='http://chrome.com'&gt;Google&lt;/a&gt;, &lt;a href='http://intel.com'&gt;Intel&lt;/a&gt;, &lt;a href='http://windowsphone.com'&gt;Microsoft&lt;/a&gt;, and &lt;a href='http://mozilla.org'&gt;Mozilla&lt;/a&gt; for their generous support.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>PhoneGap Day 2013</title>
   
   <link href="http://www.raymondcamden.com/index.cfm/2013/5/28/PhoneGap-Day-2013"/>
   <id>http://www.raymondcamden.com/index.cfm/2013/5/28/PhoneGap-Day-2013</id>
   
   <updated>2013-05-29T02:43:00Z</updated>
   <content type="html">Just sharing the news that another PhoneGap Day was announced - Friday, July 19th, in Portland, Oregon. Details here: &lt;a href=&quot;http://pgday.phonegap.com/us2013/&quot;&gt;http://pgday.phonegap.com/us2013/&lt;/a&gt;. Early bird tickets are a low, low 25 dollars. I went last year and thought it was great.  I definitely recommend it.

&lt;img src=&quot;http://www.raymondcamden.com/images/buildbot2013.png&quot; /&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/RaymondCamdensColdfusionBlog/~4/S_zF3GOKUUY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;
</content>
 </entry>
 
 <entry>
   <title>Windows Phone + Cordova Quick Tip</title>
   
   <link href="http://www.risingj.com/archives/474"/>
   <id>http://www.risingj.com/archives/474</id>
   
   <updated>2013-05-28T17:39:52Z</updated>
   <content type="html">When javascript doesn&amp;#8217;t seem to be working, I usually hack in a quick error handler. If you add this somewhere at the top of your html page, you should see any errors that occur listed in Visual Studio&amp;#8217;s output window. window.onerror = function(errMsg,fileName,ln) { window.external.Notify(&quot;Error : &quot; + errMsg + &quot;, In file : &quot; + fileName + &quot;, at ...
</content>
 </entry>
 
 <entry>
   <title>PhoneGap Online/Offline Tip</title>
   
   <link href="http://www.raymondcamden.com/index.cfm/2013/5/24/PhoneGap-OnlineOffline-Tip"/>
   <id>http://www.raymondcamden.com/index.cfm/2013/5/24/PhoneGap-OnlineOffline-Tip</id>
   
   <updated>2013-05-24T12:42:00Z</updated>
   <content type="html">A few months ago I wrote a blog post that talked about &lt;a href=&quot;http://www.raymondcamden.com/index.cfm/2013/3/18/Building-Robust-PhoneGap-Applications&quot;&gt;&quot;robust&quot;&lt;/a&gt; PhoneGap applications. Basically it was a look at the types of things you should consider to make your PhoneGap application more of an app and less of a wrapped web page.One of the main topics of that blog post was about handling connection status. PhoneGap gives you access to the type of connection the device has as well as events that let you respond to online and offline states. These are important features that (most likely) every single PhoneGap app should be using. 

I want to point out though a small issue with the code I shared. It isn't broke, but how I did things could be done slightly different. Consider this code block:

&lt;script src=&quot;https://gist.github.com/cfjedimaster/5190645.js&quot;&gt;&lt;/script&gt;

I want you to notice two things. I've got event listeners for my connection status. Then I have an immediate check. My thinking was, &quot;I want to know when things change in the future but I also need to know what's going on right now.&quot;

However, it turns out that this isn't actually necessary. If you add event listeners for the online/offline events in the main body load event (&lt;strong&gt;not the PhoneGap device ready&lt;/strong&gt;), then the appropriate event will be fired automatically.

If you read the docs for the events (&lt;a href=&quot;http://docs.phonegap.com/en/2.7.0/cordova_events_events.md.html#online&quot;&gt;http://docs.phonegap.com/en/2.7.0/cordova_events_events.md.html#online&lt;/a&gt;) closely you will see that they demonstrate using the body load event. What may not be clear from the docs though is that even though your connection may not change, the event really is fired for you. Here is an example that I've slightly modified from the docs.

&lt;script src=&quot;https://gist.github.com/cfjedimaster/5643739.js&quot;&gt;&lt;/script&gt;

Using this way of handling the events, I would not need a check in onDeviceReady. Thanks go to fellow Adobian &lt;a href=&quot;http://shazronatadobe.wordpress.com/&quot;&gt;Shazron&lt;/a&gt; for pointing this out.

So... do you &lt;i&gt;have&lt;/i&gt; to use this way of handling it? To be honest, I prefer my way. It is a bit more coding, but I'd rather not have onload event with logic and a ondeviceready. My way just &quot;feels&quot; better to me, but I reserve the right to change my mind in the next five minutes. ;)&lt;img src=&quot;http://feeds.feedburner.com/~r/RaymondCamdensColdfusionBlog/~4/PbQhBdxAiEk&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;
</content>
 </entry>
 
 
</feed>