I've continued cutting cords. The latest: Apple Photos. Why? It's phoning home. Sure, it might use a fancy private search. But, again, we shouldn't be building the tools to facilitate authoritarianism and surveillance in the first place. The question of whether the current implementation is secure is irrelevant. The question should be: are we building something that can be abused if a bad actor forces us to.
So, I've gone through the process of exporting my photos from Apple Photos. What follows is a chronicle of user-hostile design so prevalent that I'm reconsidering my 20-year relationship with Apple entirely. This suggestion sums it up nicely. I'm trying to remove synced photos from my iPhone, and Apple's solution? Turn on the cloud service I'm explicitly trying to leave.
Yes, to remove these orphaned photos, turn on iCloud Photos. What an absolute joke.
Exporting on the Mac
Edit: You can copy the original photos from within the Photos Library.photoslibrary
as suggested by @renderg.host, saving you a lot of headache.
The first step in my journey was to export all the photos from the Photos app. I have 30,000 photos in my library, and had to export them in batches of 1,000 so that the export doesn't crash.
Click, scroll, scroll, scroll, click, export, remember what the last photo I exported was. Rinse and repeat. 30,000 photos / 1,000 photos per export = 30 (!) exports. Yes, really.
Fortunately, the export preserves EXIF data and original timestamps, so your photo library remains intact, just not imprisoned in Apple's format.
Removing synced Photos on iPhone
Getting rid of the synced photos was also a pain. Unselecting the "Sync photos to your device" sounds good - I just wished it worked. For me, it would delete about 20GB of photo data from the phone... and then just stop. Any subsequent syncs wouldn't delete any further photos from the phone.
on the phone itself, photos synced from the Mac cannot be manually deleted
What worked for me in the end was switching between two sync configurations:
Round 1: Turn off photo sync entirely, wait for partial deletion
Round 2: Create a dummy album with one photo, sync only that album, wait again
Repeat: Back to Round 1
After several cycles, the orphaned photos finally disappeared.
It took me a few iterations of this loop until all photos were removed.
The new photo setup
Edit: I've decided on an even simpler setup. I sort every image straight into <album>
s. No linking, easier selective syncing to my phone. This also forces me to curate photos, which is a net win for me.
All photos now reside as files inside my Pictures folder. The benefit of this is that I can easily sync and backup my photos, and use any of a variety of photo viewers. My favorite so far is Flowvision, but there are others. Sadly there is a lack of simple photo viewers for iOS - please let me know if you know one!
My new folder set up:
Pictures/originals
- all the photos filed into<year>
foldersPictures/albums
- all my<album>
s, containing links to the original photosPictures/upload
- new, un-filed photos
To share photos, I use Proton Drive and create a public folder that I then share a link to.
The upside/downside of this is that it forces me to sort photos into albums. To make it easier, I created a shortcut for this, which I wanted to share with others who might want to escape Photos. Tough luck though, Apple requires iCloud login just to share a local automation script, so here's a screenshot. It's so frustrating.
This works quite well.
Select photos from the originals folder that I want to add to an album
Right-click → Quick Actions → Add to album
Type in the album name
Done!
A clear pattern of hostility
By itself, each of these friction points is annoying. Put together though, they paint an entirely different picture. The whole process took me about 5 hours and it's important to call out that this is entirely due to bugs that have been around for years.
These patterns of user hostile design are so prevalent - these aren't bugs, this is the product.
After 20 years on Mac and 15 on iPhone, I'm out. Not because the hardware is bad, but because staying means accepting that my devices work against me the moment I choose differently. So, it's time to move on.
I'll be moving to Linux and GrapheneOS (a privacy-focused Android fork), where my computer works for me, not against me.