Some of us on the Beezwax team had the pleasure of watching John Sindelar and Todd Geist present their new GoZync framework at June's DIGFM developer meetup. If you know anything about either of these fellows, you know that they are both very sharp and visionary developers. Now they've thrown their collective brain power at the problem of "How do mobile users work with their databases offline?" The GoZync framework is designed to answer this question for FileMaker Go users on iPad and iPhone. For developers, it's potentially a way to face the challenges of syncing and connectivity.
The presenters and audience at DIGFM had an easy time providing examples of "offline database users":
- Plumber working onsite at client offices
- Legal clerk working in a secure (Internet-free) courtroom
- Equipment-delivery driver
- Education tutors visiting students
- Survey-taker visiting villages in Africa
And the list goes on. Even an office worker walking between WiFi connectivity points, or starting and stopping FileMaker Go might face the "offline" issue.
For those of you who missed out on John and Todd's "GoZync Demo Tour", here's a quick recap:
Solving The Mobile "Offline" Problem
In a nutshell, GoZync provides a framework for transactional transfer of data between FileMaker Go apps and your server. This solves a host of problems that otherwise make deployment to mobile devices unfeasible or unprofitable on FileMaker Go. Instead of worrying about clients losing their internet connection, GoZync enables them to work offline and push their data to the server later.
Have the challenges of offline database use limited your deployment of mobile solutions (via FileMaker Go) for your company or a client? GoZync promises to change that.
How It Works
The common GoZync deployment will involve at least three FileMaker files:
- Central hosted database, typically FileMaker Server
- Mobile front-end deployed with FileMaker Go*
- Intermediary hosted database containing core of GoZync logic
This is all FileMaker-native stuff. "No plug-ins required". To be clear, we're not talking about two-way syncing. (Really, that's super difficult to accomplish!) GoZync is a push-pull framework. It moves data between your mobile device running FileMaker Go and your central hosted database. It's up to a FileMaker developer to merge incoming data beyond the basic "last commit wins". But there's nothing stopping you from customizing the process.
* FileMaker Go supports iPad, iPhone, and iPod touch. But in theory the GoZync approach works with FileMaker Pro on a laptop, with the same benefits for offline database use.
What GoZync Does
Here's a rundown on some of the primary challenges addressed by GoZync:
Makes transaction as fast and reliable as possible
The biggest challenge with deploying hosted solutions to mobile devices is ensuring that data isn't getting lost or corrupted when the user quits their app or loses their connection. In GoZync, each set of records (parent and children) being pushed is sent as a single document to ensure that you never have orphans. Either the entire document gets transferred or the entire set of records is saved for transferring later. This "GoZync document" has a custom markup to ensure that it is also lightweight, readable and easily parsed in FileMaker. (Don't worry, container field data is also supported.)
Makes mapping of data between mobile and server files easy
Your success with a framework or extension like GoZync depends largely on how easily you can set up and configure it. Todd and John have made setup super easy in GoZync. Here's a rough run-through of configuring the push process (as I understand it from the presentation):
- Open your GoZync file and add your hosted database as an external data source
- Go to a configuration layout
Add a tab for your table and drop your desired fields onto the tab
- Data from each field will be posted to a variable named after the field
- Export and open customized setup instructions (yes, customized!)
- Add some Set Field steps to map the data variables to the receiving file
The data parsing and mapping is all unlocked so you can customize it easily. You have room to add your custom data validation or syncing logic if you wish. GoZync also includes some robust error handling to ensure you get the variable names right.
Keeps dependencies to a minimum
Using an intermediary file means that GoZync can be bolted onto an existing solution with very few modifications to the existing files. You don't even need to create accounts for the mobile users because they only interact with the intermediary file. There aren't even any plug-ins involved.
Handles smooth delivery of new mobile files
I missed some of the nuances here, but the bottom line is that developers can release new mobile databases with minimal hassle for all involved. Users click a button, get a database version update, and land back on the same layout when they're done — new file, data set preserved, no fuss. End users never have to worry about finding the new file or determining which file is current. You can also deliver new — even customized — data sets with your updates if you choose.
What does this mean for FileMaker and your business?
Mobile is a not just about new devices, but potentially about new markets for FileMaker. Mobile users offer FileMaker developers an opportunity to build new types of solutions.
John expressed it well in his presentation. And you may hear him say it again, because it's an important point (paraphrased here):
FileMaker has worked well for us in office settings. If we've looked to help a business, it's been in the office where we're used to working. We never thought to look at the delivery trucks in the parking lot. Now we have a high ROI product to sell to all those trucks!
GoZync isn't the Holy Grail to solve all syncing and connectivity problems, but it does provide an elegant means of storing and sending data. Now every time I see a clipboard, I can envision replacing it with an iPad with a FileMaker Go and GoZync integration running on it.