Remote collaboration has been increasing in popularity over the last couple of years, within professional working environments, academia as well as other fields. Tools for visual collaboration, such as through drawing, are currently lacking, with many suffering from lag, dropped connections or devices not syncing together correctly. We have created a resilient collaborative drawing app for iOS using Conflict-free Replicated Data Rypes (CRDTs) that aims to prevent failures as listed previously from becoming an issue.
Our app, which is optimised for iPads, is called Canvas. Canvas allows users to connect and draw at the same time. Changes are propagated in real time, so if a user becomes temporarily disconnected, on reconnection, the changes that they made during this period will sync up. Canvas offers features such as shape recognition and bluetooth network optimisation.
CRDTs are a class of abstract data types that allow their state to be distributed across devices, modified locally and then merged in a straight-forward manner. The important thing to note is that CRDTs guarantee eventual consistency. Therefore, Canvas is completely de-centralized, i.e. it does not rely on one of the nodes to always be connected.