Top 10 Most Common iOS Mistakes During Development

I’ve built dozens of apps since 2008 and have seen quite a few ways developers end up stumbling. They find themselves in an scary position of trying to fix the stumble, or, worse, they completely kill any chance of success.

The following list is composed of iOS mistakes that I frequently see. Some of these mistakes can kill a startup if they are not identified quick enough. At some point the money will dry up or team confidence will dwindle. If you’re a soloprenuer then it could be next to impossible to rebound from some of these.

Let’s get to it! These are not in any particular order so you can assume that they’re all something you should avoid.

1. Error handling and interaction with users when failure conditions are hit

Confusing errors do not make for a great user experience. For example, it doesn’t help the customer if they need to update their Twitter password, but you display an error, “Oops! Something went wrong. Please try again later.”

Do what you can to make warnings clear and test for when the conditions are met. Confusing and ambiguous error messages do not help.

At the same time, don’t be annoying. You shouldn’t feel like displaying a ton of error alerts to the user one after another. Instruct the user to fix issues one-by-one.

2. Finding a reliable set of beta testers

The worst you can do is not even collect a group of beta testers to help you with your product. That tells me that you haven’t done the appropriate research beforehand, which can set you up for failure.

These testers need to be part of your target audience, not random people on Twitter. You want their feedback so you can perform tweaks where needed. The key is to know when to perform updates. Not all feedback is created equal so parse feedback where needed. Just because one or two people are begging for a feature doesn’t mean you should put in place.

3. Forcing login via Facebook or Twitter

Yes, there are people who hate Facebook and who still don’t understand Twitter. Don’t force people to login without including the option for a standard registration via email. You’re going to anger a lot of people if you force social logins. I get the value but avoid forcing it. Let the customer decide.

Now, I must say that your app dictates this decision. If you are building an app designed for dating or networking you may want some way to tie an identity to the customer. If you’re creating something much more personal you probably shouldn’t force the customer to use their social network. Their first thought will be, “I don’t want them sharing this stuff with Facebook!”

4. Thinking your app will magically sell

The moment you publish your app you’ve entered an arena with thousands of competitors. You need a plan and you need to know who your audience is so you can do what is needed to bring them under your umbrella. I’m sure you find this work boring, but it’s critical if you have any hope to stay alive in the app store. Hope is not a risk management strategy. Have a plan.

5. Testing in “real world” network situations

How does your app handle when there is no network? What happens when the network comes and goes? Make sure your app can handle these situations otherwise your customer will have a terrible time.

Spend time using the Network Link Conditioner tool to simulate poor network conditions on your device.

6. Making sure that your app works as expected on all devices

Given that we’re now dealing with a range of screen sizes, spend the time necessary to make sure your app works and behaves as you expect. You want to make sure your layout code works and that you’re not experiencing any strange behaviors.

7. Treating a mobile experience as a web experience

These are two completely different realms. So is Android and iOS. Avoid smashing your website into a mobile app. The only thing that will get you is a lot of churn. You want to create a great experience for the given platform. A mobile app is not equal to a website. There are different sets of expectations. Don’t ignore that.

8. Building too many bells and whistles

You get yourself into dangerous territory by piling on a massive list of features to your app. It’s easy to feel guilty that a feature doesn’t exist when you’re being barked at by a handful of users. Focus on your vision and execute. If their feedback is true then do what is appropriate to confirm the need. Focus on a simple, but valuable, product so you can test assumptions as soon as possible.

9. Creating inflexible code

Now, I’m not saying that one should obsess over how your codebase looks like when you’re trying to find product-market fit. What I do want to say is that you should ensure that the code base isn’t complete garbage. I shouldn’t be looking at a prototype 6 months from now. I’ve been on projects where developers slammed everything into one source file and created embarrassingly long methods (500… 1000 LOC). Take the time to architect the codebase in a maintainable way. Bonus points if you add tests around your core models.

It’s a delicate balance, especially early on. Don’t spend an inordinate amount of time on this, but don’t completely ignore it either.

10. Trying to be everywhere at once

For some reason developers feel like they need to be in front of everyones face at launch. No, if you’re building an iOS app you don’t need to immediately create an Android app. What you should do is take the time to build on one platform. This way you will build a better product by evaluating one set of customers well. Additionally, you’ll avoid spreading your team too thin. You amplify support needs when you have many versions of your app. That can kill a startup. Focus and optimize!

Wrapping up

These are just a handful of the more common mistake that I’ve seen from a development and founder standpoint. There is no sense in thinking that you can be 100% perfect, but just stay on your toes and watch for any red flags that may show up. You can always adjust things given the time and resources. The thing you want to avoid is what will usually kill a business—running out of money.


As you can see there is no shortages of mistakes. These mistakes can cost you quite a bit—your startup. You may think I’m exaggerating when I mention that you could lose your startup, but I’ve seen it happen when mistakes above were hit. Learn from my experience and do what you can to avoid the hurt.

Your Turn

Is there a mistake you’d add to the list? Feel free to let me know below!






2 responses to “Top 10 Most Common iOS Mistakes During Development”

  1. govindrajput Avatar

    nice artical so there is many usefull for developer if thanks for sharing for that very information this post.

  2. Sinead Tbc Avatar
    Sinead Tbc

    Hi David, really learning a lot from these articles. Can I just ask if you can recommend a stack or technologies to use when deploying your app to a website later where you want both to update with new content at the same time? Does the content come first from the web rather, and then the app, rather than from app to web?

Leave a Reply

Your email address will not be published. Required fields are marked *