Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(mobile): Added data saving mode #1242

Closed
wants to merge 1 commit into from

Conversation

JamesCullum
Copy link

@JamesCullum JamesCullum commented Dec 31, 2022

As a fellow Google Photos refugee, I would love to use Immich heavily. I mostly use it for memories that I watch from my phone, so I'd prefer to enable a voluntary resizing of my images, similiar to how Google Photos does it. This allows my hard drive to not be filled as quickly.

Instead of having a binary choice like in Google Photos, I thought it would be more future proof to give the user more fine-grained control and allow even smaller images.

screenshot screenshot screenshot

For the resizing I had to use an external library. Due to a conflict with flutter_launcher_icons, we cannot use the newest version.

I first spent a day trying to make it work as part of an existing state struct, however this either required API changes, many code changes, didn't save the variable or it wasn't accessible to the background service. Hence I chose the most straightforward solution by just putting the data into a Box. If you would like to do this differently, support would be highly appreciated.

@vercel
Copy link

vercel bot commented Dec 31, 2022

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated
immich ✅ Ready (Inspect) Visit Preview Dec 31, 2022 at 5:17PM (UTC)

@JamesCullum JamesCullum changed the title Added data saving mode feat(mobile): Added data saving mode Dec 31, 2022
@alextran1502
Copy link
Contributor

Hello, this feature would fit better for an option of the admin's config interface for the following reasons.

  1. The admin would have more concerns about data usage on the system.
  2. Any heavy processing tasks should happen on the server so that the battery and CPU usage is reserved on the mobile app

@JamesCullum
Copy link
Author

I thought about this first, but did this on purpose. Doing this on the device has the following advantages:

  1. The user can save mobile data volume
  2. Workload distributes more nicely
  3. Different users can have different settings and can spontanously change it, based on the occasion (e.g. if he wants to upload 200 images in small but normally in high quality, he can change the setting, start the backup and change it again once finished)
  4. The app is quite peformant on execution and it doesn't cost any added resources, compared to a potential system spec requirement for the server

@bo0tzz
Copy link
Member

bo0tzz commented Dec 31, 2022

I think if we added this feature, IMO it should be on the server side and not in the app, just like all the other processing we do. That said, I don't know how I feel about it - storage is really cheap these days, so I don't see the need to be too sparing with it, and with Immich being primarily a backup type tool I expect most people would want to keep their original files.

@alextran1502
Copy link
Contributor

I would echo @bo0tzz respond and and not going to merge in this feature as it is not the image we have for the direction.

Thank you for your work and I suggest next time you can join Discord and raise a question about implementing a feature that impacts the application on both the client or the server heavily on the operations and architecture wise.

Happy new year!

@JamesCullum
Copy link
Author

Here's a guide I wrote for people who want to resize images: https://gist.github.com/JamesCullum/6604e504318dd326a507108f59ca7dcd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants