A couple of weeks ago we released Ditto 1.0.3 for iOS which sped up synchronization over BLE by over 5×. Now, with 1.0.4 we can see an immense speed improvement on Android devices of up to 10×. Take a look at some quick benchmarks below!
TLDR: We are looking at 17 kilobytes per second. To give you a comparison, a 128 kbps MP3 is 16 KB/s. This makes it possible to transfer some very rich content on one of the most bandwidth constrained techniques that Ditto supports.
For more information follow the instructions in our docs for Kotlin and Java.
This version is fully compatible with devices running since 1.0.0. However, it's recommended to have all the devices running 1.0.4 at the same time if you're interesting in seeing the massive improvements on both iOS and Android.
Previously Ditto on Android used a mode of Bluetooth LE called GATT (Generic Attribute Profile). It is compatible with any Apple and Android BLE devices. However, it was far more sluggish than our other network transports like Local Area Network or peer-to-peer WiFi. Android devices experienced some of the slowest connections for sending large payloads. With 1.0.4, it becomes viable to send larger payloads at greater distances.
implementation "live.ditto:ditto:1.0.4"
Important: Note that Ditto does not solely use BLE as a mechanism for sending data. We multiplex over multiple transports at the same time. For most applications Ditto will automatically send bytes over multiple transports for even faster performance. To test Ditto using only BLE please disable WiFi in the settings on your Android device. In addition, if your device is using older hardware or an OS earlier than Android 10 you'll see varying results.