Android
The Android application uses the built-in camera for barcode scanning. The actual scanning is done by another application called Barcode Scanner. This is a free application developed and maintained by ZXing, which is a project sponsored by Google.
Scanning barcodes with the camera is trickier than using a dedicated scanner, and it does require practice. But it does not require any additional hardware.