Introducing v1.0.3 for iOS, Now 5.56 Times Faster

Tom Karpiniec
Tom Karpiniec
May 26th 2021
Share post:

The Short Version

Ditto 1.0.3 for iOS is now over 5x faster for syncing data over BLE thanks to L2CAP. Get started by adding or editing the following packages to your Podfile.

pod "DittoSwift", ">=1.0.3"

or

pod "DittoObjC", "?=1.0.3"

This version is fully compatible with devices running 1.0.0-1.0.2. However, it's recommended to have all the devices running 1.0.3 at the same time.

Behind the Scenes

Until now, Ditto’s Bluetooth LE support used a protocol called GATT (Generic Attribute Profile). It is compatible with any Apple and Android phones that support Bluetooth, including older models, but this mode was never designed for transferring large amounts of data. Today, more modern iOS and Android devices support L2CAP channels. L2CAP, or Logical Link Control and Adaptation Protocol, reduces a lot of overhead and is much faster compared to GATT.

In Ditto version 1.0.3 we are including support for L2CAP in iOS initially, with Android support coming in a later release. With this new protocol, update latency is less than half - now only 100 milliseconds between two phones, down from 230 milliseconds. Furthermore, data is synced at over 5x the speed from before - over 22 KB/s!

This mode will still be compatible between iOS and Android devices. We will continue to support GATT for phones that do not support it, dynamically choosing the fastest mode available based on the situation.

This change brings big benefits to customers where Bluetooth is the most convenient transport. This is the case for situations where there is no Wi-Fi such as in airplanes, warehouses, and hangars. These customers will retain the massive sync range (100M+ in the open) that Ditto BLE has always had while allowing for faster data sync than ever before. Going forward, Bluetooth 5 will bring even more benefits including higher range and transfer speed.

Update Latency between iOS GATT and iOS L2CAP

Lower is better

New Document Latency between iOS GATT and iOS L2CAP

Lower is better