I used a smartphone that was released in 2014 until the end of 2020. It worked perfectly fine, and would have continued to work perfectly fine—except for the software. The GPS date rollover happened and there was no official update to fix it to the new epoch. VoLTE support in custom ROMs was impossible (because this feature is locked in a closed-source binary blob), so it couldn’t make phone calls once my provider turned off their 3G network. Otherwise, it was fast and worked fine.
When I gave up and looked for a replacement, I found that most low- and mid-range phones sold in 2021 have slower hardware with fewer features than my 2014-era flagship phone. Lower-resolution non-OLED screens, lower benchmark scores, no wireless charging, no waterproofing, no replaceable batteries, no unlocked bootloaders. The idea that newer hardware is objectively superior is simply untrue.
Unlikely. Top of the line then was a Note 4; 3 GB RAM, 32 GB storage, Snapdragon 805 quad-core (Geekbench 5 score--around 154/449).
Mid-range now--
Motorola One 5G Ace, $349 https://www.amazon.com/Motorola-battery-Unlocked-Camera-Silv...
6 GB RAM, 128 GB storage, Geekbench 5 score 660/1888
PLUS 5 G
So-2x RAM, 4x storage, 4x CPU + 5G.
At about half of the price of the Note 4 when it came out.
In any case, I regret bringing this specific point up, both because I try not to say things which are inaccurate, but also because I feel like it has distracted from the main point: my old phone did everything that most people do on their phones (phone calls, chats, video streaming, music streaming, web browsing, light gaming) with no performance/memory/storage problems, had a (subjectively) better feature set than many more recent models, and the only reason I had to buy a new one anyway was because the manufacturer made it impossible to keep the software up-to-date.
Unfortunately, board support packages from the system-on-chip manufacturer limit kernel upgrades. Even then, Project Treble should make it easier to upgrade to newer versions of higher-level components. But Treble was introduced with Android 8.0, so while newer phones should be able to be upgraded more easily, that doesn't help hardware of the era you're referring to.
In any case, the problem isn't with app developers and older versions of Android -- although I'm happy that many try to mitigate the hardware vendors' lack of support. It's that phone hardware is insufficiently open or standardised (in contrast to x86) meaning that OS vendors can't support it.
It's sad how mostly fine hardware (just one replaceable component is bad) gets left behind, but it's not entirely limited to phones. A couple years back I had to replace the main board of my son's computer because the old gateway it was that came with windows 7 or 8 and that was updated to windows 10 stopped being supported in one of the fall or spring patch rollups. Windows 10 had worked on the computer for about a year, that mainboard wasn't supported in the update, so the update never applied cleanly. I understand dropping old system support eventually (even though the Linux kernel still supports everything, that doesn't always mean you can get really old systems to boot a modern distro without problem), but I would rather it wasn't mid-way through the OS lifetime. :/
Slower hardware doesn't mean equally outdated, and I honestly can't back up your claim with any data. A $30 Android Tracphone on Amazon has 1-2 orders of magnitude more storage, a 50% bigger battery, twice the cores, a bigger screen, better camera, and 4g (compared to the flagship phones in 2011).
https://www.amazon.com/dp/B09238C448/ref=cm_sw_r_apan_glt_fa...
The features you mention (wireless charging, screen type) have nothing to do with app or OS support.
All apps I use in regular life (Youtube, Google Maps, Gmail, Signal, a shopping list, music player, virtual train ticket) run absolutely without issue. I'm sure they'd run at 30FPS more if I bought a new phone, but this is a tool, not a toy.
In fact, the biggest issue I'm running into is exactly what parent said. Thoughtless companies (like my credit card issuer) just build apps which could run on a phone from 2012 (basically just displaying my monthly credit card bill), but then make them unavailable on devices older than 2 years.
How is this the app developer's fault? There's plenty of Linux, macOS, and Windows software that only runs on recent kernels because they use new APIs. Why would ANY developer target OSs that the overwhelming majority of their users don't actually use, skipping out on supporting modern functionality?
Edit: Really eager to hear from the folks downvoting about their great experiences bending over backwards to support SDKs from 2013 to target devices that literally can't even connect to a mobile network anymore.
It's not the same kind of device running with the same constraints. Phones were pushing the limits of miniaturization. The difference in the underlying technology is vastly different. Comparing a laptop from 2002 trying to run the current Debian is more apt.
I would say I keep a lot more data on the X220 (using a 0.5TB SATA SSD) than I could store on the X40 which had a 40GB PATA drive. It had USB2 and SD card ports though, so I could in principle have added a high capacity SD card or whatever. The X61 of the same era is still a viable machine and I think it had a SATA drive slot, which means it would be pretty usable with today's ssd's.
Mostly when we are talking about phones getting upgrades or not getting upgrades any more it is about updates from the manufacturer, so I don't see where you are going.