Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently contemplating writing an OS X version of my Windows software. My Windows application still supports Windows XP, and I know that if I drop support for it now, our customers will cry bloody murder.

I'm new to OS X development, and as I learn the technology, APIs, etc., I realized that if I'm going to provide comparable level of backward compatibility (e.g. down to OS X 10.5), I would not be able to use many things that look very useful and relevant in my case (ARC, XPC communications, many others). This is quite different from Windows, in my opinion, where there are very little changed between Windows XP and Windows 7 from desktop application developer's standpoint.

So, on one hand, it seems like a complete waste to stick to 2007 or 2009-level API in 2012. On the other hand, according to NetMarketShare report and Stat Owl report Mac OS X 10.5 and 10.6 market share is still 11% and 35%-40% respectively. However, I'm not sure if these older OS users are my target audience (buyers of software utilities) if they didn't bother to upgrade their OS...

My question: Are there any other reasons I should take into account when deciding if I target 10.5 or 10.6 or 10.7 for a new application?

share|improve this question
Well, Apple's philosophy: I was forced to buy a new iMac because the iPod I just bought was incompatible with the current iMac I had. – Paul Aug 22 '12 at 20:01
if you looking at market shares, then why bother with OSX at all? – vartec Aug 23 '12 at 12:21
@vartec: First, there is a benefit in having my software installed on all computers in a house/business, and second, my primary target audience is "individuals with disposable income buying software online". It does not equal to "generic computer users". I think percentage of Mac users is higher among my prospective customers. – haimg Aug 23 '12 at 13:48
as long as you're developing blogging software for hipsters, I'm sure you're absolutely right ;-) – vartec Aug 23 '12 at 13:57
"individuals with disposable income buying software online" you can't go wrong with mac with this strategy. – Hakan Deryal Sep 18 '12 at 19:24
up vote 2 down vote accepted

You'll probably find that the majority of people that did not upgrade, are also not installing new applications and only use the ones they already have.

Depending on what your application is going to do, it may even be much more difficult to develop it to support older systems and at the same time work on newer systems according to the newer system conventions. If you already had an application developed for the older system things would be somewhat different as you would just upgrade it dropping support for the older system and letting people that did not upgrade use the older version. But if you start from scratch, depending on what your application is going to do, I wouldn't be too much surprised if it turned out that it would be easier to write two different applications and that the one for the old system took longer to write than the one for the new system.

I'd say targeting 10.4 Tiger is a total nonsense. Supporting 10.7 Lion is probably almost a must. Since you are writing a new application, people with 10.8 Mountain Lion will expect full support for Mountain Lion paradigms (not having it would cast a very bad shadow on your app even in the eyes of those that did not upgrade).

So 10.8 and 10.7 support having on both the native feeling of the platform is your first priority. That may already give you some headache. How back to go really depends on how long you think it'll take you to develop the application and what features your application will have. If you are going to integrate with iCloud to support inter-machine synchronization and maybe also integration with iPhone/iPad, you probably should forget anything below 10.7 or do a different application altogether for those systems. On the other hand if your application does not have data, has no reason to integrate across the different systems owned by the same user (or does it in a proprietary way), is not going to use any of the new APIs or any of the APIs that have changed, then maybe support for 10.6 Snow Leopard and 10.5 Leopard could be added without too much trouble.

But before you even think of supporting earlier than 10.7 systems, you should absolutely verify that there is a real demand for it. Do not just look at the % of still alive machines with those systems. You should verify that those users actually are still buying new applications (which, IMHO is unlikely).

share|improve this answer

There is a pretty obvious approach here -- survey your customers and figure out what they are using and perhaps why they are stuck to that version. Upgrading OSX is relatively less painful than upgrading windows, I know lots of folks don't do it until there is something they need that the later version can handle that their version can't.

Aside from that I'd focus on the differences between these API versions. IE, if there is some large underlying system you need to use or reinvent which is only in 10.7+, go for it. If there aren't reasons to push the ball forward then why make it a blocking issue?

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.