$30 off During Our Annual Pro Sale. View Details »
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
220
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
230
Idea to launch - the start of a startup
leah
1
92
Say “yes” to user feedback
leah
0
67
Intro to Dropbox APIs
leah
0
320
Working with web APIs in Swift
leah
0
110
Dropbox APIs for JavaScript developers
leah
3
1.3k
Cloud sync APIs for mobile developers
leah
1
160
App Data, Everywhere: Cross-Device Content Sharing
leah
2
750
Cloud Sync for App Developers
leah
1
120
Other Decks in Programming
See All in Programming
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
140
Cell-Based Architecture
larchanjo
0
120
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
160
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
380
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.3k
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
390
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
170
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
tparseでgo testの出力を見やすくする
utgwkk
2
220
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
310
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
120
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
3.6k
Featured
See All Featured
Making Projects Easy
brettharned
120
6.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Into the Great Unknown - MozCon
thekraken
40
2.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Writing Fast Ruby
sferik
630
62k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Facilitating Awesome Meetings
lara
57
6.7k
Become a Pro
speakerdeck
PRO
31
5.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
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/