Automatic Client Database Creation

Deploying your client-side database to thousands of devices is perhaps one of the hardest and most trouble-prone aspects of mobile development, and we know that ourselves because we have deployed our data to many, many thousands of clients. Without an automated deployment tool like SyncStudio the developer is faced with a number of daunting tasks, all of which need to be done properly or else your application will fail and your user experience will suffer.First, if your deployment strategy does not include using an automated tool then you need to build all the code that is required to create an empty database at the client before they can synchronize. Depending on the number of tables and fields that need to be synchronized this could take a significant amount of time and effort. For a client-side application that fronts any kind of CRM or ERP system we are talking about hundreds of tables and thousands of fields.

Second, your application can not assume that the database schema has remained the same. A client could be using an old installation copy of your software that no longer corresponds to what is in your server, so your code must have a way to compare the database schemas and also to update the client if the schema is obsolete. This means adding more code (and this is difficult code to write) to your application to handle these situations, plus all the testing.

Third, if you were to code all of this manually you will also likely need to build some kind of user interface that, at a minimum, will have to keep track of logging so that you can identify and diagnose the inevitable issues. A comprehensive User Interface that offers all the features that a full synchronization needs will be much more complex. All of this is going to take a good deal of time, effort and money. If your primary concern is to get your mobile product to market in a timely way and at the lowest cost these are just unnecesary distractions and expenses that you can hardly afford.

SyncStudio does this for you, and it does it transparently. The first time the client device connects to your synchronization server we will detect that the client-side SQLite database does not exist yet and ask the server for the information required to create the database structures. Your client does not need to do anything special.

Our free client-side software has all the features that you would need to implement yourself otherwise; logging, tracing, error handling, end-to-end encryption, Session-Level transaction support, support for multiple user profiles so that the same client can be used to synchronize the databases for multiple apps and much, much more.