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

Overview

BarcodeScanner

CI Status Version Swift Carthage Compatible License Platform

Description

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

  • Barcode scanning.
  • State modes: scanning, processing, unauthorized, not found.
  • Handling of camera authorization status.
  • Animated focus view and custom loading indicator.
  • Torch mode switch.
  • Customizable colors, informational and error messages.
  • No external dependencies.
  • Demo project.

Table of Contents

BarcodeScanner Icon

Usage

Controller

To start capturing just instantiate BarcodeScannerViewController, set needed delegates and present it:

let viewController = BarcodeScannerViewController()
viewController.codeDelegate = self
viewController.errorDelegate = self
viewController.dismissalDelegate = self

present(viewController, animated: true, completion: nil)
BarcodeScanner scanning

You can also push BarcodeScannerViewController to your navigation stack:

let viewController = BarcodeScannerViewController()
viewController.codeDelegate = self

navigationController?.pushViewController(viewController, animated: true)

Delegates

Code delegate

Use BarcodeScannerCodeDelegate when you want to get the captured code back.

extension ViewController: BarcodeScannerCodeDelegate {
  func scanner(_ controller: BarcodeScannerViewController, didCaptureCode code: String, type: String) {
    print(code)
    controller.reset()
  }
}

Error delegate

Use BarcodeScannerErrorDelegate when you want to handle session errors.

extension ViewController: BarcodeScannerErrorDelegate {
  func scanner(_ controller: BarcodeScannerViewController, didReceiveError error: Error) {
    print(error)
  }
}

Dismissal delegate

Use BarcodeScannerDismissalDelegate to handle "Close button" tap. Please note that BarcodeScannerViewController doesn't dismiss itself if it was presented initially.

extension ViewController: BarcodeScannerDismissalDelegate {
  func scannerDidDismiss(_ controller: BarcodeScannerViewController) {
    controller.dismiss(animated: true, completion: nil)
  }
}

Actions

When the code is captured BarcodeScannerViewController switches to the processing mode:

BarcodeScanner loading

While the user sees a nice loading animation you can perform some background task, for example make a network request to fetch product info based on the code. When the task is done you have 3 options to proceed:

  1. Dismiss BarcodeScannerViewController and show your results.
func scanner(_ controller: BarcodeScannerViewController, didCaptureCode code: String, type: String) {
 // Code processing
 controller.dismiss(animated: true, completion: nil)
}
  1. Show an error message and switch back to the scanning mode (for example, when there is no product found with a given barcode in your database):
BarcodeScanner error

func scanner(_ controller: BarcodeScannerViewController, didCaptureCode code: String, type: String) {
 // Code processing
 controller.resetWithError(message: "Error message")
 // If message is not provided the default message will be used instead.
}
  1. Reset the controller to the scanning mode (with or without animation):
func scanner(_ controller: BarcodeScannerViewController, didCaptureCode code: String, type: String) {
  // Code processing
  controller.reset(animated: true)
}

If you want to do continuous barcode scanning just set the isOneTimeSearch property on your BarcodeScannerViewController instance to false.

Customization

We styled BarcodeScanner to make it look nice, but you can always use public properties or inheritance to customize its appearance.

Header

let viewController = BarcodeScannerViewController()
viewController.headerViewController.titleLabel.text = "Scan barcode"
viewController.headerViewController.closeButton.tintColor = .red

Please note that HeaderViewController is visible only when BarcodeScannerViewController is being presented.

Footer and messages

let viewController = BarcodeScannerViewController()
viewController.messageViewController.regularTintColor = .black
viewController.messageViewController.errorTintColor = .red
viewController.messageViewController.textLabel.textColor = .black

Camera

let viewController = BarcodeScannerViewController()
// Change focus view style
viewController.cameraViewController.barCodeFocusViewType = .animated
// Show camera position button
viewController.cameraViewController.showsCameraButton = true
// Set the initial camera position
viewController.cameraViewController.initialCameraPosition = .front // Default is .back
// Set settings button text
let title = NSAttributedString(
  string: "Settings",
  attributes: [.font: UIFont.boldSystemFont(ofSize: 17), .foregroundColor : UIColor.white]
)
viewController.cameraViewController.settingButton.setAttributedTitle(title, for: UIControlState())

Metadata

// Add extra metadata object type
let viewController = BarcodeScannerViewController()
viewController.metadata.append(AVMetadataObject.ObjectType.qr)

Installation

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

pod 'BarcodeScanner'

Don't forget to set a Privacy - Camera Usage Description in your Info.plist file, else the app will crash with a SIGBART.

In order to quickly try the demo project of a BarcodeScanner just run pod try BarcodeScanner in your terminal.

BarcodeScanner is also available through Carthage. To install just write into your Cartfile:

github "hyperoslo/BarcodeScanner"

To install BarcodeScanner manually just download and drop Sources and Images folders in your project.

Author

Hyper Interaktiv AS, [email protected]

Contributing

We would love you to contribute to BarcodeScanner, check the CONTRIBUTING file for more info.

License

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

Comments
  • 100% cpu usage after scanning bar code

    100% cpu usage after scanning bar code

    Hey i was using your library (btw is awesome), and i found an issue with the cpu usage just after i scan a barcode. Running the time profile i was able to found that the issue is in the barcode.

    screen shot 2018-03-13 at 16 05 43 screen shot 2018-03-13 at 16 04 23
    opened by klinkert0728 15
  • Delegate to handle scanned barcode is called more than once!?

    Delegate to handle scanned barcode is called more than once!?

    When using the following code fragment: func barcodeScanner(_ controller: BarcodeScannerController, didCaptureCode code: String, type: String) { print("\(type(of: self)).barcodeScanner(,code=\(code),type=\(type)") let delayInSeconds = 0.5 var segueId = "" DispatchQueue.main.asyncAfter(deadline: .now() + delayInSeconds) { //My scanned code handling goes here ... } }

    I am getting the following output: HomeScreenViewController.barcodeScanner(,code=Endoscope,type=org.iso.QRCode HomeScreenViewController.barcodeScanner(,code=Endoscope,type=org.iso.QRCode HomeScreenViewController.barcodeScanner(,code=Endoscope,type=org.iso.QRCode HomeScreenViewController.barcodeScanner(,code=Endoscope,type=org.iso.QRCode HomeScreenViewController.barcodeScanner(,code=Endoscope,type=org.iso.QRCode HomeScreenViewController.barcodeScanner(,code=Endoscope,type=org.iso.QRCode

    where I only expect one call! I configure the scanner according to the delegate's example.

    How can I prevent this from happening, since I want to call a performSegue(..) call, depending on the scanned-code. What I see now is that 6 times a specific performSegue() will be called, giving me 6 times the same ViewController on my NavigationController-stack?

    Anybody now a means how to prevent the barcodeScanner-delegate callback from being called more than one time?

    opened by githotto 14
  • Swift 4

    Swift 4

    I've updated the BarcodeScanner Framework and the Example project to Swift 4 with Base SDK 11 and changed the deployment target to iOS 10.3 (since anything less than 10.3 has less than a 9% market share). I've also added support for all orientations and fixed a bug where the Header would disappear if the rotation was changed. I also added all the new barcode types to the metadata array. I also added support for iPhone and iPad device.

    I also took the liberty of making some code better.

    I've tested all the barcode types and general stability of the framework and example project.

    Would you like me to submit a Pull Request to add all these features to your Scanner?

    opened by ghost 10
  • Using 99% of processor when opening Camera after Scan

    Using 99% of processor when opening Camera after Scan

    If you push a new ViewController which uses AVFoundation to take pictures or videos, this library makes an enormous use of processor on background (99% on iPhone 7 Plus). Please provide a way to stop capturing or processing after a new ViewController is pushed.

    opened by NdriqimHaxhaj 8
  • Swift 4

    Swift 4

    Swift 4 Upgrades! Let me know if I missed anything.

    • Upgrades to project and code to allow for Swift 4, SDK iOS11.
    • Target iOS 9.3.
    • Add support for UPC-A.
    • Add all new barcode types to the metadata array.
    opened by ghost 7
  • Navigation bar not displayed when scanner presented modally

    Navigation bar not displayed when scanner presented modally

    I have been successfully using the scanner by pushing it on to the navigation stack. Now however I would like to present it. Strangely the built-in navigation bar is hidden. It seems like the isBeingPresented check is not returning the correct result. The navigation bar does show but once the modal animation has completed and the bar has reached the top of the screen it disappears. I have pasted my code below.

            // Configure barcode scanner
            let controller = BarcodeScannerController()
            controller.codeDelegate = self
            controller.dismissalDelegate = self
            controller.errorDelegate = self
            controller.hidesBottomBarWhenPushed = true
                    
            // Set strings
            BarcodeScanner.Info.loadingText = NSLocalizedString("Retrieving code...", comment: "")
                
            // Display scanner
            navigationController?.present(controller, animated: true, completion: nil)
    
    

    Is there a way I can manually set the navigation bar visibility?

    opened by kjakm 7
  • controller.reset() not working as expected

    controller.reset() not working as expected

    After scanning a barcode the "Looking for your product..." animation will not dismiss. Based on the below code the assumed behavior would be that the scanner would reset so that I can scan another code. Am I missing something?

    func barcodeScanner(_ controller: BarcodeScannerController, didCaptureCode code: String, type: String) {
        print("Capture Successful")
        print("code: \(code): type: \(type)")
        
        capturedCodes.insert(code)
        
        controller.reset(animated: true)
      }
    

    Also, using controller.resetWithError(message: String?) does not seem to work correctly either. The error appears briefly but then changes to the "Looking for your product..." animation and remains as describe above.

    opened by rmoffett 7
  • Command failed due to signal: Abort trap: 6

    Command failed due to signal: Abort trap: 6

    when archive I get the following error XCODE 9.4.1

    :0: error: fatal error encountered while reading from module 'BarcodeScanner'; please file a bug report with your project and the crash log :0: note: compiling as Swift 3.3.2, with 'BarcodeScanner' built as Swift 4.1.2 (this is supported but may expose additional compiler issues)

    *** DESERIALIZATION FAILURE (please include this section in any bug report) *** declaration is not a nominal type Cross-reference to module 'AVFoundation' ... ObjectType

    0 swift 0x0000000106454fea PrintStackTraceSignalHandler(void*) + 42 1 swift 0x00000001064543a6 SignalHandler(int) + 966 2 libsystem_platform.dylib 0x00007fff7bafff5a _sigtramp + 26 3 libsystem_platform.dylib 0x0000000109c9d2c4 _sigtramp + 2384057220 4 libsystem_c.dylib 0x00007fff7b89d1ae abort + 127 5 swift 0x0000000103b83d5e swift::ModuleFile::fatal(llvm::Error) + 2062 6 swift 0x0000000103b9614a swift::ModuleFile::getTypeChecked(llvm::PointerEmbeddedInt<unsigned int, 31>) + 13418 7 swift 0x0000000103ba4fc7 swift::SILDeserializer::readSILFunction(llvm::PointerEmbeddedInt<unsigned int, 31>, swift::SILFunction*, llvm::StringRef, bool, bool) + 455 8 swift 0x0000000103bb81bc swift::SILDeserializer::getFuncForReference(llvm::StringRef) + 748 9 swift 0x0000000103bb967d swift::SILDeserializer::readVTable(llvm::PointerEmbeddedInt<unsigned int, 31>) + 605 10 swift 0x00000001038ad8eb swift::SILLinkerVisitor::processClassDecl(swift::ClassDecl const*) + 91 11 swift 0x00000001038f4545 swift::SILModule::lookUpVTable(swift::ClassDecl const*) + 261 12 swift 0x00000001038ad50f swift::SILLinkerVisitor::linkInVTable(swift::ClassDecl*) + 31 13 swift 0x00000001038acfc5 swift::SILLinkerVisitor::process() + 517 14 swift 0x00000001038accef swift::SILLinkerVisitor::processFunction(swift::SILFunction*) + 79 15 swift 0x00000001034d54e6 (anonymous namespace)::SILLinker::run() + 182 16 swift 0x00000001035b1cc9 swift::SILPassManager::runOneIteration() + 10217 17 swift 0x0000000102ab5125 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 37781 18 swift 0x0000000102aaa304 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 7908 19 swift 0x0000000102a5ece5 main + 18917 20 libdyld.dylib 0x00007fff7b7f1015 start + 1 21 libdyld.dylib 0x00000000000000a0 start + 2223042700

    opened by fabrizotus 6
  • Fix for Swift 4.2

    Fix for Swift 4.2

    Only issue I have found is. Camera either freezes or is black when first starting the app. Go to home and open again and it works fine. Tested on iPhone X

    opened by shaqaruden 6
  • Do Not add Subviews directly to the Visual Effect View, instead add them to the ContentView - Swift 4 ISSUE XCODE 9

    Do Not add Subviews directly to the Visual Effect View, instead add them to the ContentView - Swift 4 ISSUE XCODE 9

    I integrated the BarcodeScanner POD in the project and it runs perfectly on iOS 10. However on iOS 11 its giving me the below error. Please update your pod to work with Swift 4.

    2017-10-15 17:11:16.427039+0530[1797:1731968] [MC] Lazy loading NSBundle MobileCoreServices.framework 2017-10-15 17:11:16.428545+0530[1797:1731968] [MC] Loaded MobileCoreServices.framework 2017-10-15 17:11:17.538814+0530[1797:1731968] *** Assertion failure in -[BarcodeScanner.InfoView _addSubview:positioned:relativeTo:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3694.4.18/UIVisualEffectView.m:1464 2017-10-15 17:11:17.543583+0530[1797:1731968] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '<UILabel: 0x127dc0580; frame = (0 0; 0 0); userInteractionEnabled = NO; layer = <_UILabelLayer: 0x1c0481540>> has been added as a subview to <BarcodeScanner.InfoView: 0x127d250a0; baseClass = UIVisualEffectView; frame = (0 0; 0 0); layer = <CALayer: 0x1c043c8e0>>. Do not add subviews directly to the visual effect view itself, instead add them to the -contentView.' *** First throw call stack: (0x182c9fd38 0x1821b4528 0x182c9fc0c 0x18362ec24 0x18c73c7a8 0x10595cda4 0x10594dadc 0x10595ced4 0x106263a50 0x106076b94 0x10595cb20 0x10595cf00 0x10595c650 0x1059487f4 0x10594d194 0x10594dd7c 0x18c0afbfc 0x18c0af7d4 0x18cc3c8b0 0x18c3f23b0 0x18c422034 0x18c424f54 0x18c425488 0x18c424ea4 0x18c18f55c 0x104b40ea8 0x104b41074 0x18c0e420c 0x18c0e418c 0x18c0cef4c 0x18c0e3a80 0x18c0e35a0 0x18c0dea70 0x18c0b0078 0x18c9eff98 0x18c9f2408 0x18c9eb574 0x182c48358 0x182c482d8 0x182c47b60 0x182c45738 0x182b662d8 0x1849f7f84 0x18c113880 0x104994b8c 0x18268a56c) libc++abi.dylib: terminating with uncaught exception of type NSException

    opened by blitsglobal 6
  • Barcode focus view styling choosing

    Barcode focus view styling choosing

    Here in AMARO, the bar code will be used only for 1D codes, so there's no need for me to have the animation that says it works both 1D and 2D codes. Made an adaptation for a new BarcodeScannerController attribute called barCodeFocusViewType which makes possible to choose between one dimension code, two dimension codes or the animated option that is already implemented. Please let me know if something is wrong or should be changed. I hope I could help.

    opened by carlbrusell 6
  • Modernizing BarcodeScanner

    Modernizing BarcodeScanner

    There are a number of issues (mostly minor) with using BarcodeScanner with recent versions of Xcode, Swift, and iOS: (1) Threading Issues: Every time I attempt to read a barcode, I get the following (backtrace omitted): Thread Performance Checker: -[AVCaptureSession startRunning] should be called from background thread. Calling it on the main thread can lead to UI unresponsiveness (2) There are a number of deprecations in the code, all easily solved: (a) protocol definitions (protocol xxx: class {} instead of protocol xxx: AnyObject {}) (b) use of UIApplication.shared.statusBarOrientation etc.

    opened by rlaurb 0
  • Signing for

    Signing for "BarcodeScanner-Localization" requires a development team.

    While Running the app on a real device getting issues for "BarcodeScanner-Localization" and "BarcodeScanner-BarcodeScanner" for sign-in required. For more clarity, I have attached an image for that. Screenshot 2022-09-21 at 8 13 59 PM

    Screenshot 2022-09-21 at 8 16 59 PM

    Please let me know how to resolve this issue.

    opened by nitishs-btc 11
  • iPad issue: Video capture viewport not working in split mode

    iPad issue: Video capture viewport not working in split mode

    Hi, first off, thank you for a wonderful barcode scanning solution, which i will shortly integrate into my iOS app RetroChecker. I have one remaining problem with using it: The solution works fine on iPhone and iPad, but when i use Split Window on iPad (e.g. one half of screen for my App only), and then initialize the BarcodeScannerViewController, the viewport stays black. As soon as i expand the window to full screen, it works fine.

    As i find time, i may also elaborate myself what is going on there, but any help how to make this work would be highly appreciated.

    opened by schleussinger 1
  • Remove - while setting collapsed constraints for MessageViewController

    Remove - while setting collapsed constraints for MessageViewController

    Sorry for not openning PR, I made a lot of changes, so dont want to push it here :)

    private func makeCollapsedConstraints() -> [NSLayoutConstraint] {
        return [
          messageView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
          messageView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
          messageView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
          messageView.heightAnchor.constraint(
            equalToConstant: hideFooterView ? 0 : -BarcodeScannerViewController.footerHeight
          )
        ]
      }
    

    Here I think -BarcodeScannerViewController.footerHeight should be BarcodeScannerViewController.footerHeight height can not be negative.

    opened by Narek1994 0
  • Error not sure issue

    Error not sure issue

    2022-06-07 12:11:51.415810+1000 CleverSparky[467:23701] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "MessageView" nib but the view outlet was not set.' *** First throw call stack: (0x196475288 0x1af16f744 0x1964cc390 0x198a1fbdc 0x198a04634 0x1989d79e4 0x10216c39c 0x10216c764 0x198a01e34 0x198a04984 0x1989d79e4 0x198ba8470 0x198c63a44 0x198d26110 0x198c8e51c 0x1989c87e0 0x198b1338c 0x198ab0b60 0x198c24a84 0x198b381b8 0x100fe3390 0x100fe33f8 0x198d1a9bc 0x198e45374 0x198bc2368 0x198c5f078 0x198ef052c 0x1028caa8c 0x1989c75ec 0x1989f8870 0x198ba6288 0x101068f1c 0x10106941c 0x1989cc150 0x1989c0ea8 0x1989c6428 0x196497414 0x1964a81a0 0x1963e1694 0x1963e705c 0x1963fabc8 0x1b252e374 0x198d6a648 0x198aebd90 0x1010c62d8 0x101e0dce4) libc++abi: terminating with uncaught exception of type NSException dyld4 config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "MessageView" nib but the view outlet was not set.' terminating with uncaught exception of type NSException

    opened by mitchclevertronics 2
Releases(5.0.1)
  • 5.0.0(Oct 4, 2020)

  • 4.1.3(Mar 4, 2018)

  • 4.1.2(Feb 5, 2018)

  • 4.1.1(Feb 1, 2018)

  • 4.1.0(Jan 31, 2018)

  • 4.0.1(Jan 30, 2018)

  • 4.0.0(Jan 29, 2018)

    ⚠️ Breaking changes

    • BarcodeScannerController has been renamed to BarcodeScannerViewController
    • Remove configuration struct in favour of public properties. See README for more information
    • Custom views have been replaced with child view controllers
    • Now it's possible to switch between back/front cameras if needed https://github.com/hyperoslo/BarcodeScanner/pull/91
    • Message expand/collapse animation has been fixed https://github.com/hyperoslo/BarcodeScanner/pull/90
    Source code(tar.gz)
    Source code(zip)
  • 3.0.3(Jan 11, 2018)

    🚀 Merged pull requests

    • Fix title and button on navigation bar in iOS 10 https://github.com/hyperoslo/BarcodeScanner/pull/84, by onmyway133

    🤘 Closed issues

    • Close button and title not shown in navigationBar on iOS 10 and below https://github.com/hyperoslo/BarcodeScanner/issues/83
    Source code(tar.gz)
    Source code(zip)
  • 3.0.2(Jan 10, 2018)

    🚀 Merged pull requests

    • Refactor: access control https://github.com/hyperoslo/BarcodeScanner/pull/78, by vadymmarkov
    • Use UINavigationBar https://github.com/hyperoslo/BarcodeScanner/pull/82, by onmyway133

    🤘 Closed issues

    • iPhoneX layout issue (Close button) https://github.com/hyperoslo/BarcodeScanner/issues/76
    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(Dec 7, 2017)

    • Fixing iPhone X issues, Simulator crash https://github.com/hyperoslo/BarcodeScanner/pull/77 by @prcodes
    • Add Polish localisation https://github.com/hyperoslo/BarcodeScanner/pull/74 by @stolkachov
    • Avoid possible retain cycles in animation completion handler https://github.com/hyperoslo/BarcodeScanner/pull/69 by @jkates1
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Sep 26, 2017)

  • 2.1.2(Aug 4, 2017)

  • 2.1.1(Jul 15, 2017)

  • 2.1.0(Jul 13, 2017)

    • Fix retain cycle/infinite animation in InfoView by @algrid https://github.com/hyperoslo/BarcodeScanner/pull/20
    • Add localized strings (en & de) by @tapwork https://github.com/hyperoslo/BarcodeScanner/pull/30
    • Allow all orientation & fix layout by @tapwork https://github.com/hyperoslo/BarcodeScanner/pull/31
    • Set config variable for the header background by @ecompton3 https://github.com/hyperoslo/BarcodeScanner/pull/33
    • Add ITF Support by @georgepoenaru https://github.com/hyperoslo/BarcodeScanner/pull/38
    • Fix flattened preview by @jeryRazakarison https://github.com/hyperoslo/BarcodeScanner/pull/41
    • Add localized strings (fr) by @frederic-adda https://github.com/hyperoslo/BarcodeScanner/pull/47
    • Fix Fix leading zero added to UPC-A codes by @tapwork https://github.com/hyperoslo/BarcodeScanner/pull/49
    • Barcode focus view styling choosing by @icefall https://github.com/hyperoslo/BarcodeScanner/pull/50
    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Oct 13, 2016)

  • 1.1.0(Oct 6, 2016)

  • 1.0.0(Jul 1, 2016)

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

    • [x] Barcode scanning.
    • [x] State modes: scanning, processing, unauthorized, not found.
    • [x] Handling of camera authorization status.
    • [x] Animated focus view and custom loading indicator.
    • [x] Torch mode switch.
    • [x] Customizable colors, informational and error messages.
    • [x] No external dependencies.
    • [x] Demo project.
    Source code(tar.gz)
    Source code(zip)
Owner
HyperRedink
Connected creativity
HyperRedink
Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS projects.

?? Warning This repository is DEPRECATED and not maintained anymore. Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS

Tudo Gostoso Internet 1.4k Dec 16, 2022
Library for iOS Camera API. CameraKit helps you add reliable camera to your app quickly.

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

CameraKit 628 Dec 27, 2022
Simple Swift class to provide all the configurations you need to create custom camera view in your app

Camera Manager This is a simple Swift class to provide all the configurations you need to create custom camera view in your app. It follows orientatio

Imaginary Cloud 1.3k Dec 29, 2022
A simple, customizable camera control - video recorder for iOS.

LLSimpleCamera: A simple customizable camera - video recorder control LLSimpleCamera is a library for creating a customized camera - video recorder sc

Ömer Faruk Gül 1.2k Dec 12, 2022
A light weight & simple & easy camera for iOS by Swift.

DKCamera Description A light weight & simple & easy camera for iOS by Swift. It uses CoreMotion framework to detect device orientation, so the screen-

Bannings 86 Aug 18, 2022
ALCameraViewController - 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 6, 2022
Instagram-like photo browser and a camera feature with a few line of code in Swift.

Fusuma is a Swift library that provides an Instagram-like photo browser with a camera feature using only a few lines of code.

Yuta Akizuki 2.4k Dec 31, 2022
NextLevel is a Swift camera system designed for easy integration, customized media capture, and image streaming in iOS

NextLevel is a Swift camera system designed for easy integration, customized media capture, and image streaming in iOS. Integration can optionally leverage AVFoundation or ARKit.

NextLevel 2k Jan 2, 2023
This plugin defines a global navigator.camera object, which provides an API for taking pictures and for choosing images from the system's image library.

title description Camera Take pictures with the device camera. AppVeyor Travis CI cordova-plugin-camera This plugin defines a global navigator.camera

null 0 Nov 2, 2021
A fully customisable and modern camera implementation for iOS made with AVFoundation.

Features Extremely simple and easy to use Controls autofocus & exposure Customizable interface Code-made UI assets that do not lose resolution quality

Gabriel Alvarado 1.3k Nov 30, 2022
Fasttt and easy camera framework for iOS with customizable filters

FastttCamera is a wrapper around AVFoundation that allows you to build your own powerful custom camera app without all the headaches of using AVFounda

IFTTT 1.8k Dec 10, 2022
An iOS framework that uses the front camera, detects your face and takes a selfie.

TakeASelfie An iOS framework that uses the front camera, detects your face and takes a selfie. This api opens the front camera and draws an green oval

Abdullah Selek 37 Jan 3, 2023
Video and photo camera for iOS

Features: Description Records video ?? takes photos ?? Flash on/off ⚡ Front / Back camera ↕️ Hold to record video ✊ Tap to take photo ?? Tap to focus

André J 192 Dec 17, 2022
UIView+CameraBackground - Show camera layer as a background to any UIView.

UIView+CameraBackground Show camera layer as a background to any UIView. Features Both front and back camera supported. Flash modes: auto, on, off. Co

Yonat Sharon 63 Nov 15, 2022
iOS camera engine with Vine-like tap to record, animatable filters, slow motion, segments editing

SCRecorder A Vine/Instagram like audio/video recorder and filter framework in Objective-C. In short, here is a short list of the cool things you can d

Simon Corsin 3.1k Dec 25, 2022
Camera engine for iOS, written in Swift, above AVFoundation. :monkey:

?? The most advanced Camera framework in Swift ?? CameraEngine is an iOS camera engine library that allows easy integration of special capture feature

Remi ROBERT 575 Dec 25, 2022
A Snapchat Inspired iOS Camera Framework written in Swift

Overview SwiftyCam is a a simple, Snapchat-style iOS Camera framework for easy photo and video capture. SwiftyCam allows users to capture both photos

Andrew Walz 2k Dec 21, 2022
Mock UIImagePickerController for testing camera based UI in simulator

Mock UIImagePickerController to simulate the camera in iOS simulator.

Yonat Sharon 18 Aug 18, 2022
ScanBarcodes is a SwiftUI view that scans barcodes using an iPhone or iPad camera.

ScanBarcodes ScanBarcodes is a SwiftUI view that scans barcodes using an iPhone or iPad camera. The framework uses AVFoundation for high performance v

NASA Jet Propulsion Laboratory 6 Nov 29, 2022