Dropbox’s Datastore API Takes Aim at iCloud
At its first DBX developer conference on 9 July 2013, Dropbox announced a new platform, called the Datastore API, which offers exciting data-syncing possibilities for future iOS apps.
If you use an iPhone or iPad, chances are that you depend on one or more apps that sync via Dropbox’s file-based Sync API. The Datastore API takes syncing support a step further, enabling developers to build simple databases into their apps and have the data in those databases — contacts, to-do items, and settings, for example — synced with other Dropbox-connected apps.
The Datastore API automatically merges data when changes in a Datastore-enabled app are made on different devices, eliminating worry about conflicts. Plus, Datastore-enabled apps can work offline, saving changes locally, and then sync up once a connection becomes available.
With the addition of the Datastore API to the existing Sync API, Dropbox is offering a noteworthy alternative to Apple’s iCloud. While storing both key-value pairs suitable for simple configuration data and discrete documents has worked well in iCloud, the more complex Core Data syncing has suffered from significant problems. (Core Data is Apple’s preferred way to work with data in both iOS and OS X, and it’s heavily used by Apple developers.)
For those who have struggled with iCloud data syncing issues, Dropbox’s Datastore API might hold out new hope. To gauge reactions, we reached out to two developers who have publicly criticized iCloud in the past: Greg Pierce of Agile Tortoise and Rich Siegel of Bare Bones Software.
“I think it’s a bit premature to make any long term judgments about it, but Dropbox has a great reputation in this space and has become ubiquitous enough that requiring a Dropbox account for sync is not terribly intrusive for many users,” said Pierce, whose Drafts note-taking app for iOS has garnered many fans. But he tempered his optimism by pointing out Datastore API’s limitations, like a lack of support for Apple’s Core Data, as well as tight limits on database sizes and queries.
Siegel, whose “digital junk drawer” app Yojimbo relies on Core Data, echoed Pierce’s concerns about the lack of support for Apple’s database framework, and pointed out that the Datastore API is not yet available for OS X — only for iOS, Android, and JavaScript (Web apps).
The lack of desktop support severely limits the Datastore API’s potential. Steve M., a Dropbox employee who posts on the company’s official forums, has indicated that a desktop library will be added, but initially only for the Python scripting language. This is sure to disappoint Mac developers, as almost all Mac apps are developed in the Objective-C language. Mark Munz of Unmarked Software commented on Twitter that requiring Python for access to the Datastore API on the desktop is a bit like a Mac-native Cocoa app requiring AppleScript to access an API —
it can be done, but is a hack and hard to maintain.
Rich Siegel also noted, “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 develop and implement an alternative strategy. Although the Datastore API shows promise, in none of those cases do I expect a developer to drop what they’re doing and try to adopt it if they already have a plan in process.”
In short, cautious optimism. Although Dropbox has a good reputation, the fact that Apple has struggled with Core Data syncing via iCloud shows that making something like the Datastore API work reliably isn’t an easy task, and until developers have had a chance to dig into it, they won’t know how well it actually works.
Plus, without support for both Core Data and OS X, the Datastore API won’t be able to replace many uses of iCloud syncing anytime soon. Even if it gained those capabilities, many Apple developers have put a lot of time and money into making iCloud work. And those developers who have rejected iCloud, like The Omni Group and Vemedio, have invested heavily in creating their own syncing solutions, and will be unlikely to abandon them for Dropbox. But for developers just starting sync-related projects, or those without the resources to develop independent solutions, Dropbox’s Datastore API may open a new world of
possibilities.
Also announced at the DBX conference were a couple of useful interface elements that will start appearing in Dropbox-savvy iOS apps soon: the Chooser and the Saver. The Chooser is a file picker for Dropbox, much like iCloud’s document browser, that developers will be able to drop into any app to make it easy for users to open documents stored in Dropbox. On the other end of the equation, the Saver enables users to save a document to Dropbox with a single click. It’s available for Web apps now, with versions for iOS and Android coming soon.
It's popular already to pit the not yet available Dropbox Datasrote service against iCloud in article headlines. But if you read below the headlines it's clear no real competition yet exists, or is likely to exist in the near future. In other words, the headlines are pure link bait. I admit I'm somewhat dismayed to see this tactic on TidBITS, which normally doesn't go in for such cheap thrills.
That said, Apple could use some competition. At best the Dropbox move will light a fire under Apple to get iCloud sorted out - but I wouldn't hold my breath. Apple's efforts in the cloud have always been half-hearted and half-baked. At the moment there's no reason to believe iCloud will be any better.
As things stand now, Dropbox and iCloud don't compete head to head on much of anything. Their services are complimentary. Dropbox has much more serious fish to fry with competition from other cloud based data storage and sync services from Microsoft, Amazon and Google, as well as innumerable smaller players.
Indeed, Datastore is more likely to attract developers on Android, where the field for such services is wide open. But that doesn't make for dramatic headlines. There's no David vs Goliath scenario to pump full of hot air.
No cheap thrills were intended, I assure you. On the fact of things, the Datastore API (which is indeed available now in beta release - you can download the SDKs) would seem to be direct competition with what Apple is doing with Core Data syncing in iCloud, and since that technology has come in for significant criticism from developers for, well, not working, I don't think it's inappropriate to cover something that promises an alternative.
Nonetheless, as we got further into the article (Josh wrote the bones, but I put a lot of flesh on them), it became clear that the Datastore API isn't nearly as full-fledged as would be ideal for Apple users, due to the lack of Core Data support and the lack of a good OS X story. I think the story covers that quite thoroughly.
But I think you may be counting Dropbox out of the Apple world too quickly. Unless Apple gets its act together with iCloud, it's possible that iOS developers might start eschewing Core Data in favor of Datastore. A heck of a lot of developers support Dropbox's Sync API now, and are comfortable with it, so if Datastore actually works well and is easy to implement, it could catch on. And although the OS X story is weak right now, if Datastore is proving popular on iOS, Android, and in JavaScript, I can't imagine Dropbox wouldn't extend to OS X and Windows in a more wholehearted way.
I apologize if you think our headline was linkbait, but I disagree. iCloud's Documents in the Cloud was a direct response to the popularity of Dropbox on Apple devices. If you'll recall, Apple tried to purchase Dropbox a few years ago, but they insisted on staying independent.
Now Dropbox has implemented some of iCloud's features, like a file picker - specifically targeted at iOS. That's no coincidence.
Apple and Dropbox are competitors, in a sense. Dropbox has a tight grip on Apple's iOS devices. Apple's tried to loosen that with iCloud, which hasn't been a huge success, and now Dropbox is stepping up to maintain that control.
Jobs called Dropbox a feature, not a product. That may be true, but Dropbox is trying to make sure that it's an essential feature of any device.