Offline/online synchronization is one of the biggest challenges when it comes to taking web apps offline. Adobe, whose AIR platform brings us some of our favorite apps as of late, like Twhirl and Snackr (our coverage), offers a way for developers to create web-based applications that run even when there is no internet connection. Offline, users can make changes that get synced back to a central server when the internet connection returns. However, in the past, this is no easy easy feat. To help address some of the issues with offline sync, Adobe released LiveCycle Data Services ES 2.6 (LCDS) last month, which aims to make the process easier.
Ryan Stewart, who will be speaking at 360|Flex San Jose in August on this subject, calls the process of doing conflict resolution for data when you go back online a "big pain in the..." Well, you know.
He then points us to a resource that can help. Using LCDS, Christophe Coenraets has just published a sample application called InSync (zip file) that shows developers how to build an AIR app that offers automatic offline data synchronization. What this means is that the whole data sync process is entirely automatic - developers don't have to write SQL statements or sync logic to keep a local database in sync with the central one.
InSync Sample App
You might be thinking that this news really doesn't impact you because you're not a developer, but what you're going to see is the impact of this as more developers begin to use LCDS. Take, for example, the nifty little AIR app called ReadAIR (that just added keyboard shortcuts - yes!). This app lets you read Google Reader via a desktop app. On the project homepage's "to-do" list, one upcoming item is "offline sync." By using LCDS, the process of enabling such a thing could be much easier. And if it's easier to develop, you'll get that offline sync added to your favorite AIR app much faster. You'll also see more apps providing this in the future. As developer John C. Bland wrote on his blog:
"I'm a skeptic at times when I see a little bit of code doing a lot but DANG! This time I was proved wrong."