Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloud sync APIs for mobile developers
Search
Leah Culver
May 06, 2014
Programming
0
160
Cloud sync APIs for mobile developers
APIDays Berlin, May 6, 2014
http://berlin.apidays.io/
Leah Culver
May 06, 2014
Tweet
Share
More Decks by Leah Culver
See All by Leah Culver
Writing stable iOS applications
leah
2
190
Idea to launch - the start of a startup
leah
1
61
Say “yes” to user feedback
leah
0
49
Intro to Dropbox APIs
leah
0
250
Working with web APIs in Swift
leah
0
79
Dropbox APIs for JavaScript developers
leah
3
1.2k
Cloud sync APIs for mobile developers
leah
1
130
App Data, Everywhere: Cross-Device Content Sharing
leah
2
720
Cloud Sync for App Developers
leah
1
96
Other Decks in Programming
See All in Programming
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
0
140
tsconfig.jsonの最近の新機能 ファイルパス編
uhyo
6
1.3k
Rails 8 Frontend: 10 commandments & 7 deadly sins in 2025
yshmarov
1
600
2024-10-02 dev2next - Application Observability like you've never heard before
jonatan_ivanov
0
150
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
120
(Deep|Web) Link support with expo-router
mrtry
0
100
Pythonによるイベントソーシングへの挑戦と現状に対する考察 / Challenging Event Sourcing with Python and Reflections on the Current State
nrslib
3
880
"型"のあるRailsアプリケーション開発 / Typed Rails application development
sinsoku
8
2.2k
RDBの世界をぬりかえていくモデルグラフDB〜truncus graphによるモデルファースト開発〜
jurabi
0
150
Iteratorでページネーションを実現する
sonatard
3
700
Go製CLIツールGatling Commanderによる負荷試験実施の自動化
okmtz
3
650
型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
mazrean
0
230
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
How to train your dragon (web standard)
notwaldorf
87
5.6k
Infographics Made Easy
chrislema
239
18k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
44
2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
4
99
Testing 201, or: Great Expectations
jmmastey
38
7k
Making the Leap to Tech Lead
cromwellryan
130
8.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Transcript
Cloud sync APIs for mobile developers Leah Culver, Dropbox APIDays
Berlin 2014
Dropbox “Your [digital] stuff everywhere”
Wherever you are
Safe and secure
Share with friends
• Filesystem that just works • “The magic folder” Then
• Multi-device world • Mobile filesystem? Now
Dropbox APIs for mobile apps
Core API • REST-ish, OAuth 2.0, JSON • SDKs for
Android, iOS, OS X, Python, Ruby, Java, PHP • Community-supported libraries for C#, JavaScript, Perl, etc. HTTP API for files
• List files /metadata/<root>/<path> • Upload file /files_put/<root>/<path> • Get
a thumbnail /thumbnails/<root>/<path> • Share via a link /shares/<root>/<path> Core API
Core API is great. So what now?
• Cross-platform support • Sync across devices • Offline access
(bonus!) Mobile API challenges
Sync API
Sync API • Just like Core API • Filesystem for
mobile apps • Store and sync photos, videos, etc.
• iOS, Android, OSX • Handle offline caching and syncing
• Notifications of changes • Updates in real time Sync SDKs
Image Grid Sample
None
Image Grid Sample code iOS
Initialize the filesystem
Listen for changes
Display thumbnail
Great for files… but what about data?
Sync API file system-like interface Datastore API structured data Mobile
APIs
Datastore API • Storage for structured data • Like a
NoSQL database • Stored in the user’s Dropbox • Not files!
Store data in user’s own Dropbox ! • User owns
their data • Access to files/data outside your app • Free for developers
account→datastore→table→record→field→value Datastore API
Why not files? Monolithic → inefficient syncing Opaque → conflicts
Why not files? • Clearly defined structure • More efficient
syncing • Advanced conflict resolution
Similar to Sync SDKs … • iOS, Android, OSX, JavaScript,
Python • Handles offline caching and syncing • Notifications of changes • Updates in real time
Click the Box
None
Click the Box code JavaScript
level current_level 3 state table single record field value
Initialize datastore
Click listener
Listen for changes
Display level
Offline
None
• Local changes cached when offline • Syncs changes with
server when online • Automatically merge changes Offline / online syncing
• Conflicts resolved by the client • Handled by Dropbox
SDKs Conflict resolution
More… dropbox.com/developers/blog
github.com/dropbox opensource.dropbox.com
• Cross-platform SDKs • Both files and data • Users’
own Dropbox • Handles offline access, sync, and conflict resolution TL;DL
Questions? dropbox.com/developers
[email protected]
We’re hiring!
Photos http://www.flickr.com/photos/kky/704056791/ http://www.flickr.com/photos/eulothg/5906431611/ http://www.flickr.com/photos/tambako/2844515466/ http://www.flickr.com/photos/yourdon/10018150113/ http://www.flickr.com/photos/mager/2659619029/ http://www.flickr.com/photos/ben_grey/4582294721/ http://www.flickr.com/photos/adactio/12674602864/ http://www.flickr.com/photos/coofdy/11492948263/ http://www.flickr.com/photos/arts/42217172/
http://www.flickr.com/photos/drachmann/327122302/ http://www.flickr.com/photos/evergreenkamal/395448039/ http://www.flickr.com/photos/aliaholle/5888906660/ http://www.flickr.com/photos/vinothchandar/5148046888/ http://www.flickr.com/photos/shandilee/5062466679/ http://www.flickr.com/photos/swisscan/2514879116/ http://www.flickr.com/photos/yourdon/10018150113/