How to properly do buttons in table view cells using Swift closures
Note: This post is an upgrade of the original post…
You might find yourself in a situation where your client is pushing for support of an older version of iOS. They think they will reach the maximum number of users thus increasing their chances of success. They are wrong and here’s how you can convince them otherwise.
The only (even remotely capable) iPhone that currently cannot go above iOS 7 is iPhone 4. First of all – do you really want users that are stuck with iPhone 4 and are not willing to upgrade to get a hold of new technology?
The truth is that most of the users do not update their OS because they are stubborn, lazy or afraid that it will make their device slow. Again – do you want such users? Probably not, because even if they download your app, they will never update it or use it often enough. If they’d use apps frequently, they’d want to update their phone to make everything run faster. But they decided not to.
If you’re familiar with the Pareto principle (also known as the 80/20 rule), you will see that by supporting iOS 9 and iOS 8, you are supporting 93% of all devices using the App Store. So by doing 20% of work (exaggerated), you are covering 93% of devices. And that number will only grow in the future.
Do you think your client will still not give in when you show them these numbers? Read on.
If you’ve ever developed for Android, you will know this topic very well. The market fragmentation is not only insane itself but is making developers and designers go insane. Look at this:
Apple is kind enough to keep ditching old devices (sorry guys, a 6-year-old device really is old) and constantly keep moving forward. You do not want to dig your grave by being stubborn and supporting all of the ancient devices while supporting all the new ones as well (iPad Pro, iPhone 6s Plus)
Don’t be mean to yourself and your client! Sooner or later, you will have to drop support for older devices and at that point, it will already have been too late because of all the hours spent trying to make stuff work instead of solving real problems using the latest technology for users that value and enjoy it.
Needless to say that supporting older versions while trying to implement all the newest bits of candy Apple is feeding us, you will spend A LOT of time making everything work. You will get to a screen where you can use a fancy new feature, but you will also have to plan, design and code a similar feature for users that do not have access to the newest frameworks.
Splitting features mean more code and more code, as we all know, means more bugs. More bugs means more time and more time means more money. You can prevent your client from spending money and struggling to make the app stable when they could be making the app better for their users.
You will never be able to cover 100% of devices, and no business on this planet has been able to reach 100% of their target audience, ever. That’s a fact we have to live with. If your client thinks that supporting those 7% of users will make a significant difference, they have to rethink their business model. As I’ve already mentioned, the chances are that those 7% of users are not actively downloading apps, thus, they are already out of the game.
Instead of trying to reach everyone, make the best possible app for the majority. Apple recently announced there are 1 billion iOS devices in active use around the world. If your client can’t make it work with 930 million devices, well …
The short answer to the question is: Always support the current major release and one before it. Currently this means iOS 9 and iOS 8.
You are the professional, and they are paying you to provide value and expertise. Present all these facts to your client and let them know your opinion on the matter. It is your job to advise your client how important is to use the latest set of tools that are currently available.
Each new project only has one chance like this. Make it count.
Take part in the 5-day course with actionable tasks that will let you become a master at recognizing and solving the most common mistakes iOS developers do with Auto Layout.
Let Auto Layout become a tool you swing with your utmost confidence!