:mag_right: A simple and beautiful barcode scanner.

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.

Issues
  • Swift 4.2 Incompatible

    Swift 4.2 Incompatible

    Release 4.1.3 has build errors in xCode 10 using Swift 4.2. Is there a plan to update to make it Swift 4.2 compatible?

    opened by JLamkin 17
  • 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 5 support ?

    Swift 5 support ?

    opened by ismailtosun 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
  • 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
  • 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
  • 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
  • Objective-C Support

    Objective-C Support

    Description

    Allows usage of this library from objc code.

    Tasks

    • [x] Mark classes & protocols with @objc
    • [x] Change class to AnyObject in protocols to fix warnings
    • [x] Apply recommended Xcode settings

    Infos For Reviewer

    Even though Issue #13 was closed I figured out that supporting objc was super easy. I've started of 5.0 tag but can't create a PR from this commit and can't use 5.0.1 (master) as installation via cocoapods fails with following warning:

    There is also an existing issue #188. How should we continue with this?

    Bildschirmfoto 2021-10-20 um 13 35 09
    opened by Patrick-Kladek 0
  • Scans outside of box.

    Scans outside of box.

    According to #141, only the area within the box is scanned for codes.

    This, however, is not true when viewController.metadata is specified (eg. viewController.metaData = [AVMetadataObject.ObjectType.ean13]).

    This is an unwanted side-effect since the user no longer has control over what code is being scanned.

    opened by slimyjimmy 0
  • resetWithError not working

    resetWithError not working

    Hi,

    I'm trying to use resetWithError() in my app, but it doesn't show an error (see video).

    https://user-images.githubusercontent.com/50664914/128355802-83cc0f8f-d8ad-4bfd-8eff-d876ad345a2c.mov

    Configuration of the viewController:

    viewController metadata = [AVMetadataObject.ObjectType.ean13]
    viewController.isOneTimeSearch = true
    viewController.headerViewController.closeButton.isHidden = true
    viewController.headerViewController.titleLabel.text = ""
    viewController.codeDelegate = self
    viewController.errorDelegate = self
    

    Callbacks:

    func scanner(_ controller: BarcodeScannerViewController, didCaptureCode code: String, type: String) {
            controller.resetWithError(message: "test error")
        }
    
    func scanner(_ controller: BarcodeScannerViewController, didReceiveError error: Error) {
            controller.resetWithError(message: "Error")
        }
    

    Am I doing something wrong?

    opened by slimyjimmy 0
  • Mac Catalyst 14.0

    Mac Catalyst 14.0

    I am using this in an iOS and MacOS project. However I am not using the Barcode Scanner on Mac, but it will not let me compile. Is there anyway to get around this or silence this issue?

    'AVCaptureVideoOrientation' is only available in Mac Catalyst 14.0 or newer

    opened by willm132 0
  • Force Orientation

    Force Orientation

    Is there a way to force an orientation using Barcode Scanner? My app is only used in landscape, but when the scanner is first opened it's on portrait mode. Is there anyway to change this?

    opened by willm132 0
  • DarkMode Support 2.0 #117

    DarkMode Support 2.0 #117

    Add the ability to change the UIVisualEffectView style

    MessageViewController.swift

    private lazy var blurView: UIVisualEffectView = .init(effect: UIBlurEffect(style: .extraLight))


    There is currently no way to change the ".extraLight" to any other "UIBlurEffect.Style"

    Making it configurable would be really nice 👍


    Thanks again undeaD_D

    opened by undeaDD 0
  • showsCameraButton is inverted

    showsCameraButton is inverted

    Code in question:

    CameraViewController.swift

      public var showsCameraButton: Bool = false {
        didSet {
          cameraButton.isHidden = showsCameraButton
        }
      }
    

    Input true -> CameraButton is hidden Input false -> CameraButton is visible


    There are 2 easy ways to fix this:

    • rename variable to 'hideCameraButton'
    • add boolean inversion '!' inside didSet block

    Thanks for the awesome pod undeaD_D

    opened by undeaDD 0
  • NW7 CODABAR Integration

    NW7 CODABAR Integration

    Hello,

    is possible to integrate the Codabar(nw-7) barcode type?

    Regards

    opened by Barosi 0
  • Barcode stopped working

    Barcode stopped working

    Barcode stopped working, I think it is because of Xcode update before this it worked perfectly I didn't change any part of code touching barcode

    opened by Izzatillasapaev 0
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 Nov 18, 2021
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.2k Nov 15, 2021
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 Nov 14, 2021
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 83 Aug 25, 2021
1D and 2D barcodes reader and generators for iOS 8 with delightful controls. Now Swift.

RSBarcodes, now in Swift. RSBarcodes allows you to read 1D and 2D barcodes using the metadata scanning capabilities introduced with iOS 7 and generate

R0CKSTAR 674 Nov 14, 2021
📸 iOS Media Capture – features touch-to-record video, slow motion, and photography

PBJVision PBJVision is a camera library for iOS that enables easy integration of special capture features and camera interface customizations in your

patrick piemonte 1.9k Nov 17, 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 11, 2021
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 Nov 17, 2021
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 Nov 17, 2021
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 Nov 8, 2021
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 31 Jul 27, 2021
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 162 Nov 13, 2021
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 600 Nov 20, 2021
: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.5k Nov 14, 2021
: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.5k Nov 14, 2021
A camera designed in Swift for easily integrating CoreML models - as well as image streaming, QR/Barcode detection, and many other features

Would you like to use a fully-functional camera in an iOS application in seconds? Would you like to do CoreML image recognition in just a few more sec

David Okun 823 Nov 8, 2021
An iOS LAN Network Scanner library

MMLanScan MMLanScan is an open source project for iOS that helps you scan your network and shows the available devices and their MAC Address, hostname

Michael Mavris 435 Nov 16, 2021
A simple and beautiful chart lib used in Piner and CoinsMan for iOS

PNChart You can also find swift version at here https://github.com/kevinzhow/PNChart-Swift A simple and beautiful chart lib with animation used in Pin

Kevin 9.8k Nov 17, 2021
A simple and beautiful chart lib used in Piner and CoinsMan for iOS(https://github.com/kevinzhow/PNChart) Swift Implementation

PNChart-Swift PNChart(https://github.com/kevinzhow/PNChart) Swift Implementation Installation This isn't on CocoaPods yet, so to install, add this to

Kevin 1.4k Nov 19, 2021
Lightweight dropdown message bar in Swift. It's simple and beautiful.

SwiftyDrop SwiftyDrop is a lightweight pure Swift simple and beautiful dropdown message. Features Easy to use like: Drop.down("Message") Message field

Morita Naoki 693 Nov 19, 2021
Simple and beautiful stacked UIView to use as a replacement for an UITableView, UIImageView or as a menu

VBPiledView simple but highly effective animation and interactivity! By v-braun - viktor-braun.de. Preview Description Very simple and beautiful stack

Viktor Braun 165 Oct 28, 2021
A simple and beautiful chart lib for iOS, developed in Swift2.2 - 一个简单易用的漂亮图表库,用Swift语言开发,更新至Swift2.2

PDChart - Chart lib for iOS in Swift A simple and beautiful chart lib for iOS, developed in Swift,refering to PNChart Recently updated to support Swif

PandaraWen 76 Oct 28, 2020
Lightweight dropdown message bar in Swift. It's simple and beautiful.

SwiftyDrop SwiftyDrop is a lightweight pure Swift simple and beautiful dropdown message. Features Easy to use like: Drop.down("Message") Message field

Morita Naoki 693 Nov 19, 2021
Team Kodi 13.1k Nov 22, 2021
Team Kodi 13.1k Nov 18, 2021
A beautiful activity indicator and modal alert written in Swift (originally developed for my app DoodleDoodle) Using blur effects, translucency, flat and bold design - all iOS 8 latest and greatest

SwiftSpinner SwiftSpinner is an extra beautiful activity indicator with plain and bold style. It uses dynamic blur and translucency to overlay the cur

Marin Todorov 2.1k Nov 23, 2021
🌟🌟🌟🌟🌟 Falcon Messenger is a Fast and Beautiful cloud-based messaging app. With iOS and IPadOS Support. Available on the App Store.

Open the FalconMessenger.xcworkspace in Xcode. Change the Bundle Identifier to match your domain. Go to Firebase and create new project. Select "Add F

null 358 Nov 2, 2021
A beautiful set of predefined colors and a set of color methods to make your iOS/OSX development life easier.

Installation Drag the included Colours.h and Colours.m files into your project. They are located in the top-level directory. You can see a demo of how

Ben Gordon 3.1k Nov 19, 2021
The smartest and most beautiful (POSIX compliant) Command line framework for Swift 🤖

Guaka - Smart and beautiful POSIX compliant CLI framework for Swift. It helps you create modern and familiar CLI apps in the vein of widely used proje

Omar Abdelhafith 1.1k Nov 17, 2021