This is awesome stuff. It really adds a lot of end-user benefits when your app is able to sync via Dropbox.
While the APIs are only for iOS and Android, on BlackBerry 10, it's technically baked into the OS. If the user has linked their device to Dropbox, the OS automatically syncs the filelist and presents it as a part of the filesystem. This means that the user can open, edit, and save files directly to their Dropbox, without having to worry about connectivity. This also means that every BlackBerry 10 app can access your Dropbox folder, for free.
Even still, I have a feeling the Sync API likely offers something more than what I've described, but I haven't had a chance to delve into it. But I'm glad to see Dropbox branching out like this.
Not to beat a dead horse, but this is what really concerns me about iOS. It isn't that these hooks are missing, it's that Apple has a vested interest in never providing them.
Google has a similar interest, but has provided them in Android anywyay. The lack of an Intents system in iOS is annoying, and I'm concerned we'll never see one added.
Yes. This is also how Twitter's authentication works. Twitter say that client developers should protect the secret in the binary by reasonable means, but the key from Twitter's own iOS and Android apps have already been extracted. (on a side note, why haven't any client devs who ran into token limited tries using the official keys yet? will they be taken out of an app store?)
> why haven't any client devs who ran into token limited tries using the official keys yet? will they be taken out of an app store?
Probably, just like AirFoil Speakers Touch has been kicked out for using some Apple private key extracted from the Airport firmware to act as an AirpLay receiver.
The APP credentials are for each app that integrates this Dropbox sync. The app keeps those to itself (probably hard-coded in the binary) and using them, it requests access to a Dropbox account.
Yep. And the same goes for iOS, too. I've taken a peek at the official Dropbox iOS app's API key and secret in the past just for fun, though I didn't go so far as to post them on Github.
There isn't really a way around it other than implementing authentication in a remote server. In that scenario, the app doesn't authenticate directly with the service, but with a private server. This way you can, for example, authenticate your users and create sessions before they can access the Dropbox API.
It can still be abused, but at least you can know who did it.
If a user doesn't have an account (or hasn't linked their account yet) Dropbox should let developers store data in an anonymous account tied to that device until the uses does. I think developers would pay for that.
Agreed. I'm finding the iOS version of iA Writer doesn't like it when I modify the file elsewhere - I have to manually switch files for it to detect the change.
I've been using KeePass with Dropbox to send the file across devices, unfortunately it not a true sync, so if I add a Password into my iPhone (rare as that is), I can't update the master password file on Dropbox.
Yes! From their "Getting Started" section - " you'll need to add snippets of code in the right places to successfully link a user's Dropbox account to your app"
It's one of the most useful, yet under-used feature of Android. It allows apps to save their settings for when users change devices. Sadly, it doesn't allow sync-ing.
Dropbox have to implement this api on a per-platform basis, so the question is first which platforms to support, then on those platforms what language APIs to provide.
I like the iOS API's simplicity. Also the ability to attach observers to file objects. Much easier to use than iCloud (IMHO) and cross platform are huge advantages for me personally.
One thing that I really have to complement Dropbox for is their abstraction layer. It is so much simpler and easier to use than other providers versions of the same API (e.g. Google Drive).
Anybody know what API they're using under the hood for this? I have wanted to use the delta REST API (https://www.dropbox.com/developers/core/api#delta) but since I can't limit it to the subdirs my app cares about, I get overwhelmed with a lot of noise and it generally ends up being more data than polling and walking the sub-tree each time.
The delta API is a real pain to work with unless you're interested in keep the entire Dropbox state in sync.
I ran into the same thing and it was only on my (fairly inactive) Dropbox account.
The other problem is that the API doesn't differentiate between a simple rename and a delete+create. I understand that's just file system semantics but I wish their API was a little smarter than that.
this only makes sense if you save locally and want to have the files synced to the cloud like Dropbox does. Since a webapp will most likely not store stuff locally (and when it does, i doubt dropbox could access it) it doesnt really make sense.
But you can still use their Core API for this though.
I'd like to see this baked into Mac/Win applications since I'm not using Dropbox but would still like to use sync capabilities without having to install the whole desktop client.
While the APIs are only for iOS and Android, on BlackBerry 10, it's technically baked into the OS. If the user has linked their device to Dropbox, the OS automatically syncs the filelist and presents it as a part of the filesystem. This means that the user can open, edit, and save files directly to their Dropbox, without having to worry about connectivity. This also means that every BlackBerry 10 app can access your Dropbox folder, for free.
Even still, I have a feeling the Sync API likely offers something more than what I've described, but I haven't had a chance to delve into it. But I'm glad to see Dropbox branching out like this.