The responsibility of supporting older devices should fall on the manufacturer, not the product (apps) developers. It’s ridiculous how if you want to use objectively better new technologies/APIs, you can’t do so without leaving behind literally the vast majority of users. This is mainly due to the number of junk e-waste devices that literally never receive any support or updates, devices that most people use. It shouldn’t be considered normal for a mobile phone to be obsolete in terms of new technologies in just a year or two.
This forces developers to stick with old technologies, using third-party libraries to achieve a function that’s already available in the system API. This contrasts with the philosophy that (for some reason) mobile devices have, with a closed system without privileged access for both the user and programs, in a way forcing you to use the system APIs for what you need. In the desktop environments (windows and Linux, I’m not talking about macOS) , these APIs exist, but they’re not necessarily provided by the system and can be updated independently or by programs (libraries are bundled in the program).
Although it’s true that in the desktop environment, much less optimization is needed, for this very reason, it’s assumed that you have the necessary hardware (to a certain extent) and it’s your responsibility to have that hardware. In the mobile environment, you can’t afford to have your application terribly optimized (well, some times you can (discord)), so it’s convenient to use the system APIs, but you can’t do it because most devices don’t have that API.
Just to give an example, Steam (along with new versions of electron) recently stopped supporting Windows 7. A system that was launched in 2009 and was definitively discontinued at the beginning of 2020, 11 years of support. A service announces that it won’t support it 4 years after its discontinuation and 15 years after its launch, and it was still something relatively relevant and that many people complained about.
On the other hand, we have the mobile environment. To use a passkey with your password manager (not the native manager) you need an API that’s only available in Android 14+, an operating system that came out in late 2023, its users (at 3 of April 2024) are 4.54% of Android users. Most updatable devices have already been updated to this version, the number will now increase mainly with new devices. Thousands Millions of devices manufactured 2/3/4/5 years ago will never have access to this API, and if you need it, you’ll have to buy a new device. It’s ridiculous.