Developers would love to love iCloud. But many of them find Apple's syncing platform ineffective, unreliable, or worse. Some developers have even pointed to iCloud sync woes as a significant holdup in releasing new versions of their apps.
And now Dropbox, the beloved powerhouse of sync, has taken a direct shot across Apple's cloudy bow, with the announcement this week of its new Datastore API. Dropbox says that the Datastore API makes simple work of syncing structured data ("like contacts, to-do items, and game state") across devices--and even platforms: Unlike iCloud, the Dropbox Datastore API works across iOS, Android, and the Web.
Because of the way Dropbox works, it offers one other significant potential advantage over iCloud: Developers who are working with Datastore can actually peek directly at the syncing data on Dropbox's servers as they test and build their apps, a level of visibility that iCloud simply hasn't offered to date.
Macworld spoke with several developers to get their thoughts on Datastore as compared to iCloud. Expectations are mixed.
Greg Pierce of Agile Tortoise--maker of sync-friendly apps like Drafts--is pleased by Dropbox's announcement. "I think it's exciting to see more players in this space." Though he's only played around with Datastore a bit, he said that "if it reliably delivers what it promises, then it's a potentially very useful API with some real advantages over other sync options right now."
Pierce said, however, that while "Datastore seems simple to implement," what it offers doesn't match directly what iCloud's Core Data sync does--or is meant to do. That iCloud feature, when it works, should allow apps to reliably sync changes to large, complex databases, without requiring that the full data set be uploaded to the server. Datastore's "scope is more limited," Pierce said. All that said, if it works consistently, "that may still make it an attractive option for many apps."
Charles Perry from Leaf Hut Software thinks Datastore shows promise, too: "Syncing is a notoriously hard problem ... Even Apple, with all its resources, couldn't pull it off. But Dropbox has a proven record in document syncing, so they may be able to succeed where others have failed."
Rainclouds on a cloudy day
Not everyone shares Pierce's cautious enthusiasm.
Tapbots's Paul Haddad told Macworld that he didn't even bother looking at the Datastore API. "I don't really care," he said. Because it's not core Apple functionality, Haddad said, "it doesn't run in the background," which makes it far less appealing to him. Even with iOS 7's improved background functionality, Haddad said, Dropbox won't be able to match the ubiquitous omnipresent syncing that iCloud affords.
Haddad also pointed out that with each successive iOS release since the introduction of iCloud, the under-the-hood mechanics and functionality for its syncing have improved. He's optimistic that the trend will continue with iOS 7.
Rich Siegel of Bare Bones Software sees the Datastore API as unattractive to many developers in the Apple ecosystem for another reason entirely: "There is no SDK for OS X," he pointed out, "which makes it an instant nonstarter for any developer who needs to synchronize data between desktop computers, whether or not mobile devices are involved."
That's not the only downside for Datastore, either. All three developers mentioned that iCloud doesn't require users to sign up for a new account, and Dropbox does. That said, "Dropbox has become ubiquitous enough that it is highly likely that someone who downloads your app will already have a Dropbox account and will only need to authenticate with it," said Pierce, but that's less assured--and less seamless--than an iCloud-backed option.
What Dropbox does and doesn't do
"In theory at least, iCloud used with Core Data offers ... powerful tools to work with relational data, an extensive query language, [and] tools for working in multi-threaded environments," Pierce said. Datastore can't match that functionality. It can't perform sorted queries, queries that require joining bits of data from multiple datasets, or paginate results--all fairly basic database functionality that's (at least currently) beyond the scope of what Dropbox offers.
Such features, Pierce said, are a must-have for "larger datasets that cannot all be held in memory." But he added, "I think the Dropbox Datastore can really shine for apps with small datasets."
Siegel seemingly concurred: "The question of which service a developer chooses should, I think, revolve around what meets the technical needs of the developer on the way to shipping the product that best suits their customers' needs."
If Apple has cause for concern, Perry says, it's all that cross-platform support that Dropbox offers. "iCloud represents [Apple's] attempt to lock users into their ecosystem ... If Dropbox catches on as a mainstream sync solution, it makes it easier for users to pack up and take their data to other mobile platforms like Android, or even other desktop platforms like Windows."
That syncing feeling: Which sync service developers will choose?
"I can imagine a developer will find the Dropbox Datastore API worth a look," Siegel said, "if their product is not on OS X and they have an interest in structured key/value/record/table database syncing and/or need a solution for both iOS and Android." If a developer is instead targeting the Apple ecosystem exclusively, Siegel said, iCloud "is the platform-vendor-sanctioned solution, offers integration with the existing platform document and data storage APIs, and is available as part of the stock OS install at no charge."
Siegel continued: "Dropbox does provide valuable services in the SDK, but these additions, while intriguing to some and potentially useful to many, do not represent an alternative to iCloud."
Of course, if you want your app to sync to any non-Apple device, or to sync to your service's website, iCloud won't work. Said Pierce, "[Dropbox's] additional flexibility of being able to access that data on Web or Android-based clients is attractive for many apps as well, and not something Apple offers."
Siegel added: "Anyone who's been working on iCloud thus far has either made it work, is in a holding pattern waiting for developments, or has gone on to devise and implement an alternative strategy. Although the Datastore API may look promising, in none of those cases do I expect a developer to drop what they're doing and try to adopt it if they already are in the process of executing an existing plan."
If your app's needs can be met by (and synced with) Datastore, added Perry, "then I think you'd be crazy to not at least consider it. The integration won't be as seamless as iCloud promises to be, but the Dropbox Datastore API opens up all kinds of business opportunities that aren't possible with iCloud."
"Ultimately," Pierce said, Dropbox Datastore "will be judged on how reliably and efficiently it can deliver sync data"--especially because "iCloud Core Data [sync] sounds great on paper, but it practice has not delivered on its promises. If Dropbox can deliver and continue to build on this platform, I think they can become a real player in the database sync arena."