I need an iOS app to be compatible with previous iOS versions, at least from 4.0, and also with prior devices (iPhone 4S, 4, 3GS... and likely all iPad devices). I found some posts dealing with the iOS versions backwards compatibility that already have some years (for example, How to build against older iOS versions with the latest Xcode downloads?), and I don´t know if this is deprecated or it still is the way to proceed, at least concerning the app building. Regarding programming issues, I guess I should check the documentation to know if the SDK features/libraries/frameworks I want to use are supported by all the iOS versions I want to be compatible... And having such information, how could I check programmatically the iOS version the device is running, in order to provide a certain feature or not?
On the other hand, regarding iOS versions and devices running them: could I find any Apple document listing which iOS versions supports each existing device? What hardware-dependent issues should I take into account while developing the app?
Thanks so much
Edit: Target architecture(s) is the only hardware consideration I've to take into account? Knowing that, for example, an iPhone 3GS is able to run, and is running, iOS 6.1.3, can I assume that the device will then support all the SDK's features, or I still need to check for the availability of such features depending on the device?