That seems to me to be quite unfriendly to privacy. And given that I always charge my phone overnight and use my phone’s alarm function, it could simply use that as the target time to finish charging to 100%. No complicated location-based ML needed.
Having the machine upload or make available that information to someone else does. I don't know what the Mac does here.
If your phone never gets past 80%, it could be the battery just needs replacement. Batteries are consumables, and they do degrade after a year or two or three (depending on cycling, temperatures, use, etc). iOS has a battery health indicator giving you a rough estimate of the state... if the health is low, get a repair kit from ifixit and then it's a fun evening activity to open one of those puppies up and see just how tiny everything in there is!
"it's like blowing up a balloon -- as it gets bigger, there's more back-pressure so it gets harder to fill up the last bit."
That's not actually the case with a balloon. :)
If you think about it I'm sure you've noticed that you have to blow the hardest right when you start, and then it gets easier. The reason has to do with the curvature of the balloon and the fact that the same amount of air causes less and less stretching of the material as it fills up.
Out of curiosity, have you found a better ELI5 analogy that doesn't bend over backwards with a rube goldberg setup of pipes and waterflow? I've struggled explaining this phenomenon to people buying EV's, where charging behavior become a regular thing people need to figure out.
There's not more beer, but it fills more space temporarily when poured faster.
Instead, they are saying it's dumb because it doesn't slow down when it can charge fast but doesn't need to charge fast.
If your phone is at 40% and you plug it in, it will probably finish charging in about 2 hours. But if you plug it in at bedtime, you don't need it to be done in 2 hours because you'll still be asleep. So why not figure out the lack of urgency, then take 4 or 5 hours and keep the battery temperature lower?
I have a Sony which does this (XZ1c, stock firmware)