It's been an exciting week as far as EasySync goes. Since releasing it to beta on Wednesday afternoon, I have already released four updates, all based on feedback from beta testers. I can't thank you enough for your interest in EasySync, and for your suggestions, ideas, and comments.
I am already hard at work on the next release, and this one will include many significant changes and several new features. Here is what you can expect:
The most significant change being made is in how EasySync keeps track of changes and additions. This involves switching from standard timestamps to "Coordinated Universal Time (UTC)." This should fully resolve the timezone and server configuration issues that some of you have been experiencing. It will also allow mobile users to move between timezones without causing sync issues.
I am adding support for a "client version number" concept. You can assign a version number to your mobile database, and optionally evaluate it during the sync to determine if the sync should proceed.
Also, I am adding support for evaluating the speed of a mobile client's connection prior to the actual sync. You can configure EasySync so that if a user's connection is too slow, the sync is cancelled.
During all phases of the sync process, additional information (including device info, the connection type, IP address, etc) is now passed to the server. You can use this information to apply more advanced business rules.
I am hoping to add support for handling deleted records, particularly those that have been deleted on the server side. This will involve adding another phase to the overall sync process, where the mobile database says to the server, "Here are the records that I have. Do I need to delete any of them?" I am calling this a "UUID Sync Check," and you can learn more about the concept in this blog post.
The demo database is being modified slightly, to reflect what I think are some best practices for mobile databases ("thinner" tables, container data stored in child records, etc).
Most of those changes have been completed. However, I need to do some additional testing before releasing this as "Beta 6." I am hoping to do that on Monday morning. Stay tuned to Twitter for updates.