PhotostatEditor / Photostat

Open, powerful and accessible photo editing tool
GNU General Public License v3.0
24 stars 3 forks source link

Saving Files #6

Open Suzie97 opened 3 years ago

Suzie97 commented 3 years ago

Traditionally, most apps don't really explain the saving mechanism to the user, and the user has to figure out what best works for him/her.

Let's take me (@Suzie97) as an example here. While using Affinity Designer, I frequently save the file with Ctrl + S, because I'm scared that the power will be cut, or the app will crash and I'll lose all of my work. This disturbs me a little, as I need to take care of saving the file, naming it, finding a proper location to save the file, save different versions if necessary, maintaining proper folders and sub folders for easy access in the future. All this takes the focus away from my main work i.e. to work on the design.

When I'm using an app, I want the experience to feel more organic. Like writing on a paper, I just write and it stays there. I don't need to worry about saving.

Implementing auto save looks like a valid solution.

Prior Art

Figma

I like the way things work on online web apps like Figma. When you start a project, it is auto saved and the user doesn't need to worry about organizing it inside a file system. It can be easily accessed from the home pages and the work is always saved. Also, for renaming the file in figma, we don't need to interact with any sort of file manager, we can directly edit the name from the titlebar itself.

elementary Code

Code auto saves the document. That is why I like using it, I can just focus on writing code and testing it. When I want to go to another app, I just close the app and get back when I'm done, code opens up exactly where it was.

Mobile Operating Systems and Apps

Android and iOS don't have full blown desktop class file managers. And I don't think it is really required. The workflow is very app based, I don't remember the last time I had to open the file manager.

Proposal

Additional Resources

colinkiama commented 3 years ago

I think that we should take a hybrid approach as this is a professional grade-app yet, power cut issues are a genuine problem.

By default, the app will save the current state of the project at regular intervals and when the user exits the app.

Initially, this data will be saved in the app's data directory.

The user will also be able to manually save the state of the project too.

If the user wants explicit control of where the project is saved, they can perform a save as.. operation that allows them to choose where the project is saved.

Suzie97 commented 3 years ago

I think that we should take a hybrid approach as this is a professional grade-app yet, power cut issues are a genuine problem.

By default, the app will save the current state of the project at regular intervals and when the user exits the app.

Initially, this data will be saved in the app's data directory.

The user will also be able to manually save the state of the project too.

If the user wants explicit control of where the project is saved, they can perform a save as.. operation that allows them to choose where the project is saved.

Yeah, sure. That is a must have feature, considering the fact that the app will primarily be offline. I forgot to include it in my original message 😅 .

ghost commented 3 years ago

We can make it like git, on each save a commit is created and the user can browse all his commits

Suzie97 commented 3 years ago

We can make it like git, on each save a commit is created and the user can browse all his commits

Yes, this is also a very important topic that deserves its own issue and needs a lot of discussion. I'll file an issue about it.

ghost commented 3 years ago

I will create some labels