Swiftpack.co -  dmrschmidt/QRCode as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
A QRCode Generator in Swift
.package(url: "https://github.com/dmrschmidt/QRCode.git", from: "1.1.0")

QRCode - A QR Code Generator in Swift

Build Status Carthage compatible Swift Package Manager compatible

A simple QR code image generator to use in your apps, written in Swift 5.

More related iOS Controls

You may also find the following iOS controls written in Swift interesting:


  • use SPM: add https://github.com/dmrschmidt/QRCode and set "Up to Next Major" with "1.0.0"
  • use carthage: github "dmrschmidt/QRCode", ~> 1.0.0
  • use cocoapods: pod 'SimpleQRCode', '~> 0.6.0'


You can create a QRCode from either (NS)Data, (NS)String or (NS)URL:

// create a QRCode with all the default values
let qrCodeA = QRCode(data: myData)
let qrCodeB = QRCode(string: "my awesome QR code")
let qrCodeC = QRCode(url: URL(string: "https://example.com"))

To get the UIImage representation of your created qrCode, simply call it's image method:

let myImage: UIImage? = try? qrCode.image()

If you provide a desired size for the output image (see Customization below), this method can throw, in case the desired image size is too small for the data being provided, i.e. some pixels would need to be omitted during scaling.

There is an alternative attribute unsafeImage accessible, which will simply return nil in these cases. If you never specify any custom size however, you could use unsafeImage instead, since the image will automatically pick the ideal size.

To show the QRCode in a UIImageView, and if you're a fan of extensions, you may want to consider creating an extension in your app like so:

extension UIImageView {
    convenience init(qrCode: QRCode) {
        self.init(image: qrCode.unsafeImage)


A QRCode image can be customized in the following ways:

// As an immutable let, by setting all up in the respective constructors.
// This is the recommended approach.
let qrCode = QRCode(string: "my customized QR code",
                    color: UIColor.red,
                    backgroundColor: UIColor.green,
                    imageSize: CGSize(width: 100, height: 100),
                    scale: 1.0,
                    inputCorrection: .medium)

// As a mutable var, by setting the individual parameters.
var qrCode = QRCode(string: "my customizable QR code")
qrCode.color = UIColor.red // image foreground (or actual code) color
qrCode.backgroundColor = UIColor.blue // image background color
qrCode.size = CGSize(width: 300, height: 300) // final scaled image size
qrCode.scale = 1.0 // image scaling factor
qrCode.inputCorrection = .quartile // amount of error correction information added


See it live in action

SoundCard lets you send postcards with audio messages.

QRCode is used to place a scannable code, which links to the audio message, on postcards sent by SoundCard.

Check it out on the App Store.



Stars: 42
Last commit: 3 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

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