A better way to operate QR Code in Swift, support iOS, macOS, watchOS and tvOS.

Overview

Compatible with all Platforms

EFQRCode is a lightweight, pure-Swift library for generating stylized QRCode images with watermark or icon, and for recognizing QRCode from images, inspired by qrcode. Based on CoreGraphics, CoreImage, and ImageIO, EFQRCode provides you a better way to handle QRCode in your app, no matter if it is on iOS, macOS, watchOS, and/or tvOS. You can integrate EFQRCode through CocoaPods, Carthage, and/or Swift Package Manager.

中文介绍

Examples

Demo Projects

App Store

You can click the App Store button below to download demo, support iOS, tvOS and watchOS:

You can also click the Mac App Store button below to download demo for macOS:

Compile Demo Manually

To run the example project manually, clone the repo, demos are in the 'Examples' folder, remember run command sh Startup.sh in terminal to get all dependencies first, then open EFQRCode.xcworkspace with Xcode and select the target you want, run.

Or you can run the following command in terminal:

git clone [email protected]:EFPrefix/EFQRCode.git; cd EFQRCode; sh Startup.sh; open 'EFQRCode.xcworkspace'

Requirements

Version Needs
1.x Xcode 8.0+
Swift 3.0+
iOS 8.0+ / macOS 10.11+ / tvOS 9.0+
4.x Xcode 9.0+
Swift 4.0+
iOS 8.0+ / macOS 10.11+ / tvOS 9.0+ / watchOS 2.0+
5.x Xcode 11.1+
Swift 5.0+
iOS 8.0+ / macOS 10.11+ / tvOS 9.0+ / watchOS 2.0+
6.x Xcode 12.0+
Swift 5.1+
iOS 9.0+ / macOS 10.10+ / tvOS 9.0+ / watchOS 2.0+

Installation

CocoaPods

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

pod 'EFQRCode', '~> 6.1.0'

Then, run the following command:

$ pod install

Carthage

IMPORTANT: this workaround is necessary for Carthage to somewhat work in Xcode 12.

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate EFQRCode into your Xcode project using Carthage, specify it in your Cartfile:

github "EFPrefix/EFQRCode" ~> 6.1.0

Run carthage update to build the framework and drag the built EFQRCode.framework into your Xcode project.

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the Swift compiler.

Once you have your Swift package set up, adding EFQRCode as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/EFPrefix/EFQRCode.git", .upToNextMinor(from: "6.1.0"))
]

Quick Start

1. Import EFQRCode

Import EFQRCode module where you want to use it:

import EFQRCode

2. Recognition

A String Array is returned as there might be several QR Codes in a single CGImage:

if let testImage = UIImage(named: "test.png")?.cgImage {
    let codes = EFQRCode.recognize(testImage)
    if !codes.isEmpty {
        print("There are \(codes.count) codes")
        for (index, code) in codes.enumerated() {
            print("The content of QR Code \(index) is \(code).")
        }
    } else {
        print("There is no QR Codes in testImage.")
    }
}

3. Generation

Create QR Code image, basic usage:

Parameter Description
content REQUIRED, content of QR Code
size Width and height of image
backgroundColor Background color of QRCode
foregroundColor Foreground color of QRCode
watermark Background image of QRCode
if let image = EFQRCode.generate(
    for: "https://github.com/EFPrefix/EFQRCode",
    watermark: UIImage(named: "WWF")?.cgImage
) {
    print("Create QRCode image success \(image)")
} else {
    print("Create QRCode image failed!")
}

Result:

4. Generation from GIF

Use EFQRCode.generateGIF to create GIF QRCode.

Parameter Description
generator REQUIRED, an EFQRCodeGenerator instance with other settings
data REQUIRED, encoded input GIF
delay Output QRCode GIF delay, emitted means no change
loopCount Times looped in GIF, emitted means no change
if let qrCodeData = EFQRCode.generateGIF(
    using: generator, withWatermarkGIF: data
) {
    print("Create QRCode image success.")
} else {
    print("Create QRCode image failed!")
}

You can get more information from the demo, result will like this:

5. Next

Learn more from User Guide.

Recommendations

  1. Please select a high contrast foreground and background color combinations;
  2. To improve the definition of QRCode images, increase size, or scale up using magnification (instead);
  3. Magnification too high/size too large/contents too long may cause failure;
  4. It is recommended to test the QRCode image before put it into use;
  5. You can contact me if there is any problem, both Issue and Pull request are welcome.

PS of PS: I wish you can click the Star button if this tool is useful for you, thanks, QAQ...

Other Platforms/Languages

Platforms/Languages Link
Objective-C https://github.com/z624821876/YSQRCode
Java https://github.com/SumiMakito/AwesomeQRCode
JavaScript https://github.com/SumiMakito/Awesome-qr.js
Kotlin https://github.com/SumiMakito/AwesomeQRCode-Kotlin
Python https://github.com/sylnsfar/qrcode

Contributors

This project exists thanks to all the people who contribute. [Contribute]

PS: We use QRCodeSwift to generate QR code on watchOS, thanks to ApolloZhu.

Donations

If you think this project has brought you help, you can buy me a cup of coffee. If you like this project and are willing to provide further support for it's development, you can choose to become Backer or Sponsor in Open Collective.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Thanks for your support, 🙏

Thanks

Awards

Apps using EFQRCode

Other

Part of the pictures in the demo project and guide come from the internet. If there is any infringement of your legitimate rights and interests, please contact us to delete.

Contact

Email: [email protected]

License

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

Comments
  • CIFilter(name:

    CIFilter(name: "CIQRCodeGenerator") 方法崩溃

    您好:我在使用EFQRCode时,在真机器iPhone X以上机型中:CIFilter(name: "CIQRCodeGenerator") 方法会崩溃,在真机器iPhone X以下,及iPhone 8 等,系统版本均为iOS13.1.3最新的,方法会无缘无故崩溃掉.请帮忙分析以下.谢谢

    wontfix 
    opened by 472125266 14
  • Carthage installation problem

    Carthage installation problem

    Check List

    Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

    • [ X] I have read the README.md, but there is no information I need.
    • [ X] I have searched in existing issues, but did find a same one.

    Issue Description

    Description

    Since version 5, the library cannot be installed using Carthage. Searching for the returned error on the internet, I got many results back but all solutions don't work. This is the returned error:

    A shell task (/usr/bin/env git checkout --quiet 122809d12f0a3ed8323d2e6b3ddc7ec107a6afc9 (launched in /Users/project/Carthage/Checkouts/EFQRCode/Examples/3rd/SnapKit)) failed with exit code 128: fatal: reference is not a tree: 122809d12f0a3ed8323d2e6b3ddc7ec107a6afc9

    Reproduce

    Add this to the Cartfile and run carthage update:

    github "EFPrefix/EFQRCode"

    Pinning a version also doesn't work. The only thing that works for me is using version 4 from your personal github account:

    github "EyreFree/EFQRCode" ~> 4.3.0

    Other Comment

    Tested on multiple devices, same result.

    Thanks for this great library!

    opened by abdulhaq-e 5
  • iOS 12 impossible to generate QR code.

    iOS 12 impossible to generate QR code.

    I am using this lib to generate qr codes. But for iOS 12 it always fails to generate qr code.

    After some investigation i found out that in iOS 12 filter CIFilter(name: "CIQRCodeGenerator") always return nil.

    opened by OlegGordiichuk 5
  • EFUIntPixel init?(color: CGColor)  always return nil

    EFUIntPixel init?(color: CGColor) always return nil

    Hi, In EFUIntPixelr.swift Line 66, it will always return nil when init by CGColor. Thus, function CGImage.binarization() will not be called. It's weird to see this useless function and initializer.

    bug 
    opened by vin-zhou 5
  • Support generating barcode type CICode128BarcodeGenerator

    Support generating barcode type CICode128BarcodeGenerator

    Is it possible to generate CICode128BarcodeGenerator on watchOS? CIFilter is not available and I don't want to create barcode on the iPhone and send it later to watch. Is it possible with EFQRCode?

    opened by zalewskise 4
  • generate can't be read by some qrcode reader(quickMark)

    generate can't be read by some qrcode reader(quickMark)

    as title

    code:

            if   let tryCGImage = EFQRCode.generate(
                content: "FCYKrciaHgodSKn3baKuPzas0k2PQJjI",
                size: EFIntSize(width: 240, height: 240)
                ) {
                let image = UIImage(cgImage: tryCGImage)
                qrcodeImageView?.image = image
                qrcodeImageView?.contentMode = .center
            }
    

    screen shot 2017-06-08 at 14 10 56

    opened by tentenlee100 4
  • V6 API Migration

    V6 API Migration

    See V6 API Announcement for details

    • [x] Migrate Playgrounds
    • [x] Migrate watchOS tests
    • [x] Migrate other XCTests
    • [x] Migrate demo projects
    • [ ] Produce migration guide
    • [x] Migration demo videos
    example 
    opened by ApolloZhu 3
  • [Breaking Changes] New v6 API for Swift and ObjC

    [Breaking Changes] New v6 API for Swift and ObjC

    See V6 API Announcement for details

    • Enable chaining methods for builder pattern
      • Mostly automatically migrate-able:
        • Use control + option + command + F to apply all fix-its in scope
        • Need to manually update EFQRCodeMode.none to EFQRCodeMode?.none, i.e. nil
        • Need to manually update recognition code to handle empty array instead of handling optional and/or empty array
      • Variables are now public for old, non-chaining behavior
        • Use EFQRCodeGenerator.with<T>(_: ReferenceWritableKeyPath<Self, T>, _: T) -> Self to set property directly and chain invocations
      • Old APIs (EFQRCode+Migration-v6.swift) are deprecated, and should be marked as obsoleted/unavailable with v7 release, and the file completely deleted with v8 release.
    • Objective-C Support (closes #92)
      • EFQRCodeGenerator, EFQRCodeRecognizer are now equally available in Swift/ObjC, and EFQRCode will be Swift only
      • Added unit tests to ensure API availability
    • EFUIntPixel appears to be not an active part of the existing public API, so it will no longer be
      • Note: this will most likely resurface in v7?
    • Officially drop pathToSave from GIF generation API
    opened by ApolloZhu 3
  • Carthage update failure

    Carthage update failure

    Hi, I'm trying to install the framework via Carthage but i'm receiving the following error:

    error: compiling for watchOS 2.0, but module 'swift_qrcodejs' has a minimum deployment target of watchOS 6.1:

    my cartfile: github "EFPrefix/EFQRCode" ~> 5.1.6

    Command I'm using Carthage update EFQRCode --platform watchOS

    bug help wanted wontfix 
    opened by rafabertholdo 3
  • In Xcode 12.2 using swift package with library 6.0.0, compiler issues warning

    In Xcode 12.2 using swift package with library 6.0.0, compiler issues warning

    Issue Description

    After adding EFQRCode using Xcode 12.2 swift packages, the package manager reports a warning for 2 files. The two plist files are not handled.

    Showing All Messages found 2 file(s) which are unhandled; explicitly declare them as resources or exclude from the target .../EFQRCode/Source/info-tvos.plist .../EFQRCode/Source/info.plist

    Description

    The warning is produced during the Resolve Package Graph step.

    Reproduce

    In any project, running inside Xcode 12.2, File->Swift Packages->Add Package Dependency enter EFPrefix/EFQRCode with a version of 6.0.0 Compile the project for the warning. It will occur before the compilation of the project starts.

    enhancement 
    opened by Dlemex 2
  • No such module 'EFQRCode' for watchOS target through SPM

    No such module 'EFQRCode' for watchOS target through SPM

    Check List

    Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

    • [x] I have read the README.md, but there is no information I need.
    • [x] I have searched in existing issues, but did find a same one.

    Issue Description

    I just followed the Readme instruction and installed through SwiftPM, but when I try to use it with

    import EFQRCode

    I get that error

    No such module 'EFQRCode'

    I'm trying to use it on a WatchOS only app.

    opened by jlubeck 2
  • 生成二维码时,选择相册里的gif图作为水印图片,不能生成gif图片

    生成二维码时,选择相册里的gif图作为水印图片,不能生成gif图片

    检查清单

    • [x] 我已阅读 README.md,但没找到我需要的信息。
    • [x] 我已查看 已知的问题,但没有相似的提问/请求。

    问题描述

    选择相册里的gif图作为水印图片,EFImage为normal成了普通照片

    展开讲讲

    在从相册里选择照片的didFinishPickingMediaWithInfo回调方法里, if let imageUrl = info[.referenceURL] as? URL, let asset = PHAsset.fetchAssets(withALAssetURLs: [imageUrl], options: nil).lastObject { images = selectedAlbumPhotosIncludingGifWithPHAssets(assets: [asset]) } asset为nil,images的count为0,导致不走底下的方法 if let tryGIF = images.first(where: { $0.value?.isGIF == true }) { watermark = tryGIF.value! }

    重现步骤

    xcode14.1 ios16.1.1 Swift5 EFQRCode6.2.1

    其他信息

    WeChat3fc0444585c6453b5b4746141b52b33c

    opened by tc976562936 0
  • Question about QRCodeRecognize

    Question about QRCodeRecognize

    你好,最近在做识别二维码的功能,看到EFQRCode识别这块的逻辑有2个疑问.

    为什么 CIDetectorAccuracyLow 低精度的识别要放到高精度的后面呢,我理解低精度的速度较快,高精度应该做兜底.

    另外一个疑问是 取得图片的灰度这块是必须的吗

    private func getQRString() -> [String] {
        let result = image.ciImage().recognizeQRCode(
            options: [CIDetectorAccuracy: CIDetectorAccuracyHigh]
        )
        if result.isEmpty, let grayscaleImage = image.grayscale {
            return grayscaleImage.ciImage().recognizeQRCode(
                options: [CIDetectorAccuracy: CIDetectorAccuracyLow]
            )
        }
        return result
    }
    
    opened by HIIgor 0
  • How to pass json data to QRcode

    How to pass json data to QRcode

    Check List

    • [x] I have read the README.md, but the information I need is not there.
    • [x] I have searched in existing issues, but did not find a similar one.

    Issue Description

    Description

    I want to pass JSON data coming from API to QRcode so it can display information.

    Reproduce

    Other Comment

    question 
    opened by raghavnaphade 1
  • can't run EFQRCode example code on Xcode

    can't run EFQRCode example code on Xcode

    Check List

    • [ ] I have read the README.md, but the information I need is not there.
    • [ ] I have searched in existing issues, but did not find a similar one.

    Issue Description

    Description

    what maybe the problem? I just download example but having error

    Reproduce

    Other Comment

    opened by inthreekr 0
  • No such module 'EFQRCode'

    No such module 'EFQRCode'

    Check List

    • [ ] I have read the README.md, but the information I need is not there.
    • [ ] I have searched in existing issues, but did not find a similar one.

    Issue Description

    Description

    I'm testing this on watch os 9.0 using package manager, I install EFQRcode 6.2.1 version. and having no such module 'EFQRCode' error once I import EFQRcode on view struct am I the only one who have this problem on new test version? I haven't used it with old version of watch os

    Reproduce

    Other Comment

    opened by inthreekr 1
  • Bump jmespath from 1.4.0 to 1.6.1

    Bump jmespath from 1.4.0 to 1.6.1

    Bumps jmespath from 1.4.0 to 1.6.1.

    Release notes

    Sourced from jmespath's releases.

    Release v1.6.1 - 2022-03-07

    • Issue - Use JSON.parse instead of JSON.load.

    Release v1.6.0 - 2022-02-14

    • Feature - Add support for string comparissons.

    Release v1.5.0 - 2022-01-10

    • Support implicitly convertible objects/duck-type values responding to to_hash and to_ary.

      [See related GitHub pull request #51](jmespath/jmespath.rb#51).

    Changelog

    Sourced from jmespath's changelog.

    1.6.1 (2022-03-07)

    • Issue - Use JSON.parse instead of JSON.load.

    1.6.0 (2022-02-14)

    • Feature - Add support for string comparisons.

    1.5.0 (2022-01-10)

    • Support implicitly convertible objects/duck-type values responding to to_hash and to_ary.

      [See related GitHub pull request #51](jmespath/jmespath.rb#51).

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(6.2.0)
  • 6.2.0(Nov 26, 2021)

    Add

    • Add EFPointStyle protocol to allow customizing foreground point style.

    Deprecate

    • EFPointShape is deprecated. Use EFPointStyle instead.
    Source code(tar.gz)
    Source code(zip)
  • 6.1.0(Apr 8, 2021)

    Official V6 Release 🎉

    This release contains breaking changes, in addition to those mentioned in v6.0.0!

    Migration

    Wonder what's new in this official V6 release? How do I fix those new warnings? Check out the migration guide here: https://github.com/EFPrefix/EFQRCode/discussions/115, or watch the video demonstration on YouTube 或者 bilibili.


    Changelog

    Add

    • Supports chaining EFQRCodeGenerator configuration methods.
    • EFQRCodeGenerator properties are now public.
    • EFQRCodeGenerator.clearCache can be used to free up memories used for caching results.
    • English documentation is now available through Xcode quick help.
    • Swift: EFWatermarkMode.rectForWatermark(ofSize:inCanvasOfSize:) can be used to calculate the frame for watermark image in a canvas.
    • Objective-C: New tests to ensure APIs are available in Objective-C.

    Change

    • Renamed EFQRCodeGenerator configuration methods to be more consistent.
      • Renamed EFQRCode and reordered convenience generate function arguments to be consistent with generator methods.
    • EFQRCodeGenerator now caches more generated contents to improve performance.
    • EFQRCodeRecognizer expects non-nil image and returns non-nil array of results. The returned array may still be empty.
    • EFIntSize is now an immutable, final class.
    • Renamed CGColor extensions white and black to omit first argument label.
    • Objective-C: EFQRCodeGenerator and EFQRCodeRecognizer is now fully available to configure/use in Objective-C.

    Deprecate

    • EFQRCodeMode.none is now deprecated. Use nil and EFQRCodeMode? instead.

    Remove

    • EFUIntPixel is no longer a part of the public interface.
    • GIF generation no longer takes pathToSave parameter.
    • Objective-C: EFQRCode is no longer available in Objective-C. Use EFQRCodeGenerator and EFQRCodeRecognizer instead.

    Release Notes from v6.0.0

    Add

    • Add support to compile for macOS 10.10 using CocoaPods.

    Change

    • QRCodeSwift (FKA swift_qrcodejs) is now conditional dependency with Swift Package Manager 5.3+.

    Remove

    • Drop iOS 8 support from CocoaPods with Xcode 12 #101;
    • Remove Core and watchOS subspecs #100.
      • Please integrate EFQRCode directly instead of using subspecs.
      • QRCodeSwift should still be a conditional dependency for watchOS only.
    What happened to semantic versioning?

    Yes, I should have named release 6.0.0 as 6.0.0-rc.1, but I guess it's too late now :P

    Source code(tar.gz)
    Source code(zip)
  • 6.0.0(Nov 4, 2020)

    ReMiNdEr

    This is a PRE-RELEASE. We will introduce breaking changes (with migration helpers) in the next (few, pre-)release(s) without bumping the major version (i.e. for v6). We will, however, try our best to use proper release sequence (alpha, beta, release candidate, etc.) for future major version releases (e.g. v7).

    Add

    • Add support to compile for macOS 10.10 using CocoaPods.

    Change

    • QRCodeSwift (FKA swift_qrcodejs) is now conditional dependency with Swift Package Manager 5.3+.

    Remove

    • Drop iOS 8 support from CocoaPods with Xcode 12 #101;
    • Remove Core and watchOS subspecs #100.
      • Please integrate EFQRCode directly instead of using subspecs.
      • QRCodeSwift should still be a conditional dependency for watchOS only.
    Source code(tar.gz)
    Source code(zip)
  • 5.1.9(Nov 4, 2020)

    Add

    • Add Playgrounds with usage example #98;

    Fix

    • Fix SwiftPM syntax in README #99;
    • Fix GIF frame delay time setting #104;
    • Now generates QRCode with correct, specified content encoding on watchOS;
    • Pin swift_qrcodejs to 1.2.0, up to next minor #102.
    Source code(tar.gz)
    Source code(zip)
Owner
EFPrefix
A series of projects with(out) 'EF' prefix.
EFPrefix
WatchCon is a tool which enables creating easy connectivity between iOS and WatchOS.

WatchCon WatchCon is a tool which enables creating easy connectivity between iOS and WatchOS Requirements iOS 9.0+ / watchOS 2.0+ CocoaPods CocoaPods

Abdullah Selek 33 Sep 22, 2022
Simple motion detector for ⌚️ (watchOS) shake gesture.

WatchShaker Simple motion detector for ⌚️ (watchOS) shake gesture. WatchShaker is a watchOS helper to get your ⌚️ shake movements Requirements watchOS

Ezequiel França 200 Dec 22, 2022
Haptico 📳 - easy to use haptic feedback generator with pattern-play support

Haptico Haptico is easy to use iOS haptic feedback generator. Besides default haptic feedbacks it can play patterns! Checkout Example project. Table o

Sapozhnik Ivan 462 Jan 1, 2023
Instagram-like photo browser and a camera feature with a few line of code in Swift.

NOTE: This project is no longer maintained. We highly recommend YPImagePicker. Fusuma Fusuma is a Swift library that provides an Instagram-like photo

Yuta Akizuki 2.4k Dec 31, 2022
Get the data from Accelerometer, Gyroscope and Magnetometer in only Two or a few lines of code.

Get the data from Accelerometer, Gyroscope and Magnetometer in only Two or a few lines of code. CoreMotion now made insanely simple :octocat: :satellite:

Muhammad Haroon Baig 1.1k Nov 16, 2022
You will learn how to scan QR code with iOS framework.

QR Code Scanner You will learn how to scan QR code with in iOS without using any library. It is as simple to scan QR code in iOS. In this example, We

Nitin Aggarwal 11 Dec 8, 2022
Library for iOS Camera API. Massively increase performance and ease of use within your next iOS Project.

CameraKit helps you add reliable camera to your app quickly. Our open source camera platform provides consistent capture results, service that scales,

CameraKit 628 Dec 27, 2022
Luminous provides you a lot of information about the system and a lot of handy methods to quickly get useful data on the iOS platform.

Luminous Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements iOS 8+ Swift 5 Xcode 1

Andrea Mario Lufino 324 Nov 27, 2022
Writes twitter and contact (links) to writable nfcs on iPhone 7+ iOS 14+

nfc writer ios app nfc writer app is a hacky fun side project that writes twitter and contact (links) to writable nfcs. runs on iPhone 7+ iOS 14+. joi

Vivian Phung 5 Nov 23, 2022
Swift library to easily check the current device and some more info about it.

Usage To run the example project, clone the repo, and run pod install from the Example directory first. let device = Deviice.current device is a Devi

Andrea Mario Lufino 56 Nov 3, 2022
Light weight tool for detecting the current device and screen size written in swift.

Device detect the current  device model and screen size. Installation CocoaPods Device is available through CocoaPods. To install it, simply add the

Lucas Ortis 1.5k Dec 28, 2022
🛰 CoreLocation Made Easy - Efficient & Easy Location Tracker, IP Location, Gecoder, Geofence, Autocomplete, Beacon Ranging, Broadcaster and Visits Monitoring

Location Manager Made Easy SwiftLocation is a lightweight Swift Library that provides an easy way to work with location-related functionalities. No mo

Daniele Margutti 3.2k Dec 30, 2022
A camera view controller with custom image picker and image cropping.

ALCameraViewController A camera view controller with custom image picker and image cropping. Features Front facing and rear facing camera Simple and c

Alex Littlejohn 2k Dec 29, 2022
:mag_right: A simple and beautiful barcode scanner.

Description BarcodeScanner is a simple and beautiful wrapper around the camera with barcode capturing functionality and a great user experience. Barco

HyperRedink 1.6k Jan 3, 2023
NFC Forum Well Known Type Data Parser for iOS11 and Core NFC

NFCNDEFParse NFC Forum Well Known Type Data Parser for iOS11 and Core NFC. Supports parsing of types: Text - NFCForum-TS-RTD_Text_1.0 2006-07-24 Uri -

Jari Kalinainen 14 Oct 21, 2022
Lightweight Cocoa library for detecting the running device's model and screen size.

Lightweight Cocoa library for detecting the running device's model and screen size. With the newer  devices, developers have more work to do. This li

Sebastian Dobrincu 1.3k Nov 24, 2022
Easily communicate between iOS/OSX devices using BLE

BluetoothKit Easily communicate between iOS devices using BLE. Background Apple mostly did a great job with the CoreBluetooth API, but because it enca

Rasmus Høhndorf Hummelmose 2.1k Dec 29, 2022
iOS & OSX Bluetooth library for RxSwift

RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant. It's backed by RxSwift and CoreBluetooth and it prov

Polidea 1.3k Dec 16, 2022
iOS Bluetooth LE framework

Features A futures interface replacing protocol implementations. Timeout for Peripheral connection, Service scan, Service + Characteristic discovery a

Troy Stribling 696 Dec 25, 2022