Experiment with PhoneGap – Awesome

The backstory is that I created the Mecanum Wheel Rover with a web interface with intention that it can be cross platform.  Every phone/mobile can view the web right?  Then there are those wonderful APIs for accessing device hardware such as accelerometers and compass so they can be useful inputs too.  Therein lies the problem, other than iOS 4.3+, there’s almost no support for the DeviceMotion APIs, it is not even in Android 2.3!

I made a ‘vague commitment’ (hehe) to provide an App that would use the accelerometer to drive the Rover.  Little did I know how annoying it was that almost all code examples/tutorials online are made irrelevant by the ever changing Android API set.  Almost giving up,  I ran into ‘PhoneGap‘.

PhoneGap is a mobile framework that allows use of HTML+CSS+Javascript to be built into a ‘native app’, for iOS, Android, Blackberry, Palm, Windows Mobile/Phone, Symbian… yes it targets them all!  Sure there’ll be some missing features here and there but WOW!

To keep it short, the wow factor continues with :-

  • There’s documentation!  DECENT DOCUMENTATION!
  • There are code examples!  WORKING CODE EXAMPLES!
  • Comprehensive get started tutorial for Android/iOS.
  • It took me less than 30 minutes from download to simple code running on the phone that remote controlled the Rover!  Seriously, I think the iOS/Android SDKs take longer to install.  (Oh cheating… I had the SDK installed already).

It looks like it is building up a decent user base, go check it out.

Oh and here’s the quick & nasty app in action :

3 thoughts on “Experiment with PhoneGap – Awesome”

  1. Great experiment! I am wondering though, how did you managed to communicate with the rover. Did you use Wifi/Bluetooth client-server model, or did you just use web requests to a webserver? I am pretty sure phonegap doesn’t have Wifi/Bluetooth support.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.