Ditto Blog

Blog Header Image
An Inside Look at Ditto's Delta State CRDTs

Learn why State Based CRDTs are ideal for Ad Hoc meshes, and how our unique approach to Deltas keeps our messages small and our peer-to-peer sync extremely efficient.

Read More...
Russell BrownRussell Brown

Russell Brown

Getting Started with Electron, TypeScript, Vite, and Ditto

Create a Vite, React, TypeScript, and Electron app with Tailwind.

Read More...
Max AlexanderMax Alexander

Max Alexander

The Road to Good Bluetooth Permissions on Mobile

Bluetooth and Peer-to-Peer Wi-Fi on mobile never got the permissions they deserved. Let's analyze what went wrong and how to change that.

Read More...
Tom KarpiniecTom Karpiniec

Tom Karpiniec

Running a React Web App in an iOS App

Sometimes you need to run a web app locally from inside of an iOS app. This tutorial will show you how!

Read More...
Max AlexanderMax Alexander

Max Alexander

Omnichannel Retail - Choosing the Right Platform for Your Business

Omnichannel is a technology-driven strategy, and if your retail or restaurant brand doesn't have an internal software development team, you need to pay close attention. Even without internal resources, when it comes to omnichannel strategy, you must always think like a technologist.

Read More...
Max AlexanderMax Alexander

Max Alexander

Chick-fil-A Point-of-Sale System Goes Cloud-Optional with Ditto

Ditto's real-time database operates at the edge and empowers Chick-fil-A to complete its personalized, in-house POS rebuild two years quicker than planned

Read More...
Ryan RatnerRyan Ratner

Ryan Ratner

Omnichannel Retail - From Problem to Strategy

It seems like everyone in retail is fighting to kick-start an omnichannel retail strategy. To understand why, we have to trace how 3 events uprooted the world of retail

Read More...
Max AlexanderMax Alexander

Max Alexander

Getting Started with Bluetooth File Sync

Delve into the complexities of building file transfer applications using Peer-to-Peer Wi-Fi and Bluetooth APIs

Read More...
Rae McKelveyRae McKelvey

Rae McKelvey

Ditto Version 4: AddWins for the Win

Ditto version 4 (V4) will be a significant internal database upgrade compared to past versions, with performance and design improvements. This blog post covers the most consequential change to the CRDT that powers the database.

Read More...
Rae McKelveyRae McKelvey

Rae McKelvey

Converting HEX Strings to UIColor and Color for UIKit and SwiftUI

Learn how to convert HEX strings to UIColor and Color for UIKit and SwiftUI

Read More...
Max AlexanderMax Alexander

Max Alexander

Say Goodbye to Objective-C, and Hello to Swift Success

As of this month, we are announcing that we will be retiring our Objective-C SDK in favor of focusing solely on our Swift SDK for Apple platforms going forward. Here's what you can expect.

Read More...
Konstantin BenderKonstantin Bender

Konstantin Bender

Ryan RatnerRyan Ratner

Ryan Ratner

Streamline your iOS Debugging with DittoSwiftTools

DittoSwiftTools are here to boost your Ditto experience and will enable you to deliver increased value to your customers.

Read More...
Walker EreksonWalker Erekson

Walker Erekson

How to Sync Couchbase over Bluetooth and Peer-to-Peer Wi-Fi

While an embedded database is great for writing and reading from the local disk, it does not allow the application to synchronize any of the data changes in real time, directly between devices. Integrating with Ditto solves this problem.

Read More...
Walker EreksonWalker Erekson

Walker Erekson

Announcing Xamarin Support in Ditto

With added support for Xamarin today, building cross-platform mobile apps with Ditto just got a whole lot easier.

Read More...
Rae McKelveyRae McKelvey

Rae McKelvey

Ditto Unlocks the Mesh of Things: Enable Peer-to-Peer on Raspberry Pi

What happens to IoT devices when there is an internet outage? Updated Raspberry Pi support on Ditto allows formation of real-time mesh between iOS, Android, and a color changing mood light!

Read More...
Ryan RatnerRyan Ratner

Ryan Ratner

The Future of the Cloud? Make it Optional

Most apps today are cloud-only, but why? Why can't apps send data directly between devices? Why isn't the cloud optional?

Read More...
Rae McKelveyRae McKelvey

Rae McKelvey

Testing CRDTs in Rust, From Theory to Practice

Designing and implementing CRDTs is hard. At Ditto we use stateful Property-Based Testing to help us get it right.

Read More...
Russell BrownRussell Brown

Russell Brown

Introducing Combine support in Ditto

Ditto has added native support for Apple's Combine framework. Now you can build reactive Ditto applications with no additional libraries!

Read More...
Max AlexanderMax Alexander

Max Alexander

Mocking Time in Async Rust

Testing async code with timers presents unique challenges. This is how Ditto makes it work.

Read More...
Tom KarpiniecTom Karpiniec

Tom Karpiniec

Using Ditto as a Local Database

Sometimes you might want to use Ditto just as a local database. Well you're in luck; straight out of the box it supports that!

Read More...
Max AlexanderMax Alexander

Max Alexander

Coming Soon - Unlocking extreme speed with Ditto Bus

Some use cases might need raw power rather than synchronizing data though our Ditto store. This year we're introducing a new API called the Ditto Bus which gives users the ability to send data directly between peers to create extraordinary latency-sensitive applications

Read More...
Max AlexanderMax Alexander

Max Alexander

Introducing v1.0.4 for Android, 10× Faster

Ditto version 1.0.4 is now 10× faster for synchronizing documents and files. This in large part to the massive performance gains by adopting the BLE L2CAP implementation within Ditto's new networking stack.

Read More...
Tom KarpiniecTom Karpiniec

Tom Karpiniec

Introducing v1.0.3 for iOS, Now 5.56 Times Faster

Until now, our BLE support used GATT. In Ditto version 1.0.3 we are including support for L2CAP on iOS initially.

Read More...
Tom KarpiniecTom Karpiniec

Tom Karpiniec

[翻訳] Bluetooth ClassicとBluetooth Low Energyの違いとは?

Bluetooth Low Energyとは何か、Dittoでの活用、Bluetooth Classicとの違いについて解説します

Read More...
Ryan RatnerRyan Ratner

Ryan Ratner

Shunsuke KondoShunsuke Kondo

Shunsuke Kondo

USPTO Approves Ditto Patent in Less Than 3 Months

Patented Technology Ushers in New Contactless Experiences

Read More...
Ryan RatnerRyan Ratner

Ryan Ratner

[翻訳] 初めてのCore Bluetooth

Core BluetoothはBluetooth Low EnergyをiOS/macOSアプリに組み込む主な手段です。このチュートリアルではBLEのコンセプトを学びながらチャットアプリを構築します。

Read More...
Tim OliverTim Oliver

Tim Oliver

An Explanation of the Ditto Presence Viewer

A visual demonstration of devices running Ditto and the network transports they can connect with to sync data. All without the internet!

Read More...
Neil BallardNeil Ballard

Neil Ballard

The New Network Multiplexer

As part of our 1.0 release, we've made substantial improvements to our mesh networking layer

Read More...
Tom KarpiniecTom Karpiniec

Tom Karpiniec

4 Long Term Changes to the Restaurant Industry

How shifting consumer expectations and CDC guidelines have changed the industry forever post Covid-19

Read More...
Ryan RatnerRyan Ratner

Ryan Ratner

Max AlexanderMax Alexander

Max Alexander

What's the Difference Between Bluetooth Classic and Bluetooth Low Energy?

This blog post will describe what Bluetooth Low Energy is, why Ditto uses it, and how it is different from Bluetooth Classic.

Read More...
Ryan RatnerRyan Ratner

Ryan Ratner

Getting Started with Core Bluetooth

Core Bluetooth is the main way to build Bluetooth Low Energy apps on iOS and macOS. This tutorial will teach you how to build a chat app while learning BLE concepts.

Read More...
Tim OliverTim Oliver

Tim Oliver

Introducting Safer FFI

Introducing safer_ffi, a Rust framework that allows you to write foreign function interfaces (FFI) without polluting your Rust code with `unsafe` while improving readability.

Read More...
Daniel Henry-MantillaDaniel Henry-Mantilla

Daniel Henry-Mantilla

Tom KarpiniecTom Karpiniec

Tom Karpiniec

Our Journey to Making Android Bluetooth "Behave"

Most people who enter the Bluetooth APIs with Android devices immediately get quite flustered at how hard it is. However, physical android devices are a larger nightmare.

Read More...
Max AlexanderMax Alexander

Max Alexander

Ditto v2 now has 3 Times the Bluetooth Distance

Last year Ditto's iOS SDK supported a maximum Bluetooth range of 30 meters. Here Hamilton and Adam show us just how far our new v2 Bluetooth stack has come.

Read More...
Max AlexanderMax Alexander

Max Alexander

Post Covid-19 Aircraft Cabin Changes

It goes without saying that the aviation industry will be forever changed due to Covid-19. Nowhere is this change more apparent than in the aircraft cabin.

Read More...
Max AlexanderMax Alexander

Max Alexander