I know that everyone has been waiting a long time for sync and I want to reassure you that it is high on our list of priorities. As users of Squid ourselves, it’s something we really want as well! We appreciate your patience.
This is something we’ve been investigating since the app’s inception and we continue to investigate constantly. Syncing is a very difficult problem to solve, especially with regards to handwritten notes which can be combined with images and text and contain backgrounds from multiple PDFs. I don’t have an ETA for when sync will be supported, but rest assured this is a high priority for us. We appreciate everyone’s feedback on this idea.
An error occurred while saving the commentVolker Brand commented
don't try to rebuild a big solution like Evernote and so on, think easy, keep it simple, that's the charm of your Product.
Maybe do in a way like this:
At time of first saving of a new document, give every document an unique document id and build a hash over the document and sore it with the document in two values, as the "actual-hash" and "cloud-hash" value. (take care to use a function who can generate an unique ID asynchronous[offline] on different devices) take also care that the document name is a part of the document content, so if the name was change the hash changes also!
Now you have every information to decide if an document can be updated exor should better save as a new Version
after any saving of the document build a new hash over the document and store it as the actual-hash value, if the document is storing to the cloud then save the stored actual-hash as cloud-hash value to the file.
Syncing to the cloud-store:
direction "local -> cloud"
for all local documents try:
If the cloud is available and the local document ID is not existing on the cloud store, then copy the value actual-hash to cloud-hash and save the document on the cloud store.
else (If the cloud is available and the document ID is existing on the cloud store) check:
if the local document "actual-hash" == cloud document "actual-hash" -> document is in sync, do nothing
else if the local document "cloud-hash" == cloud document "actual-hash" -> do save local document to the cloud-store (write over the cloud file)
else ( the cloud document was changed by another device -> Migration conflict existing ->
generate a new document ID and store the document local and to the cloud with a Version Info(Date_Time_Info) attached to the document Name (if the local document name differs from the cloud document name, merge the Names and attach the Version Info)
direction cloud -> local:
for all cloud documents try:
if the cloud document ID is not existing on the local store, then copy and save the cloud document to the local store.
That's all, such a solution is simple and in case of an Migration conflict, the user can decide if she/he wants to merge the documents or not.
I hope you will read this and think about it, maybe you did it already.Volker Brand supported this idea ·