I have a real estate investment app on iOS that is used to evaluate and manage fix and flip projects. I want to integrate the app with Dropbox to allow for cross-device access to data as well as collaboration between multiple users.

Rather than program my own automatic offline/online cross-device syncing mechanism, I would like to implement a workflow in which the user manually uploads and downloads the files to and from Dropbox.

Using a manual syncing mechanism will greatly simplify the code. It will also allow for more flexibility with collaboration because users can save and load files to multiple Dropbox accounts. This approach will also allow for easy cross platform sharing which will be helpful when I develop the Android version of the app.

It seems that this workflow is not heavily adopted on mobile and that an automatic syncing mechanism is preffered. What are your thoughts from a user experience perspective?

Here is the syncing workflow 1. User creates a property locally on device A 2. User chooses to upload it to the drop box account 3. User downloads the file onto device B. The file is saved locally. 4. User edits the file on device B and uploads it again to dropbox. 5. A file merge will occur during a download if it is detected that the local version of a file has been edited since last uploading to Dropbox.

2 Answers 2


Some of the most used apps -

Messaging(whatsapp, Hangout, Messenger)

Email(Gmail, Yahoo)

Social network(Facebook, Twitter, Google+)

Productivity(Calendar, Any.do, Wunderlist)

provide auto-sync feature, which are seamless to the users.

Most of your target audience also are using these apps, and their mental model is already set with an expectation of a hassle free, almost invisible auto-sync feature. If you go ahead with a manual sync option, it will impose a considerable adaptation curve, which will result in your users completely avoiding your product, as soon as a competitor provides an auto-sync feature.

As a User Experience Designer, I see this as an unnecessary overhead for the user. This might simplify your code, but not your business. This might help with collaboration, but you must first let users on-board easily before they start collaborating.

As a startup enthusiast, I suggest you use manual sync only if you are doing this as a proof of concept or testing your app the lean way, with a close circle of friends and relatives. This will give you insights on other features, before you proceed with crunching codes for auto-sync. If you have a really good growth curve in terms of developing and pushing new features, you can introduce the app with manual sync, to a few potential clients. But, make sure you implement auto-sync before they start complaining. This is a business trick sometimes used to convince clients that you actively listen to them, when you already know this would be a potential problem. Works though!

  • Thanks for the thoughtful answer. You sold me, I will put my users' experience first. It turns out Microsoft Azure provides offline/online cross platform sync functionality as part of their backend service so it shouldn't be too hard to implement.
    – ChemDev
    Commented Jun 6, 2015 at 2:31
  • You are welcome. Glad to have helped :) Commented Jun 29, 2015 at 22:55

You should approach this problem from the view point of users who are flipping houses. Research and identify their mental models. What are they trying to achieve? Write a user story for your app. How will they use the app?.\ Your app should support the way they do business and make it easy for them to get on with their work. Since time = money for them the less you ask from them and the faster they get their work done the better more likely they will find value in your app.

So go with auto-sync since that is one less step for them to do and they can get in and out of your app even though it will be a bit more work for you in the back.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.