Welcome to CaptureSDK for iOS Documentation

The CaptureSDK eases the communication between your application and a Socket Mobile scanner.

The Capture API provides a basic set of methods and delegate to manage one or more scanners.

A Capture Helper adds a thin layer on top of this basic API, to simplify the use of the most common operations.

Capture Helper is available in Swift and Objective-C Capture Helper.

If you want an overall presentation you can jump to Getting Started with CaptureSDK for iOS which describe the connection process, and the way Capture interacts with your application.

Noticeable change from version 2.0 (from 8th of October 2025)

There are 2 choices to connect and use our Bluetooth LE readers:

  • Install our Socket Mobile Companion app which takes care of the discovery and the selection of the reader to connect to.

  • Write some code to fit the Bluetooth discovery flow to your application’s design by creating an UI that starts and shows discovered devices and select them to be paired to your application.

We also have deprecated some CaptureHelper methods to avoid confusion and got rid of the Device Manager.

Here’s the changes in a nutshell:

Note

  • The protocol CaptureHelperDeviceManagerDelegate will be removed and its methods didNotifyArrivalForDeviceManager and didNotifyRemovalForDeviceManager will be removed as well.

  • The protocol CaptureHelperDeviceManagerDiscoveryDelegate will be renamed to CaptureHelperDiscoveryDelegate. Its methods didDiscoverDevice(device:deviceManager:) and didEndDiscoveryWithResult(result:deviceManager:) will be renamed to didDiscoverDevice(device:) and didEndDiscoveryWithResult(result:) respectively.

  • The class CaptureHelperDeviceManager will be removed. You can use its methods directly from CaptureHelper. For instance:

  • Swift
bleDeviceManager.connectToDiscoveredDevice(device) { result in
    print("connectToDiscoveredDevice returns: \(result.rawValue)")
}

/// Becomes:

CaptureHelper.sharedInstance.connectToDiscoveredDevice(device) { result in
    print("connectToDiscoveredDevice returns: \(result.rawValue)")
}

/// You can use a CaptureHelper variable instead of the singleton instance as well.
  • The CaptureHelperDeviceManager methods setFavoriteDevices(favorites:), getFavoriteDevicesWithCompletionHandler will be removed. No favorites management is needed anymore in CaptureSDK 2.0.

  • The CaptureHelperDeviceManager method startDiscoveryWithTimeout(timeout:) is replaced by addBluetoothDevice(bluetoothDiscoveryMode:) in the main CaptureHelper class.

  • The CaptureHelperDeviceManager methods getDeviceUniqueIdentifierFromDeviceGuid(deviceGuid:), connectToDiscoveredDevice(device:), disconnectFromDiscoveredDevice(device:) are moved to the main CaptureHelper class.

Devices compatibility and CaptureSDK versions

Devices

<= 2.0

2.0

SocketCam C820, C860

S720/D720/S820

D600, S550, and all other barcode scanners

S370

M930

S320

S721 (new Bluetooth LE barcode scanner)

Contents