On Apr 10, 2008, at 9:37 PM, Michael Ash wrote:
On Apr 10, 2008, at 9:26 PM, Jerry Krinock wrote:
On Apr 9, 2008, at 11:08 PM, Ben Lachman wrote:
On Apr 9, 2008, at 3:27 PM, David Duncan wrote:

Typically you would only use 1 target. Use the SDK to the OS whose API your are targeting (such as the 10.5 SDK). Then set the deployment target to the minimum version you wish to run on (example, 10.3). Finally, you would do runtime checks for API availability.

That's fine if the classes exist in all the OS versions, but more commonly you'll want to use complete classes that are not available in earlier SDK, of which there are many, especially in Leopard. Code instantiating such classes must be put in separate bundles that are loaded when the user activates a Tiger/Leopard- only feature that requires instantiating a Tiger/Leopard-only class.

This is only true if you are subclassing these classes. If you're only
messaging/instantiating them, then you can use NSClassFromString
instead of the raw class name to safely reference them without blowing
up on the OSes that don't have them.

Right, and you could wrap the Leopard-only code in its own function ( BOOL UseSomeLeopardOnlyFeature(...) ) so you only have to deal with the implementation details in one place, and possibly deal gracefully with failure by its callers.

This is totally true. Multiple binaries make unhappy users. Of course buggy cross-version binaries make unhappy users too.

And unhappy programmers. My estimate is that supporting 10.3-10.5 increases my development + testing + bug-fixing time increases by a factor of 1.5 over what it would be if it was 10.5 only, plus the penalty that I simply forego some features which are not practical to implement or disable in 10.3, and not worth the time to split off into my "Tiger" bundle.

I recommend that you explain to your requirments guru(s) the high cost of 10.3-10.5 support and ask them to reconsider if you really need to do this, Lorenzo.

The "unhappy programmers" part is really irrelevant. If your user base is distributed among a reasonable set of OS versions, why should they be foreced to upgrade to the latest OS just so your workload is smaller? For example, I would think you'd expect to be supporting Tiger for some time yet, just because of the percentage of users who have it installed...

steve

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to