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.”
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.
“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.”
“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.”