Tutorial: From Dropbox Datatore Sync to Couchbase Mobile
Join the DZone community and get the full member experience.Join For Free
[This article was written by James Nocentini, Co-Founder and Chief Architect of Mobile at Couchbase.]
The Dropbox Datastore and Sync APIs were recently deprecated.
Last week, Chris Anderson wrote a blog post on why you should choose open source projects to solve this really challenging problem.
Now it’s time to code!
We will start with the Lists-ios example app demonstrating how to use the Datastore API.
Once you link the app with your Dropbox account you can sync Lists to the iOS app and Web app:
In the screencast video, we’ll take a look at what it takes to migrate it to Couchbase Mobile. I will do so using Couchbase Lite packaged in the app and Sync Gateway as the sync server:
The changes to the source code are:
- setting up the database in the viewDidLoad method (timestamp: 4m40s, GitHub: code snippet)
- saving documents locally when the keyboard returns (timestamp: 12m14s, GitHub: code snippet)
- initialising the live query (timestamp: 6m, GitHub: code snippet)
There are many other features I didn’t cover in this screencast such as user authentication, configuring the sync function and installing Couchbase Server to persist those documents on the server-side.
The ToDoLite-iOS and ToDoLite-Android demo apps use Facebook Login to authenticate users and share lists. The access control rules for determining the users that have access to a given list are defined in the sync function.
One last point I didn’t cover in the screencast is how to build a web client for your application with Couchbase Mobile. That could be a simple website or a more full featured web app. We could use the Sync Gateway REST API for fetching the List and Task documents and/or use PouchDB to sync the documents to and from Sync Gateway.
Published at DZone with permission of . See the original article here.
Opinions expressed by DZone contributors are their own.
Five Java Books Beginners and Professionals Should Read
Conditional Breakpoints: A Guide to Effective Debugging
Top 10 Pillars of Zero Trust Networks
Clear Details on Java Collection ‘Clear()’ API