In the Netherlands, it used to be standard that you receive a free 2-factor device for online banking. It takes your smartcard and basically emulates a transaction to generate a signature, so they're also interchangeable between people (someone in class would always have one), it has all the safety of a normal transaction in the store (something you know + something you have), it's pretty neat besides being closed source.
Now I haven't lived there in a few years and I've found that, in Germany, the bank asked me to pay some 35€ to get sent a customised device that only I can use so that I can log into the online banking. Seems pretty crazy if I'm going to subsequently loan them tens of thousands at zero interest nowadays, but okay that's the cost of privacy. They sent the wrong one initially (for someone else's account) but that got sorted in the end, but so this works not to need a banking app on my phone for authorising transactions
Perhaps you can check if your bank, or a different bank in your country, offers this as well?
While it is separate hardware and thus less convenient, I also find it much safer not to have something of this value accessible via my phone. The hardware device shows what transaction it is authorising so phishing cannot work (you'd see the amount and/or recipient doesn't match)