Back in December, we announced we were working on a new sync solution for iBank. It has been in development for some time now and is coming along nicely. Though it’s not ready for release just yet, I wanted to touch base with everyone to talk about how sync is shaping up. But first some history.
Why are we doing this?
Our current sync solution was originally designed to sync from iBank for Mac to iBank Mobile on the iPhone using MobileMe. It was designed with the Mac serving as a hub for all of the iPhones that sync with it. We extended this model to support iPad and moved from MobileMe to webDAV when MobileMe was discontinued. Since that time we have been researching various replacement solutions. We looked at iCloud CoreData sync, but with the complexity of our model — including external file attachments and various schema differences between products — this option did not work for us. We looked at working with DropBox or other host file storage systems, but again, these did not meet our needs. It became apparent that to get what we wanted, we were going to have to build it.
There were two key goals that have driven the design of our new sync solution. The first is to be able to sync any combination of supported devices without needing iBank for Mac to act as the hub. This means you can sync between iBank running on an iPad and an iPhone, or two (or more) iPhones, or two (or more) iPads, all without needing iBank for Mac. (You can even sync two financial books on the same iPad, but I am not sure why you would want to.) Of course you can still include iBank for Mac in the mix. And, as part of this setup, we don’t want to require that any device be on and running iBank except the one actually doing the current sync.
The second goal is that syncing should be easy to set up and effortless to use. This means we don’t want customers to have to enter URLs, or set up accounts with third parties, or worry about router configurations. If you have Internet (specifically web) access from the device, then you can sync, period. This also means that you don’t need to be connected all the time to use your data, and when you reconnect, any changes that you made will sync.
There is a third, overarching requirement that we have for all our products and features: security. We want to make sure that your data is protected from bad guys, from good guys, and even from us.
So what did we do to reach these goals?
The first goal, to support any combination of devices with only the syncing device needing to be on, leads us to having a server to store the sync data that all devices can connect to at any time. This is because we have to hold the sync data somewhere. Furthermore, since our products can support multiple financial books or documents, the server will need to have support the syncing of different financial books to different devices.
The second goal also leads us to wanting to have an IGG server so that you don’t need to set up with third parties or enter URLs, as the webDAV solution requires. Also, the IGG server needs to be smart enough to handle incremental updates to the sync data.
This runs right into the third goal of security: we don’t want to see your data. To meet this requirement we are going to chunk and encrypt all the sync data on device with a random key. That key will be encrypted with a password that you provide. The result is that the sync server will only be dealing with chunks of encrypted data. We at IGG will have no way to see the actual data on any of our servers or in transit. When a new device is set up to sync with a financial book, you will enter the password that you originally provided for the encrypted key.
If that seems complicated, what will your experience be like?
We think this experience will be great.
When you decide that you want to share your existing iBank for Mac financial book with other devices, you just choose a new menu item “Share Financial Book…” from the file menu. This will bring up an assistant that will ask for your iBank ID (or you can set up a new iBank ID at this time). The assistant will then ask you for a name for the shared financial book, or it will default to the file’s current name. Finally the assistant will ask you to enter (and confirm) a passcode for the data encryption. After that the financial book will start uploading to the sync server.
When you go to your iPad and create a new financial book you will be asked if you want to create this from a shared financial book. When you say yes, you will be prompted for your iBank ID. Once that is entered you will get a list of shared financial books and you just select the financial book you want. You then enter your passcode for the sync encryption and the data will start to download. After that you should not need to do anything and the two (or more) local financial books will stay in sync.
What will happen to our current sync solution?
When we launch our new sync solution we will be sunsetting our old sync methods. This means that all products that support the old sync solution will continue to work. At some point after the launch of our new sync solution we will be slowly removing support for the old sync as we revise those products. I know that it will be a disappointment to some of you when we ultimately drop support for local Wi-Fi sync. However, at this time we just see one integrated host sync solution as the best way to meet the vast majority of customer needs.
How much will I have to pay for this fancy sync?
This sync solution has been very expensive to build and host. The hosting will also be an on going expense for IGG. However we think that the sync experience is so key to what our products offer, now and in the future, that we are offering sync for free: no monthly charge, no Direct Access subscription required. Just FREE.
Anyway I wanted to fill you in on where we are with sync and what it will look like. I hope that this gives you a better idea.