has anyone switched from android to iPhone, and what was their experience?
It was a bit of a mixed bag, but I switched a long time ago for the decent support lifecycles:
Apple Pay was a massive step up and the Wallet app actually does what it says on the tin without any silly transaction limits getting in the way, even without Internet access.
Safari has decent ad-blocking capabilities, when paired with AdGuard, the result is awesome. The only problem is that Safari itself is far less stable than Chrome is on Android (even with the extra content blocking) so some websites just run like absolute ass, but tbh, browsing the web on a phone sucks anyway.
There’s better support for SMB (network drives) via Files and network drives can be accessed seamlessly from applications in the same way as cloud resources. It is also awesome to be able to use native Linux file managers to access the sandboxed document folders of each application in a completely plug and play way, just wire in, approve the trust prompts and anything/everything you'd want to copy in and out becomes available.
However, backing up photos automatically is still a shit-or-miss situation, where software seems to need to use push notifications and/or GPS tracking as a dirty hack to be able to get decent background processing time. A workaround is to use Shortcuts to spin up your sync app of choice upon exiting camera view so the sync app gets some guaranteed foreground time. This problem kills a lot of the usefulness of NextCloud and somewhat cripples the timeliness of apps like Mobius Sync (Syncthing) but decent on-device password managers (like Keepassium) and notes apps like Obsidian still seem to work well enough with sync apps of choice in spite of this.
The policy of not allowing too much background processing does mess with a lot more than you'd initially think, as IRC clients needed a well-configured BNC to be remotely usable, BitTorrent had to be shifted off-device and typical clients you'd use to remotely access other computers for RDP, SSH, SFTP all needed quirky workarounds (e.g. some SSH/SFTP clients can set up fake VPNs to keep connections open, a prerequisite for SSH tunnelling) to allow for a workflow where they can stay in the background.
The unresolved problems are numerous though. I had to say bye bye to emulators as Apple doesn't allow JIT compilation outside of Safari, caller reputation checks are basically non-existent here in the UK for iOS, and proper on-device call recordings just aren't a thing.
All in all though, it was still pretty good.