The next release of Leave Now will be the last version that will run on iOS 5.
It's better for our customers and it's better for us.
It's better for our customers.
The vast majority of our customers upgraded to iOS 6 within a week of release. That's a crazy fast upgrade cycle; unlike other software platforms, iOS customers seem to upgrade early and often. When they do, they expect the software they use to take advantage of the new functionality that is available. There's a lot of new functionality available, too; Apple does a good job of improving their frameworks even if the changes aren't user visible.
So, there it is: there's a bunch of new stuff that we can use to make better products for our customers. But wait: can't we use that new stuff while keeping the old stuff working? After all, it's already working, we just need to keep it in place, right?
Sort of. It's possible to use some of the new functionality without abandoning old versions of iOS. You do have to be careful about it: it takes more code because you have to check to see if the functionality you want to use exists before you use it and you need to test your app with and without the new features. This leads to why...
It's better for us.
Complexity is an enemy of great products. In general, the simpler a system is the more (reliable, faster, easier to use) it is. The trick, of course, is to keep things as simple as possible but no simpler.
The Leave Now code base isn't very large (roughly 50 classes and about 10,000 lines) and our engineering team tries to keep it as small as we can. Even so, there are 24 places where we have explicit special cases to support iOS 5, and this doesn't include places where we can use newer, simpler, frameworks. This is complexity that we just don't need.
Will we drop support for iOS 6 at some point in the future? Of course. Will we announce it in advance? Indeed. Will it still be better for our customers and better for us? Certainly.