Apps don’t support devices, by and large. They support SDK versions. Targeting a 4 year old SDK means not using a fair chunk of new OS features, which translates to at least some lost sales and developer happiness.
I’m sympathetic with your point, truly, but I also get why devs would aim at newer OSes.
I think you might be confusing two things. iOS developers build against a particular SDK, but they specify a deployment target which is an OS version. You can build against the latest or near-latest SDK (in fact Apple requires you to), while still targeting arbitrarily old OS versions. The developer changes these independently.
Developers can easily use APIs introduced after their deployment target OS. So if you want to target iOS 15, but use APIs introduced in iOS 17, you can easily do this with a runtime check.
Many iOS developers choose to increase their deployment target, which accomplishes nothing for the user besides locking out older devices, while making the developer's life more comfortable (he can abandon those runtime checks and code paths that only run on older devices).
But if you are disciplined and care about your users on old devices, you can very easily target those old devices while still using the latest and greatest OS features on devices that have them.
I think I saw a YouTube video where some developer said that Apple requires you to use latest version of Xcode, that version has a minimum SDK (I think iOS 15) and he was complaining he couldn't update his iOS 12 targetting app anymore.
I believe Apple makes it difficult, but not impossible. At the end of the day, these things are specified in text files that can be edited, regardless of what options the GUI gives you. Definitely shame on Apple for trying to nudge developers to give up on older phones, but it aligns with their desire to keep their customers buying new phones.
And the ‘features’ also involve lot of performance updates that can leverage something like newer metal. Given that a large chunk of the user base uses an iPhone from 1-2 years ago it simply makes sense to use this and abandon old SDK.
This makes me wonder though how Apple seems to deal with this for their core apps.
I'd love to know what exciting new features the developers of my bank auth app (also used as semi-mandatory ID in various services) have available to them now that they've let it break on my otherwise adequate phone.
Comments
Apps don’t support devices, by and large. They support SDK versions. Targeting a 4 year old SDK means not using a fair chunk of new OS features, which translates to at least some lost sales and developer happiness.
I’m sympathetic with your point, truly, but I also get why devs would aim at newer OSes.
I think you might be confusing two things. iOS developers build against a particular SDK, but they specify a deployment target which is an OS version. You can build against the latest or near-latest SDK (in fact Apple requires you to), while still targeting arbitrarily old OS versions. The developer changes these independently.
Developers can easily use APIs introduced after their deployment target OS. So if you want to target iOS 15, but use APIs introduced in iOS 17, you can easily do this with a runtime check.
Many iOS developers choose to increase their deployment target, which accomplishes nothing for the user besides locking out older devices, while making the developer's life more comfortable (he can abandon those runtime checks and code paths that only run on older devices).
But if you are disciplined and care about your users on old devices, you can very easily target those old devices while still using the latest and greatest OS features on devices that have them.
I think I saw a YouTube video where some developer said that Apple requires you to use latest version of Xcode, that version has a minimum SDK (I think iOS 15) and he was complaining he couldn't update his iOS 12 targetting app anymore.
Was it this video? https://www.youtube.com/watch?v=WXqVV8_GORE
He finds a solution involving copying files across from an older version of xcode
I believe Apple makes it difficult, but not impossible. At the end of the day, these things are specified in text files that can be edited, regardless of what options the GUI gives you. Definitely shame on Apple for trying to nudge developers to give up on older phones, but it aligns with their desire to keep their customers buying new phones.
And the ‘features’ also involve lot of performance updates that can leverage something like newer metal. Given that a large chunk of the user base uses an iPhone from 1-2 years ago it simply makes sense to use this and abandon old SDK.
This makes me wonder though how Apple seems to deal with this for their core apps.
I'd love to know what exciting new features the developers of my bank auth app (also used as semi-mandatory ID in various services) have available to them now that they've let it break on my otherwise adequate phone.