This post is the result of a lot of thinking. It’s not very uplifting, but it is where I am right now. It is presented in two versions: the first is written entirely by yours truly, and the s…| A p p D e c e n t r a l
Combine CRDTs into a full distributed data Swift app using SwiftUI and Combine.| A p p D e c e n t r a l
In our continuing series on Conflict-Free Replicated Data Types (CRDTs) in Swift, we have so far introduced a number of types, beginning with the very basic register type, and working up to multi-value containers like sets and dictionaries. Now we are ready to introduce the most advanced type in the whole series. It is a … Continue reading Maintaining Order in Replicating Types→| A p p D e c e n t r a l
It’s an old chestnut that Swift developers love to sink their teeth into: Should you force unwrap optionals? Everyone has an opinion about it, and I’m going to state mine as clearly as I can — forcefully unwrap early and often. Of course, this is just one opinion. We even disagree about it within our two man Agenda team, so … Continue reading The Danger of Playing it Safe→| A p p D e c e n t r a l
In the previous installment of this ongoing series on Conflict-Free Replicated Data Types (CRDTs) in Swift, I introduced you to tombstones and Lamport counts, in constructing a replicating set. This time we’ll take a similar approach for a more common data type: the dictionary or map. The code for our ReplicatingDictionary will be quite similar … Continue reading Replicants All the Way Down→| A p p D e c e n t r a l
Other Posts in Series Last time we introduced our first replicating collection, an add-only set. Although useful in some specific circumstances, it isn’t a generally applicable set type, because it can only grow — you can’t remove entries from an add-only set. In this post, we are going to build a more advanced set which is capable … Continue reading Time for Tombstones→| A p p D e c e n t r a l
Other Posts in Series In the last post I introduced you to the first replicating type in this series: a register. A register is a simple type, one that you may even have used yourself at some point, which keeps the most recent value that has been set, together with the timestamp of the update, … Continue reading A First Replicating Collection→| A p p D e c e n t r a l
Source code for this series is in this GitHub repo. It will be extended with each post. Other Posts in Series When I first started reading about Conflict-Free Replicated Data Types (CRDTs), I expected a fertile new field of Computer Science dedicated to a whole new approach to managing data. I was soon somewhat disappointed, … Continue reading A First Replicating Type→| A p p D e c e n t r a l
Other Posts in Series If you read any of my earlier posts here, you were probably left wondering what the name of the blog was all about. When I came up with the idea, I was planning to blog about decentralized approaches to handling app data, ie, how to sync with other devices, servers, extensions, … Continue reading Conflict-Free Replicated Data Types (CRDTs) in Swift→| A p p D e c e n t r a l
Forked is a new Swift framework for working with shared data, on device, and across networks.| A p p D e c e n t r a l