Proposal to add Barcode Scanning API to Sysapps

In a discussion on the DAP list, I made the following points about the deficiencies in the current proposal for the getUserMedia API for the purpose of a Barcode Scanner app, and further requirements that are likely to needed beyond a getUserMedia+JavaScript solution. I think we may be able to address some of the getUserMedia gaps (as I think getUserMedia currently as a general purpose camera access API is pretty limited, and we may need these enhancements to it anyway). But for the other requirements, I think we still need a specific Barcode Scanner API. So I made the suggestion that the Sysapps charter may consider a Barcode Scanner API since it appears that the number of new APIs proposed does not rise to the level of making it worthwhile to recharter DAP, to include this new API.

Here are the functional requirements that I think will benefit from a specific Barcode Scanning API:
- getUserMedia gaps
  - autofocus
  - macro mode (related to ability to focus, and to typical usage when scanning barcodes)
  - auto flashlight: when it's dark, we need to be able to control the camera flashlight to make it possible to resolve a code. This needs to occur automatically or under control of the app.
- resolution of all code types: commercial grade code reader apps are capable of resolving more code types (at least currently) as compared to JavaScript libraries, which are typically open source and contribution-driven
- reliability: commercial grade code readers have high reliability - comparatively, open-source nature code resolution libraries may not be as fully implemented or tested

These issues can affect the public's perception of barcode reading apps. The last two may be addressed over time, but at least the first three probably need specific support in any API used for barcode scanning (i.e. an API such as getUserMedia that may be used for barcode scanning). In an API specifically intended to support Barcode Scanning these may be inherent functions of the software which does the scanning.

If all we have though is the simple ability to attach the camera feed to a video element and read the data off a canvas, this may not be enough for reliable operation. In devices which support dedicated (native) code reader apps, it should still be possible for the user to fall back to use of those apps if Web-based readers fail (though this is not a good user experience). But in Web-based devices (with little or no native app support), it will be important to provide a more robust ability to read barcodes. So the goal, to achieve a good user experience in any context, is to develop a Barcode Scanning API that can be used in browsers and in Web-based devices.

Thanks,
Bryan Sullivan

Received on Sunday, 27 May 2012 17:31:22 UTC