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
240
0
Share
Cloud sync APIs for mobile developers
APIDays Berlin, May 6, 2014
http://berlin.apidays.io/
Leah Culver
May 06, 2014
More Decks by Leah Culver
See All by Leah Culver
Writing stable iOS applications
leah
2
240
Idea to launch - the start of a startup
leah
1
110
Say “yes” to user feedback
leah
0
97
Intro to Dropbox APIs
leah
0
350
Working with web APIs in Swift
leah
0
130
Dropbox APIs for JavaScript developers
leah
3
1.3k
Cloud sync APIs for mobile developers
leah
1
170
App Data, Everywhere: Cross-Device Content Sharing
leah
2
760
Cloud Sync for App Developers
leah
1
130
Other Decks in Programming
See All in Programming
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.6k
Coding as Prompting Since 2025
ragingwind
0
720
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
500
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
飯MCP
yusukebe
0
480
Java 21/25 Virtual Threads 소개
debop
0
330
AI駆動開発がもたらすパラダイムシフト
ryosuke0911
0
120
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
380
AIエージェントで業務改善してみた
taku271
0
470
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.8k
PHPで TLSのプロトコルを実装してみる
higaki_program
0
740
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
Un-Boring Meetings
codingconduct
0
250
The untapped power of vector embeddings
frankvandijk
2
1.7k
Believing is Seeing
oripsolob
1
110
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
260
Building a Scalable Design System with Sketch
lauravandoore
463
34k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
We Are The Robots
honzajavorek
0
210
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
100
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
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/