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 hold-up 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 say, “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 says, 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 says. 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 says that he didn’t even bother looking at the Datastore API. “I don’t really care,” he says. Because it’s not core Apple functionality, Haddad says, “It doesn’t run in the background,” which makes it far less appealing to him. Even with iOS 7’s improved background functionality, Haddad says, Dropbox won’t be able to match the ubiquitous omnipresent syncing that iCloud affords.
Haddad also points 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 points out, “which makes it an instant non-starter for any developer who needs to synchronise data between desktop computers, whether or not mobile devices are involved.”
That’s not the only downside for Datastore, either. All three developers mention 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,” says 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 says. 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 says, are a must-have for “larger datasets that cannot all be held in memory”. But he adds, “I think the Dropbox Datastore can really shine for apps with small datasets.”
Siegel seemingly concurs. “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 says, “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 says, 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 continues, “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. Pierce says, “[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 adds, “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, adds 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 says, 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.”
by Lex Friedman, Macworld