Is PhoneGap Right for You?
A friend of mine had to talk to members of his business about the potential of using PhoneGap to deliver mobile apps for their customers to the marketplace. In the discussion a number of objections came up and I wanted to present my responses to those objections. Keep in mind I don't work for PhoneGap or have any relationship with Adobe but I do have a tight relationship with Microsoft for native apps on devices having built a number of the top apps in the market place for windows phone.
The first argument was essentially this: When a new version of a device OS comes out ( say iOS on iPhone ) that the apps would all stop working until a new version of PhoneGap comes out... Really? That is like saying all the iPhone 4 apps wouldn't work on iPhone 5 until all the devs had to recompile and deploy all their apps. Now maybe NEW API's on the iPhone 5 wouldn't be available in PhoneGap until a new version came out but the old stuff would work fine. This applies to other the other platforms as well.
Secondly the objection was that there are alot of Native features or API's that are not available for use in PhoneGap. To be honest I sure there is some API's or features that are not available, however that being said there is no core functionality common across all three critical platforms (iOS, Android, WP7) that I know of. Further you could get all native and extend PhoneGap as well. Yes a high preformance 3D video game is not going to be built in PhoneGap however you could build a 3D model client using images servered up by a server well enough.
Lastly the objection was the UX (User eXperience) of apps using PhoneGap are not as good as Native Apps.
First a point of order about this last objection, my role at [wire] stone is as focused on immerging UX technologies, its is my lifes work as Principal UX Arhictect, however that being said, UX can be a balance of business and user needs other than just wrapping a digitial experience around a target demographic. Their can be more ROI on providing something that helps users now then a better UX later. Yes it is true that perfromance is not on par with native apps but in many cases users don't even notice.
Time to Market developement costs and ROI of quick deliver on 3 mutual exclusive platforms vs building a 3 native clients on the same said platform is much better using PhoneGap as a general rule which is build using common web based technologies (HTML, JavaScript, CSS). From a business standpoint it is better to build a good app for customers now with good UX and get something to them that helps then providing a nebulas native experience some ambiguous amount of time sometime in the future... also know as vaporware...
Really consider what you need todo as an app. If its a news reader, does this need to be a native app? Should the next version of Halo for Windows Phone be written in PhoneGap or as a Native App? You need to balance things out. Typically complex preformance hog tasks like image processing even if you can do them in javascript in PhoneGap is not the best plan as such but there is also the hybride application as well that would do some part natively like image processing and the rest in PhoneGap.
Answer the question, what is best for business? and usually the best solution is clear when you get all the facts about the business need in question.
~DavidJKelley
7 Comments
Jesse said
Great info. Thanks again!
Nate said
Thanks for the summary David. We have reached the same conclusions and it is nice to find that someone else sees it the same way.
Don Burnett said
I have some questions for you David.. No offense but your Microsoftness is showing through here..
I think you misunderstand PhoneGap quite a bit here..
1) This API is designed not as a replacement for NATIVE apps, but to simply provide a platform for HTML 5 mobile apps that support the FUNCTIONALITY of the HTML 5 Mobile Browser. PhoneGap Build will support creating native apps on many platforms (just not those of WP7 at the moment).
The point of this is not customization to a platform it is simply to provide across the board write once and provide the same functionality across all platforms. Sadly the Windows Phone mobile browser doesn't support WebSQL (SQLlite) or WebGL (because Microsoft said their are security issues. If you are supporting web standards and write ONCE and it handles the functionality you need across platforms it's a good solution.
2) It's misleading to say that PhoneGap doesn't fully support Windows Phone 7 and other APIs.. They use the Javascript notify type functionality just as WinJS does.. In fact in PhoneGAP apps because it's just like WinJS, Node.JS, JQuery mobile (name the JavaScript API) you can load the app into visual studio and customize for Windows by just adding these in if you like..
3) it's not designed to create an XNA game or a WebGL game, it's simply designed to create a MOBILE HTML 5 based app. Many companies today including some airlines are commited to mobile apps that just run from a web browser..
4) I already have integrated PhoneGap/Tiggr and Expression Blend for HTML and WP7 and Visual Studio together they are great tools that are not mutually exclusive..
I really think you are missing the point of this and the fact that we don't have to be mutually exclusive to get great performing apps. In fact METRO does very well at allowing the UI ports between these..
Let's be fair about our UX comparisons and make sure they have a good idea where this fitss here. There is a workflow here that is very complimentary and integrates what you are asking for here... Since we are in a world of web standards now we can now be non-brand specific and integrate new tools into an arsenal.. Don't miss the point of PhoneGap..
Don Burnett said
I'd also check out Microsoft's own Interoperability blog... Quoting from this blog so it's not just my opinion (SMILE)
http://blogs.msdn.com/b/interoperability/archive/2011/12/16/full-support-for-phonegap-on-windows-phone-is-now-complete.aspx
"Abu Obeida- 16 Dec 2011 4:02 PM
Congratulations to all the people involved in the PhoneGap community for the recent release of version 1.3 of their HTML5 open source mobile framework.
This release includes many new features, and you can find more details here. You may remember that we announced back in Sept that Microsoft was helping to bring Windows Phone support in PhoneGap: I am happy to say we can now check
this box!
We’re also pleased to note that all features in PhoneGap 1.3 are now supported for Windows Phone, as you can see on their site here.
"Also, beyond the core PhoneGap features, developers can enjoy a selection of PhoneGap plugins that support social networks - including Facebook, LinkedIn, Windows Live and Twitter - and a solid integration into Visual Studio
Express for Windows Phone.
We have also developed further plugins to give HTML5 developers a feel for Windows Phone’s unique features like Live Tile Update and Bing Maps Search.
Please check out Jesse MacFadyen’s blog, PhoneGap’s dev lead, on his experiences developing PhoneGap on Windows Phone.
For more technical details of using the framework, see Glen and Jesse’s technical walk thru blogs. For a quick a spin of what PhoneGap and Visual Studio allow you to do, see this WP7 and Android camera app created in 3 minutes! Bits are located here; plugins are here."
Don Burnett said
I'd also check out Microsoft's own Interoperability blog... Quoting from this blog so it's not just my opinion (SMILE)
http://blogs.msdn.com/b/interoperability/archive/2011/12/16/full-support-for-phonegap-on-windows-phone-is-now-complete.aspx
"Abu Obeida- 16 Dec 2011 4:02 PM
Congratulations to all the people involved in the PhoneGap community for the recent release of version 1.3 of their HTML5 open source mobile framework.
This release includes many new features, and you can find more details here. You may remember that we announced back in Sept that Microsoft was helping to bring Windows Phone support in PhoneGap: I am happy to say we can now check
this box!
We’re also pleased to note that all features in PhoneGap 1.3 are now supported for Windows Phone, as you can see on their site here.
"Also, beyond the core PhoneGap features, developers can enjoy a selection of PhoneGap plugins that support social networks - including Facebook, LinkedIn, Windows Live and Twitter - and a solid integration into Visual Studio
Express for Windows Phone.
We have also developed further plugins to give HTML5 developers a feel for Windows Phone’s unique features like Live Tile Update and Bing Maps Search.
Please check out Jesse MacFadyen’s blog, PhoneGap’s dev lead, on his experiences developing PhoneGap on Windows Phone.
For more technical details of using the framework, see Glen and Jesse’s technical walk thru blogs. For a quick a spin of what PhoneGap and Visual Studio allow you to do, see this WP7 and Android camera app created in 3 minutes! Bits are located here; plugins are here."
Don Burnett said
Check out my article on how to make an immersive browser HTML app with Windows Phone 7 Mango (7.5)
http://uxmagic.com/blog/post/2011/06/26/Hosting-an-HTML-App-in-Windows-Phone-7-Mango.aspx
Calling Windows Phone APIs from Javascript
if you need to call out to phone 7 api's from your javascript you can make calls like this:
window.external.notify("Email:don@uxmagic.com:Email from DonBurnett");
the syntax of the string is: taskname:param*n
the format for calls are:
window.external.notify(" Task Name : Paramter1 : Parameter2 : etc ");
currently supported tasks (subject to change):
Email : To Email : Subject
SystemTray : Boolean Value
EnableFrameRateCounter : Boolean Value
alert : message value : message box title
play : sound uri path
vibrate : hours : minutes : seconds
MarketplaceSearchTask : app id
Analytics : Parmeters * n
MarketplaceDetailTask : app id
WebBrowserTask : URL String
Don Burnett said
You might also find this codeplex HTML app framework DLL Helpful in doing this..
http://htmlappwp7.codeplex.com/releases/view/67979
Includes Silverlight library dll for the HTMLAppHostFramework which includes the AppHostShell, IsolatedStoargeResourceHelper and the TaskProcessor.