I'm making a photoshop-like image editor (e.g. for drawing pictures and diagrams) for iPhone and Android mobile devices. I'm designing the interface for saving documents with regards to how data loss is handled and what confirmations are asked. I expect users will want similar flexibility to what is offered by typical "save", "save as" and "save as a copy" actions found on desktop software.
Note that because of the nature of my app (large images, destructive edits, real-time interaction, slow operations), it is impractical for me to offer persistent undo for documents. I know there is some discussion to be had here but it isn't practical even if I just consider the available development time. I'm aware this limits my options but I'm not expecting perfection.
At the moment my interface works like this:
- The user is presented with a gallery of documents.
- If the user taps document E, the editor opens with document E loaded.
- During editing, the user may explicitly save their progress to a new document B if they like. Future saves overwrite B.
- During editing, the user can save a copy of the editor state to a new document (i.e. save a copy).
- If the user tries to return to the gallery, the are asked if they would like to save the current state to B or if the current state should be discarded.
- Periodically, the editor state is saved to an autosave file A. This never overwrites B (as the user might want to discard recent changes) and is only used in the event of a crash.
Some things I don't like about this design:
- One problem I've tried to avoid is the user accidentally overwriting the document that was opened initially. Documents are always saved as new files so this isn't a problem but this does mean the user will probably have to go about explicitly deleting old files if they make a lot of edits.
- The user can accidentally hit "discard" on exit. I thought about removing this option entirely from the dialog (so the dialog options would be "Save and return to the gallery" and "Cancel") and only having this option available from a menu to make it very hard to hit accidentally. People that discard things a lot will find this annoying though. I could even add an "undo the previous discard action" button to the gallery I suppose.
- Explaining to the user that the explicit save action writes to a new file, "save and exit to the gallery" writes to this same file and save as a copy always creates a new file is tricky.
Can anyone see how I can improve my UI here?