Swiftpack.co - vinodiOS/SwiftQRCodeScanner as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by vinodiOS.
vinodiOS/SwiftQRCodeScanner 1.1.2
An easy QR code reader for iOS written in Swift
⭐️ 49
🕓 2 weeks ago
.package(url: "https://github.com/vinodiOS/SwiftQRCodeScanner.git", from: "1.1.2")


QR Scanner


  • Easy to use
  • Customize everything
  • Scan QR Code from saved photos


Without camera and flash

With camera and flash


To run the example project, clone the repo, go to Example folder and open SwiftQRScanner.xcworkspace.


  • iOS 10.0
  • Xcode 11.0+
  • Swift 5


Using CocoaPods

SwiftQRScanner is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'SwiftQRScanner', :git => ‘https://github.com/vinodiOS/SwiftQRScanner’

Manual Installation

Download the latest version ,then unzip & drag-drop the Classes folder inside your iOS project. You can do that directly within Xcode, just be sure you have the copy items if needed and the create groups options checked.

How to use

Import SwiftQRScanner module and confirm to the QRScannerCodeDelegate protocol.

import SwiftQRScanner

class ViewController: UIViewController {

extension ViewController: QRScannerCodeDelegate {

Create instance of SwiftQRScanner to scan QR code.

let scanner = QRCodeScannerController()
scanner.delegate = self
self.present(scanner, animated: true, completion: nil)

To use more features like camera switch, flash and many other options use QRScannerConfiguration:

var configuration = QRScannerConfiguration()
configuration.cameraImage = UIImage(named: "camera")
configuration.flashOnImage = UIImage(named: "flash-on")
configuration.galleryImage = UIImage(named: "photos")

let scanner = QRCodeScannerController(qrScannerConfiguration: configuration)
scanner.delegate = self
self.present(scanner, animated: true, completion: nil)

You can use following QRScannerConfiguration properties:

Property Name Default Value Description
title "Scan QR Code" Title of SwiftQRCodeScanner
hint "Align QR code within frame to scan" Hint for QR Code scan suggestion
uploadFromPhotosTitle "Upload from photos" Button title for pick QR Code from saved photos
invalidQRCodeAlertTitle "Invalid QR Code" Title for Alert if invalid QR Code
invalidQRCodeAlertActionTitle "OK" Title for Action if invalid QR Code
cameraImage nil Image for camera switch button
flashOnImage nil Image for flash button
length 20.0 Length of QR Code scanning frame
color green Color of QR Code scanning frame
radius 10.0 Corner Radius of QR Code scanning frame
thickness 5.0 Corner Thickness of QR Code scanning frame
readQRFromPhotos true Hide/show "Upload From photos" button
cancelButtonTitle "Cancel" Title for cancel button
cancelButtonTintColor nil Color for cancel button

And finally implement delegate methods to get result:

func qrScanner(_ controller: UIViewController, scanDidComplete result: String) {

func qrScannerDidFail(_ controller: UIViewController, error: QRCodeError) {

func qrScannerDidCancel(_ controller: UIViewController) {
    print("SwiftQRScanner did cancel")


Vinod, vinod.jagtap@hotmail.com


SwiftQRScanner is available under the MIT license. See the LICENSE file for more info.


Stars: 49
Last commit: 2 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

UI Improvements
4 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics