11-06-2024, 05:41 AM
Unfortunately, I think there are some limitations in MobileSheets that are going to make it difficult to use for what you are trying to do:
1) Annotation synchronizations are pretty much "all or nothing". Annotations can't be merged - they can only be replaced, which is a problem if multiple users are making different annotations and they both need to push those changes.
2) Synchronization is currently manual - users have to push changes, and pull changes. If multiple users synchronize to a cloud folder at the exact same time, there is no lock, but it could result in an unexpected outcome as the database is only uploaded at the end, so one user's synchronization would overwrite the others.
One of my goals is to support automatic synchronization of annotations when using the "Connect Tablets" feature. If you can have all the tablets connected over WiFi or bluetooth (bluetooth only supports 7 simultaneous connections), then that feature might be of use to you. However, if you need an offline way of synchronizing all the annotations, then I would have to support a concept of merging annotations, but this is really a can of worms, because there is no way to uniquely identify an annotation. While MobileSheets could try to make educated guesses to match up annotations, there are so many potential scenarios where it could get it wrong, and users would not be happy having duplicated annotations if it got it wrong. What I could do is start tracking annotation changes by layer though, and just replace individual layers based on when they were last modified. If each user worked on a different layer, than this would prevent a lot of conflicts and problems. I don't currently track the last modified timestamp for each layer though, and this is still potentially fragile. Some users have asked for the ability to pick which layers are synchronized, and while that's something I may consider supporting, I'm really not sure how great this will be in practice, because if the user has hundreds of layers across hundreds of pieces, that's going to be difficult to manage (that's assuming each layer had a unique name, as I would be matching on name).
The last problem that would have to be resolved is the correct handling of multiple synchronizations occurring at the same time from different users. There is no lock currently, but I think I would need to implement one to ensure data integrity. However, if the synchronization occurs automatically in the background, it would need to be made intelligent so that it only synchronizes the small amount of data that has changed. If I can speed up the synchronization in this way, then the lock would be very short.
It may be some time before all of these issues are tackled though.
Mike
1) Annotation synchronizations are pretty much "all or nothing". Annotations can't be merged - they can only be replaced, which is a problem if multiple users are making different annotations and they both need to push those changes.
2) Synchronization is currently manual - users have to push changes, and pull changes. If multiple users synchronize to a cloud folder at the exact same time, there is no lock, but it could result in an unexpected outcome as the database is only uploaded at the end, so one user's synchronization would overwrite the others.
One of my goals is to support automatic synchronization of annotations when using the "Connect Tablets" feature. If you can have all the tablets connected over WiFi or bluetooth (bluetooth only supports 7 simultaneous connections), then that feature might be of use to you. However, if you need an offline way of synchronizing all the annotations, then I would have to support a concept of merging annotations, but this is really a can of worms, because there is no way to uniquely identify an annotation. While MobileSheets could try to make educated guesses to match up annotations, there are so many potential scenarios where it could get it wrong, and users would not be happy having duplicated annotations if it got it wrong. What I could do is start tracking annotation changes by layer though, and just replace individual layers based on when they were last modified. If each user worked on a different layer, than this would prevent a lot of conflicts and problems. I don't currently track the last modified timestamp for each layer though, and this is still potentially fragile. Some users have asked for the ability to pick which layers are synchronized, and while that's something I may consider supporting, I'm really not sure how great this will be in practice, because if the user has hundreds of layers across hundreds of pieces, that's going to be difficult to manage (that's assuming each layer had a unique name, as I would be matching on name).
The last problem that would have to be resolved is the correct handling of multiple synchronizations occurring at the same time from different users. There is no lock currently, but I think I would need to implement one to ensure data integrity. However, if the synchronization occurs automatically in the background, it would need to be made intelligent so that it only synchronizes the small amount of data that has changed. If I can speed up the synchronization in this way, then the lock would be very short.
It may be some time before all of these issues are tackled though.
Mike