Latest Version
Matt Gemmell wrote a great article recently that’s been making the rounds about supporting only the lastest version of an OS for your app. I highly recommend reading if it you haven’t already.
Matt covers a few reasons: less hassle, less code, better customers, free marketing. I won’t rehash it, but wanted to add one other point: making a better app. If you’re a small shop — particularly if you’re solo developer — you have limited resources. Everything you choose to add (or not add) to your app is a balancing act. You’re probably using a single version of an OS yourself to develop the app, so you’ll never be able to test the app as well on other versions. Being able to write less code, and do more testing will result in a better experience for your users.
When I was developing Flint, I originally supported Snow Leopard and Lion throughout the beta, and dropped Snow Leopard before release. Why? Besides the obvious reasons Matt mentioned, like less code and hassle (I deleted a lot of code going Lion only), it allowed me to make a better app. I no longer was a Snow Leopard user. I built and tested the app on Lion. I had my old Macbook Pro still running Snow Leopard, so I fired that up every couple of builds, and made sure it ran. But I couldn’t give it the amount of attention I gave the Lion build, the one I was using all day, every day. I wouldn’t find the weird bugs and behaviors that happen in edge cases, or only reveal themselves after extended use. I won’t find all those in one operating system, much less two.
In the end, I sacrificed having more customers to have a better app. For a brand new app, with no existing users to upset, it was definitely the right choice. Every day, there are more Lion users, and less Snow Leopard users. In six months, Lion will most likely be on a majority of the machines, and I’ll be ahead of the curve, with no legacy code to support. I can just focus just on what matters, making a better app.