EasySync Beta 10 was released this morning, and I think it is probably the most significant update yet. Here's what you'll find in it...
Improved Support for Deletions. I think we are finally handling deletions in a way that makes sense and feels FileMaker-like.
Gone is the "flag for deletion" concept that I had previously used. Now, when a mobile user deletes a record, the record is immediately deleted. Behind the scenes, EasySync logs the UUID of the deleted record. During the next sync, the pushed payload includes a list of the UUIDs of deleted records. The server evaluates the list and deletes them as well.
We have also introduced a "sync check" phase to the sync process, where the mobile device sends a list of the UUIDs of records on the mobile device to the hosted database, and the hosted database returns a list of any of those UUIDs that it doesn't have. The mobile database then deletes those records.
For those of you who wish to "roll your own" deletion support, you can easily disable EasySync's deletion function.
Deployment Support. With EasySync Beta 10 comes integration with a new "EasyDeploy" (clever name, eh?) deployment solution. The goal of EasyDeploy is to make it as easy as possible for you to deploy upgraded mobile solutions to your users.
Here's how it works. Within your mobile solution is a container in which an EasyDeploy "helper" database is stored. In the hosted database, a new EasyDeploy table is used to keep track of the versions of your mobile solution. During a sync, the hosted database looks at the version that the user is syncing with to determine if it is the most recent version or not. If so, the sync proceeds as it normally would.
However, if the user's version is too far behind and is no longer supported, then the sync is rejected entirely. The upgrade process begins at that point. (More on that in a moment.)
If the user's version is out of date, but is still supported, then the sync proceeds. When the sync is completed, the user is advised to upgrade at that time.
The upgrade process itself is fairly straightforward. That "EasyDeploy" database that had been dormant in the mobile device is exported from the container and placed on the user's device, and then opened. The user is notified that the upgrade process is ready to begin, and that they should not let their device go to sleep during the process.
Next, EasyDeploy pulls the most recent version of the mobile solution from the hosted database and saves it to the user's device, and in the process replaces the older version. And finally, the user clicks to open the upgraded database.
So as you can see, EasyDeploy works hand-in-hand with EasySync to help ensure that your users are always using the most up-to-date version of your solution.
Other goodies. Beta 10 also includes a number of bug fixes, new features (including support for push and pull only tables, etc), updated and improved documentation, and more. Please refer to the Change Log in the Beta 10 zip file for details.
What's next? EasySync Beta 10 is our "Version 1" release candidate. The goal now is to fix any bugs that are reported, continue to improve the documentation, etc. In terms of functionality, what you see in Beta 10 is what will ship. If all goes well, Version 1 should be released in a week or so.
That's all for now. Thanks for your interest in and continued support of EasySync.