Developing a Distributed Data App with SwiftUI and CRDTs
Nov 3, 2020, 6:24 AM
Combine CRDTs into a full distributed data Swift app using SwiftUI and Combine.
Maintaining Order in Replicating Types
Oct 10, 2020, 2:08 PM
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...
The Danger of Playing it Safe
Sep 16, 2020, 5:18 PM
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...
Replicants All the Way Down
Sep 6, 2020, 2:29 PM
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...
Time for Tombstones
Aug 20, 2020, 2:06 PM
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...
A First Replicating Collection
Aug 9, 2020, 7:39 AM
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...
A First Replicating Type
Jul 22, 2020, 5:18 AM
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...
Conflict-Free Replicated Data Types (CRDTs) in Swift
Jul 12, 2020, 12:15 PM
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...
Why grokking flatMap is essential to effective Combine
Jun 20, 2020, 4:14 PM
flatMap in Combine is not what you would expect, but is perhaps the most important operator you have at your disposal.
Why TextView is my SwiftUI canary
Jun 7, 2020, 8:21 AM
You can learn a lot about Apple's plans for SwiftUI by looking at what they introduce for text at WWDC2020.