I am working on an iOS app where users record data about their children. This data is precious, and accidentally losing it would be terrible. Currently, as with most mobile apps, there is no recycle bin from which to recover deleted app data.

I'm looking into adding iCloud and DropBox sync to the app and I have the feeling that this will give users a sense that their data, being distributed, is secure. They may be less inclined to do backups if they know that their data is in the cloud and on more than one device. However if you delete data on one device, this will evidently replicate to all other devices, so cloud sync actually increases the risk of data loss.

Hence I am more and more inclined to add a local recycle bin. Its content wouldn't sync to the cloud but would stay local to the device: whatever is deleted on the device, either explicitly or through a cloud sync, can always be recovered from there.

Does this sound like a can of worms? Is there a better alternative?

  • You can go back in time (!) and fetch data in cloud services (dropbox for sure, not sure about iCloud) i.e. data is not actually deleted instantaneously, you have some time window before it is non recoverable. – rk. Jun 23 '13 at 21:45
  • Yes, this is a great DropBox feature, but unfortunately there is no such thing in iCloud. As a general comment, iOS is really prone to accidental data loss, at least in my experience (I've lost a great video that I shot by accidentally pressing delete--no recycle bin or undo on iOS) – Clafou Jun 24 '13 at 10:56

The best alternative to my mind is the method that SugarSync uses: When a file is deleted locally the change is synced back to the cloud, though a local copy is kept in the recycling bin (simply because this is how Windows works, in this case, it's not an extra feature). However "deleted" items in Sugar Sync go to a special "deleted files" folder:

enter image description here

Deleted Files can be erased all in one go to clear up cloud storage, but they remain there so if you accidentally delete a file it will still be accessable later, even after the deletion propagates to all of your cloud synced computers.

  • Thanks, this has the benefit of being consistent, and wasted cloud storage space is probably not such a concern: deletes are relatively rare and the trash can be emptied with ease. – Clafou Jun 24 '13 at 21:37

Deleting to a local recycle bin without sync could be a little confusing for user: one device has no data but others still have. It could be perceived as a bug.

Can't you just use a special folder within cloud storage as recycle bin? In this case sync will work on all the devices and this is familiar to a user.

  • Good point, thanks, I can see how this can add confusion. I'm a bit concerned about accumulating trash data in the cloud though, free iCloud storage is limited. I think this would be a happy middle between no data recovery at all and being able to recover at least what used to be on your local device. Maybe if I can find a way to give clues that the trash is a local storage thing, not cloud data... – Clafou Jun 23 '13 at 13:42
  • 1
    You can auto-clear old records from recycle bin (say, 2 weeks old). Trying to describe your storage architecture could be overcomplicated for a user. You are not forced to dive into FAT or NTFS to work with files, aren't you? It is enough for user to know temporal limits of recycle bin. – Alexey Kolchenko Jun 23 '13 at 13:50
  • The expiration time thing is clever but it would take some user education too (users familiar with recycle bins don't expect things to disappear automatically form them). It also doesn't fit the iCloud paradigm (deletes like all other changes are done by the clients, the cloud merely distributes them, but who's watching for expirations, where do the timestamps live?) – Clafou Jun 23 '13 at 14:02
  • 1
    It could be a kind of "garbage collector" for cleaning. The temporal bin has sense because the probability of using too old info is rather small, so the bin is like a storage for Undo. – Alexey Kolchenko Jun 23 '13 at 14:07
  • EDIT: Exactly, I was typing just as you entered your comment that this led me to think that maybe I should introduce an Undo feature, instead of a Trash feature. And perhaps persist that Undo history locally... Thanks a lot! – Clafou Jun 23 '13 at 14:08

However if you delete data on one device, this will evidently replicate to all other devices,

I'm not so sure about the "evidently" part :). You're describing a problem common to all backup and sync solutions, and many of them have the option of syncing one-way by default, so that adding data on one location adds it to all locations, but removing data only works locally - or there is a more explicit way of doing it, like a special action "remove everywhere, yes I understand what I'm doing" with some safety catches.

  • I love this idea for my particular problem! It's the simplest by far. Is it something seen on non-Apple platforms? It implies that users no longer have a mirror copy of their data on all their devices, which I believe is the iCloud user experience. – Clafou Jun 24 '13 at 11:03
  • I remember seeing it on different backup tools (PC), but I don't have a ready example right now. – Vitaly Mijiritsky Jun 24 '13 at 12:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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