I have been looking for a good barcode scanner component for iOS. Since barcode is everywhere in our lives, it makes sense to use the phone as a scanner to interact with the physical world. There are two types of barcode scanners for the iOS (or Android) devices.
The first type is to use the camera on the device as a scanner. The camera takes a picture of the barcode, and an image processing algorithm analyzes it and makes sense of it. This is a simple idea, but to do this fast and reliably, you need to spend many hour fine tune your camera image capturing parameters and barcode recognition algorithms. The big upside of this approach is the camera can recognize 2-D barcodes like the QR code, which contains much more information than the traditional 1-D barcodes. The down side, however, is that cameras on mobile devices are typically slow to focus in close-up distance, and performs poorly when the light is dim. That makes camera-based solutions slow (i.e., takes a few seconds to scan a code). Here are some commercially available camera-based barcode scanner SDKs available on the iOS:
Strangely, none of those SDKs can recognize PDF417 barcodes, which is a 2-D barcode format widely used on airline tickets and driver's licenses.
The second type is to use a real laser scanner as attachment to the mobile device. This approach adds bulk to the device and is much more expensive than the built-in camera. It also does not read 2-D barcodes such as PDF417 and QR. However, it can scan 1-D barcodes in a spilt of s second under very poor lighting conditions. That makes them excellent choices for applications that require a lot of scanning (e.g., to categorize a home DVD collection). Here are some vendors in this space. They all provide SDKs for applications to access their hardware.