Speed up Apple Device Sync (iphone sync)
Please describe the problem you are trying to solve
Most users probably only use their phone camera but the sync and download for iphones is extremely slow. I always assumed it was the phone until I started using "Rapid Photo Downloader" and see that it can download photos and videos very quick.
Other solutions you have considered
I have used "Rapid Photo Downloader" for the past year and can confirm that it is much faster.
Why is RPD so much faster than Shotwell?
To get to the bottom of this I have started poking around both source trees and my high level observations is the following:
- Shotwell is strictly using photo2 for fetching files and thumbnails where RPD is using idevice utils like ifuse.
That is pretty much the main different from what I have been able to find. So what I would propose is the following:
- Recognize idevices as a new type of Camera.
- Mount the device using ifuse (in userspace).
- Import from the mounted file system.
Optionally for increased performance:
- Store unique device IDs and last sync times. Use device sync history to further optimize syncs by skipping already existing files and directories.
- Sync all photos and videos, then create thumbnails once complete.
- Do all the duplicate detection before importing the files.
Why not use RPD?
While RPD is faster it doesn't really let me organize and tag my images the way Shotwell does. Also it is not backed by a database so it constantly has to build thumbnails and file trees for history and reference purposes. One other problem with RPD is that it is implemented in Python and when dealing with lots of photos it can easily run your machine out of memory.
How can I Help?
I have some time to contribute however I don't have experience with Vala and I would be interested in making things work for Ubuntu 22.04 which seems to not be compatible with the latest source code. If you have any pointers or suggestions as to how I could contribute to this feature please let me know.