QR Code Scanner App for iPhone

A QR code and barcode scanner for iPhone with batch capture, persistent history, and broad format coverage — QR, Aztec, PDF417, Data Matrix, plus EAN, UPC, Code 128 and other linear barcodes. The recognizer runs on-device using Apple's Vision framework. No account, no cloud upload, no tracking of scanned content.

QR + 12 barcode formats Batch capture Persistent history On-device
When this beats the built-in Camera: batch scanning a list of codes, keeping a searchable history, decoding 1D retail barcodes (EAN-13, UPC-A) that Camera handles less reliably, and reading codes from a saved photo or PDF. For a one-off QR tap on a restaurant menu, the iPhone Camera is faster and you don't need this page.
Download on the App Store

What does a dedicated QR code scanner app do that the iPhone Camera doesn't?

The iPhone Camera reads QR codes since iOS 11 and Control Center has a built-in Code Scanner since iOS 12. For a single QR — joining Wi-Fi, opening a restaurant menu, paying a parking meter — the Camera is the right tool and you don't need a separate app. A dedicated QR code scanner app earns its place when the job is more than one tap: batch-capturing a sequence of codes, keeping a searchable history of every code you've decoded, reading barcode formats Camera handles less reliably (EAN-13, UPC-A, Code 128 on tight retail labels), or pulling a code out of a saved photo or PDF page.

ScanLens uses Apple's Vision framework for recognition — the same engine the system Camera uses, so format coverage matches. What sits on top is the workflow: batch mode that keeps capturing without dismissing the viewfinder, a persistent decoded-value history with timestamps and thumbnails, photo-import for codes inside images, and integration with the ScanLens document library so a scanned shipping label, an ISBN off a book spine, or an event ticket QR ends up next to the documents they relate to.

Every barcode format ScanLens recognizes

ScanLens reads two broad families of code. 2D codes store URLs, plain text, contact cards, Wi-Fi credentials, or arbitrary binary payloads in a square or rectangular pattern. The supported set: QR Code (the universal one), Aztec (transit and airline tickets), PDF417 (US driver's licenses, FedEx labels, boarding passes), and Data Matrix (industrial parts, pharmaceutical packaging, postal labels). All four are supported by Apple's Vision framework, so they decode at the same accuracy as the system Camera.

1D linear barcodes are the rows of vertical stripes found on retail packaging, library books, shipping labels, and inventory tags. ScanLens covers EAN-8 and EAN-13 (international retail), UPC-A and UPC-E (North American retail), Code 39 (industrial), Code 93 (logistics), Code 128 (shipping and inventory), Codabar (libraries and blood banks), and ITF-14 (shipping case packs). The 1D group benefits most from the dedicated app: linear barcodes need tighter framing and steady focus than QR, and the dedicated viewfinder with edge guides gets cleaner reads than Camera's general-purpose detection.

Two things the app does not do: it doesn't generate codes (use the Shortcuts app or any free QR generator), and it doesn't decode obscure proprietary formats like Maxi Code or Han Xin Code that aren't in Apple's Vision API. If a format isn't on the list above, ScanLens won't see it.

The four things ScanLens does with a scanned code

Decode and open

Aim the camera at the code; the value appears immediately. URLs open the browser on tap (with a confirm dialog — no surprise navigations). Plain text shows in a result panel with copy and share. Contact cards (MeCard, vCard) offer Add to Contacts. Wi-Fi credentials offer Join Network. The decode runs in real time at 30+ fps on iPhone 12 or newer.

Batch capture

Tap into batch mode and the viewfinder stays open as you sweep across multiple codes. Each new code adds a line to a running list with a thumbnail and the decoded value. End the session when done. Useful for inventory counts, conference badge check-ins, library shelf cataloging, or sweeping the ISBNs off a stack of books for an import into Goodreads or Library Thing.

Persistent history

Every decoded code lands in a history view with the value, format, timestamp, and a small captured-frame thumbnail. Re-open a saved URL weeks later, copy a previously decoded text, or look up which conference badge belonged to which contact. History lives in the ScanLens library on the device; standard iOS Files sync can carry it through iCloud Drive if you want a backup.

Scan from a saved photo

Photo-import takes a still image — a screenshot of a friend's QR, a poster you photographed without scanning at the time, a code embedded in a PDF page. The decoder runs over the image as if it were a live frame and pulls the value out. Useful when the code is no longer in front of you or when you want to keep the source image alongside the decoded text in your library.

How to scan a QR or barcode in ScanLens, step by step

First-time setup is one Camera permission. From there, scanning a single code is a tap-aim-decode, and a batch run is a tap, sweep, tap-done.

Step Action Tips
1 Open ScanLens and pick the QR & barcode mode Mode 03 in the home grid; permission prompt the first time
2 Aim at the code, hold steady Linear barcodes need a tighter frame than QR; brace your elbow
3 Read the decoded value in the result panel URL: tap to open. Text: tap copy. Contact: tap Add
4 (Optional) Switch to batch mode Viewfinder stays open; codes pile into a list as you sweep
5 Review the session and save End-of-session screen lets you delete duplicates or wrong reads
6 Find it later in history History is searchable by decoded text and filterable by format

QR and barcode jobs that beat using the iPhone Camera

Event check-in and ticketing

Conference badges, festival wristbands, theater tickets. Batch mode keeps the viewfinder open as a queue of attendees walks past — each badge scan appends to the list. History gives a timestamped roster afterwards. Codes scanned: Aztec (transit-style tickets), PDF417 (boarding-pass-style), QR (most event apps).

Inventory and stocktake

Sweep a shelf or stockroom in batch mode. Each item's EAN-13, UPC-A, or Code 128 lands in the list. Export the session as a CSV to share with the inventory spreadsheet. No keyboard typing; the iPhone is the only device on the warehouse floor.

Library and book cataloging

Personal libraries, school collections, classroom sets. Scan the ISBN-13 barcode off the back of each book in batch mode; export the list to Goodreads, LibraryThing, a school inventory CSV, or Apple Notes. Includes Codabar for libraries that still use legacy borrower IDs.

Healthcare and pharmacy

Data Matrix is the GS1 standard for pharmaceutical packaging. Decode lot numbers and expiration dates off prescription bottles or vaccine vials. The on-device recognizer matters here: medication identifiers shouldn't ride to a third-party server.

Shipping and logistics

PDF417 and Code 128 on courier labels — FedEx, UPS, DHL, USPS. Scan the label, decode the tracking number, paste into the carrier's tracking page. For receivers verifying inbound shipments or warehouse staff sweeping a pallet of boxes in batch.

Frequently Asked Questions

Doesn't the iPhone Camera already scan QR codes?

Yes — the built-in Camera app reads QR codes since iOS 11 and Control Center has a dedicated Code Scanner since iOS 12. For one-off QR scans (Wi-Fi join, restaurant menu, link), Camera is the right tool. A dedicated QR scanner like ScanLens is useful when you need batch scanning of several codes in a row, persistent history of every code you scanned, broader barcode format support (EAN-13, UPC-A, Code 128, PDF417, Data Matrix), or you want the scanned values to sit alongside your document library instead of disappearing after the tap.

Which barcode formats does ScanLens recognize?

QR Code, Aztec, PDF417, Data Matrix (2D); EAN-8, EAN-13, UPC-A, UPC-E, Code 39, Code 93, Code 128, Codabar, ITF-14 (1D linear). The recognizer is Apple's Vision framework, the same engine the system Camera uses, so format coverage matches iOS. Two formats Camera handles slightly better than third-party apps: live AR overlay highlighting and zero-tap URL opening. ScanLens trades those off for batch capture and history.

Does ScanLens upload the scanned code to a server?

No. Recognition runs locally on the iPhone using Apple's Vision framework. The image of the code, the decoded value, and the saved history all stay on the device. If the QR code is a URL and you tap it, your browser will fetch the URL — that's a normal web request, not an upload of the code itself. There is no ScanLens account and no analytics on individual scan content.

Can I scan QR codes from a saved photo or screenshot?

Yes. Open the QR mode in ScanLens, switch to the photo-import option, pick the image from Photos or Files. The decoder reads the code from the static image just like from a live camera frame. Useful for screenshots someone texted you, codes embedded in PDFs, or pictures of posters taken without scanning at the time.

Can I batch-scan many codes in one session?

Yes — that's the main reason to use a dedicated scanner instead of Camera. Batch mode keeps the viewfinder open and captures each new code into a list. Useful for inventory counts (scan every item on a shelf), event check-ins (scan attendee badges in a row), or library cataloging (scan ISBN barcodes off book spines). The session ends when you tap done; the full list saves to history.

What does the scan history actually store?

Each entry stores the decoded value (URL, plain text, contact card, Wi-Fi credentials), the format (QR, EAN-13, etc.), the timestamp, and a small thumbnail of the captured frame. You can re-open a URL from history, copy any decoded text, share, or delete. History lives in the ScanLens library on the device — iCloud Drive sync optional through standard Files integration.

Ready for a real QR scanner on iPhone?

Download ScanLens free. QR, Aztec, PDF417, Data Matrix, EAN, UPC, Code 128 and the rest — batch mode, persistent history, recognition on-device.

Download on the App Store