Native Mobile Apps are dead, Long Live Native Mobile Apps

by derek 27. September 2011 02:24

I would love to make FieldMetrix device agnostic using a web application that can target multiple device platforms, as opposed to the current approach where native applications are required for each target (device) platform. I am passionate about FieldMetrix’s codebase being elegant and efficient; no doubt the result of twenty years as a professional developer who has produced thousands of lines (of wholly unnecessary) code. Of course the smaller it is, the easier it is to test, extend, maintain and trouble-shoot. I derive a measure of satisfaction from the state of our codebase and I don’t want to jeopardize that by writing legions of Javascript code which can’t be tested at compile time. With these self imposed standards in mind I periodically investigate the “state” of HTML5 to determine whether it is finally mature enough that it will meet my needs.

cartoon_5918

100% data integrity is critical for us; our native Windows Mobile application deals with intermittent connectivity, high latency and connection dropouts without missing a beat. So I go into full ‘tech mode’ researching HTML5 and it’s offline storage capabilities. This is fueled by the enthusiasm of the HTML5 community and the promising samples on sites like HTML5Rocks. Perhaps this time I will find a best practice approach that will meet the needs of a mobile web app for FieldMetrix? Unfortunately the excitement is always short lived as I discover the numerous caveat’s and pitfalls associated with an actual real world implementation.

Mobile Web vs Native Application Functionality


For applications that focus exclusively on text-based data capture the mobile web and HTML5 offline storage is a very promising one-two punch combination. Using a mobile web application expands the number of platforms your application can target, and HTML5 offline storage can ensure some level of data integrity by caching results when connectivity is compromised. Where the path forward becomes more complicated is when your application requires deep integration with the device's peripherals such as barcode scanning, signature and image capture as well as GPS location information.

Sure you can access some of these device capability features using HTML5; for example images using the 'canvas' element; however there are a number of issues:

  • accessing different device platform capabilities often requires platform specific tweaks
  • robust caching of non text data capture such signatures and images would require a lot of work (for each platform)
  • detecting the online/offline is often not reliable and leads to a whole slew of issues

Full Circle


Inevitably I find myself coming full circle. The efficiency of a single code base, potentially deployable to a multitude of device platforms is hugely appealing but at what cost? Firstly the "store and forward" capabilities of non-text data capture will be compromised. Secondly the eccentricities of different device platforms will require considerable massive coding effort. Finally you're guaranteed to be chasing moving goal posts as web based access to phone capabilities improve - and you can bet these gains will require platform specific tweaks too!

Tags:

Windows Mobile | HTML5

Pingbacks and trackbacks (1)+

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Powered by BlogEngine.NET 2.5.0.6