I dunno, I wish Android had a cohesive backup strategy the way iOS does. iPhone is terrible but losing your phone and switching to a new is insanely easy, with all state back to exactly how it was before.
Android doesn't have it per se, but Seedvault runs on various Android-derived systems (notably but not only GrapheneOS) and does a bang-up job of backing up both applications and data
"Bang-up" is a good description of what Seedvault does, because your backup will have holes in it. Anything made with Android's backup system has the same problem.
Applications can specify that they can't be backed up, and you as a user have no way of overriding that. Highlights on my smartphone are Fennec (Firefox), Termux, Cromite, Element, Syncthing, various videogames and other utilities.
I absolutely want these backed up, and on any sensible system I'd just point restic to their storage locations and be done. On Android I need an arcane mess of Titanium Backup and TWRP, and god help me if I ever have to recover from a backup.
Swift Backup is the modern solution for backups if you have root access. It backups apps + data. I've migrated through 4 phones at this point without any notable issues. I use it to also do weekly backups of all my app+data which then gets Syncthing'd to a server and then snapshotted to my NAS in case I want to ever come back to a app version from weeks or months back.