Ten years ago I moved my first steps developing apps for Apple platforms. Like many others, I had the dream to become an indie developer, make my own apps and be independent one day. It all started when I saw a presentation about being an indie developer by Will Shipley. I shared it with a friend and soon he came back to me with an idea for a Mac app (the iPhone still didn’t exist back then). At that time he was trying to follow the Zone Diet, which is a pretty complicated diet requiring a lot of calculations. So he though that an app to help people follow that diet would be a good business idea.
I thought that his idea could have legs too, so we started developing it. We both made the classic naive mistake everybody does: thinking that if we could capture 1% of the Mac market, we would become rich and never need a job in our life (I was still in university at the time).
We later parted our ways, but I kept the app since I had been the only one writing the code for it anyway. I decided to keep working on it because I still believed in our initial flawed assumption. Two years later to finally was able release it. Two years of waking up at 5 am every morning to have a couple of hours to work on it before going to the daily job I got after graduating. Two years of dreaming of having my own business and never have a boss anymore. When I finally released the app I was of course pretty excited.
As you probably imagine, though, it didn’t turn out as I expected. Days passed and nobody bought my app. Actually that is not entirely true, the app had a total of 3 sales in its whole lifetime making me something like $75 total. Think about it: $75 after two years of work and early mornings. That was quite painful.
I tried to understand why nobody was buying. At that time I was part of a mailing list dedicated to the Mac software business, so I started asking other developers what I was doing wrong. They were quite supportive and told me I had to go and find the market of people interested in the Zone Diet: the blogs they read and the forums where they gathered. I started looking around the web for these places but I soon realized they did not exist. I haven’t checked if today the situation is different, but back then there was almost no one talking about that specific diet, with the inventor being the only exception. So after a few weeks of trying to find a market, I gave up (yes, I tried to approach him too, with no success).
In the meanwhile the iPhone SDK came out, so I abandoned that first Mac app and started working on a new idea: a little card game for the iPhone, which was inspired by another game. This time I even found a forum of people talking about it! I thought that this time I had the right idea, so I spent again months developing the game on my spare time and on my commute to work.
I don’t think I have to tell you again how this turned out. It was, of course, just another failure. It was a bit better than the first attempt, since in its whole lifetime this game has generated a few hundreds dollars for me, but that was never “quit my job” money. I didn’t stop there though, and I tried many other ideas and apps. The result was always the same: I made a few bucks from these apps, but nothing significant. Luckily that gave me a lot of experience and all these attempts taught me a lot about iOS development, which later resulted in high paying jobs and today allows me to freelance for big clients. But my indie attempts always failed.
During the past few years I started looking more at the root causes of these failures. I started studying more about business, both for my freelancing and for my products. I learned a lot and in retrospect I can see exactly all my mistakes and why all my attempts failed. I now have the knowledge of what it takes to actually build a real business. I wish I could go back in time to teach my stupid younger self how to run a proper business. But hey, better late than never, as they say, so I luckily have that knowledge now and it’s giving me good results. Hopefully I can help other people avoid my same mistakes.
I usually talk about technical topics here on my blog, but since the new year is approaching and many people will probably make a resolution to start their own app business, I thought this was a good moment to start talking about this side of making apps I never talked about before. If you’d like technical articles, don’t worry, I have many more of those in my pipeline.
So let’s see how to actually make a real business on the App Store. If you want to make your own apps and be independent, this article is definitely for you.
Let’s get this straight first: passion does not pay the bills
One of the most worthless pieces of advice I keep hearing again and again is to “just follow your passion”. I am shamefully responsible of having given this advice too. There is this strange belief around that, if you will follow your passion, you will somehow magically have a successful business. This advice is deeply flawed and luckily I now know better.
Am I saying that you can’t make any money following your passion? No, I’m not. It is true that there are some people that managed to build successful businesses out of an idea they were very passionate about. But following your passion is not the rule you should follow. You might be very passionate about something and still fail miserably. The truth is that passion is largely irrelevant to business success. But I also have some good news: it might be possible to find a good business idea in a field you are interested and you will likely become passionate about what you do once your business starts working.
The only way to have a serious business is to provide value
If there is one fundamental rule I have learned about business that you should burn into your mind, is that business is about providing value. It’s as simple as that. The harsh truth is that your customers do not care if you are passionate about what you do or not. At the end of the day they only care about how much you can help them. The more value you provide, the more you can ask in exchange for it. It is a very simple but often overlooked rule of business. Value can have different forms: it can be money, of course, but it does not need to be. It might be something that makes life easier in some aspect. It might be a meaningful experience, and so on.
Now, I am going to highlight a mistake that many do and you are probably doing too. I know because I made the same mistake in the past. When I say “you have to provide value” you probably think: “I am sure my idea provides a lot of value, so I am good. Let’s go on”. Probably, you are wrong. Value is defined by your customers, not by you. Do you think your idea provides value because you have hard data about this fact, or just because you are so in love with your own idea?
Look at the App Store. Many developers complain that people are not willing to pay for their apps, because in their mind their own apps are very valuable. But honestly, how much value do most of these apps provide? As much as developers don’t like to hear this, the majority of apps have almost no value at all. That value is just in the mind of the developer, not what customers think. It’s not a surprise then that nobody wants to spend money on these apps. But still, many of these developers expect to be paid just because they put their app in the App Store. They behave like this is some sort of right they have acquired.
Many developers complain that since people are willing to spend a few dollars on coffee or hamburgers, they should spend money on apps too, since these take a lot of time and effort to make. But again, why should your customers care about this? As I said, people care only about how much value you provide them. Those coffees and hamburgers provide them a value that your app does not. It is not your decision wether a coffee is more or less valuable than your app, it’s always the customer that decides.
But this has a good side too: when you provide massive value, price becomes a mere triviality. The same people that would not spend a few dollars on most useless apps (rightly so), can spend a huge amount of money on something that they value.
How do you find this value, then? This is a very good question. Before I answer that, let’s look at what everybody is doing instead.
Building a business the wrong way
Stop me if this sounds too familiar:
- You get an idea for an app. You think it is an amazing idea and it will make you millions. After all, if only 1% of iPhone owners buys your app it, you will be rich, right?
- You spend months developing this app
- You put it in the App Store and wait for the money to roll in
- Nobody buys your app. You wait some days, but the money does not come
- You panic and start looking around for what you should do. You read a lot of blog posts about marketing and how it all boils down to contacting the press
- You do what everybody says, but for some reason all this advice seems not to work.
- After some time, you decide that it was the idea that was probably bad.
- Go back to point 1 and repeat
I followed this process myself, again and again. It was a huge waste of time. Still, this is what all developers do when starting a business. We all think that we are smart and our ideas are always great. Who cares about marketing and sales? We don’t need that sleazy stuff. We think MBAs are for losers who cannot build anything, but we have the power to create any app we want. Just build it and they will come.
Unfortunately reality is different, and in the end we all pay the price for our hubris.
Why does the process I outlined not work? If you look at it, the core issue is that it does not consider customers anywhere. It’s all about the developer and his idea. The developer of course thinks he is considering the customers and their needs, but he is not.
To make things even worse, when you fail you have no idea of the reasons. There are too many points of failure. What did you do wrong? Was it the idea? The marketing? The launch strategy? The pricing? Should you have gone for freemium or prepaid? Or maybe it was the wrong market from the start?
Probably many of these were actually wrong, because you never considered your customers in the first place. But even if you did something right, you have no idea where, because you have no way to measure or test it. The only thing you can do with this process is to go through it for months or even years before you can get to the point where you can see if your idea works or not. And when it doesn’t, you can try all the tactics you can find on the internet, but they will make no difference.
Strategy trumps all the tactics you can find
While I was making my first app, I read a book titled “Get rich your own way” that I found on the shelf of my flatmate. At the beginning the book contained a statistic we all know very well: 90% of businesses fail. If you look at the App Store statistics about how money is distributed among developers, this percentage looks even optimistic.
But then, the book presented a far more interesting statistic that I didn’t know: when the people that start the business know what they are doing, then 90% becomes the success rate. This is mind blowing. Think about what this says: if you know what to do, success is almost guaranteed. To me that is a much more interesting statistic. If you look out there there are some people that succeed with pretty much any idea they put on the market, every single time.
The reason is very simple: the most common and fatal mistake that kills all businesses is to have no strategy at all. Sounds pretty intuitive, doesn’t it? But this is exactly what we developers do all the time: we just have an idea and we do the only thing we know how to do: build the app. We then think we will figure out all the rest along the way. That is not a strategy, it’s the equivalent of buying a lottery ticket. A very expensive one, given all the time and resources making an app requires.
The reality is that, no matter what you do, if your strategy is wrong, you will fail. You can throw at it all the tactics you can find online, but none will matter. That is why I hate all the people out there talking about App Store Optimization, icon colors or which kind of screenshots are better for your app. These things are all irrelevant. They might help a bit when your product is solid, but when you have no strategy, none of them will revive a dead business.
If all you want to do is write apps, get a job
If you have followed me until this point, you probably realized that running a business requires many different skills. Being able to make an app is just a little part of the process. Being a business owner requires understanding your customers, being able to write good copy on your website, understanding what marketing is and how it works, knowing when and how to sell, deciding the positioning and the pricing strategy of you app and much more. The good news is that these are all skills you can learn, as many others did. But you have to understand that they are fundamental to business success and it’s very likely that you don’t posses most of or any of them yet.
Sure, it is important to have a good, well developed product that will help your customers. I am not saying that everything you learned about making apps is useless. But without all the rest, your business has no legs. And to be clear, when I say that making the app is a only a small part, it is probably smaller than you think. We developers are led to believe that we are the most important people in the world, especially when you are part of some online communities like Hacker News. Running a business requires that you spend most of your time on tasks that are not related to software development.
If all you want to do in your life is developing apps and you don’t want to spend time on something that is not development, just find a job for a company that will pay you exactly for that. That is the only place where you can actually be a pure developer, while other people in the company work on the parts you don’t care about. There is nothing wrong in that, by the way. Many people are not interested in business and just want to make apps. It is great that there are a lot of companies out there willing to pay high salaries to developers. If that’s all you want to do, great. Just join one of them.
As a side note, if you think you can escape the business part by being a freelancer instead of making your own products, I have to stop you right there: as a freelancer you are still a business owner and you need to understand the same things. That is why the majority of freelancers starve and in the end give up and go back to a normal job. The few freelancers that thrive are the ones that understand how to run a proper business.
If you want to make a successful app, you have to deeply understand your customers first
The first thing you should do before you write a single line of code is going out and finding your customers. Many companies call this market or customer research, and is fundamental to your business success.
I know that many of you at this point are thinking: “that’s not true, Apple does not do any market research”. Steve Jobs is famous for having said this, and from a certain point of view this is true. What many times passes for market research (even from big companies) is just asking people if they would buy some product or asking them to fill some random forms. Apple definitely does not do any of this. This is also the main “customer research” advice I see many give again and again. The funny part is that many times this comes from people that know nothing about business. They usually tell you: “just ask your friends, relatives or random strangers in the street if they would buy your app”. That is not customer research.
The problem is that all these people you interview will lie to you when you ask them this question. I am not saying they do it on purpose because they are evil, of course. The problem is that they don’t really know the answer themselves. Many times they say they would buy something they actually never would. They also try not to disappoint you, by giving you the answer they think you want to hear. At the end of the day, the only moment you are sure someone will buy your product is when they actually open their wallets and give you their money.
Steve Jobs was spot on on this when he said: “A lot of times, people don’t know what they want until you show it to them”. But what many developers then mistakenly think is that market research is worthless and they can skip it. The fact is that Steve Jobs deeply understood what people want. Apple’s product are never random ideas they have in a vacuum. Steve Jobs said this at the end of his first WWDC keynote after coming back to Apple, in 1997:
“One of the things I’ve found is that you have to start with the customer experience and work backwards for the technology. You can’t start with the technology and try to figure out where you’re going to try to sell it”.
How you can understand what your customers really need
Before making an app, you have to make sure that you can find and reach your customers. If you cannot find these people in the first place, who are you going to sell your app to when you actually make it? This should be your first step, not the last. If you look at my story above that was exactly my problem. I could not find blogs or forums where people interested in the Zone Diet gathered. If I did the research at the beginning instead of waiting until the app was finished, I would have not spent years pursuing the wrong idea.
If you cannot find any discussion online around the problem you want to solve, it means it’s not a problem people have and nobody cares. Many problems in our life are actually just little annoyances nobody would spend time or money solving. You need to find the burning problems people discuss about. Problems so frustrating that people put up with crappy solution because they are still better than having the problem in the first place.
A mistake many developers do is to think they are the first ones to have an idea and they will have no competition. You are not a genius: if you cannot find other companies offering solutions to a problem, it means it’s probably not worth solving and probably the ones that tried failed, leaving no traces.
Once you find the places there people with your target problem gather, you need to study them passively. You need to read what they write and what they complain about. You need to find out the root of their problem and why they actually want it solved. You need to understand what are their pains, their fears, their hopes and their dreams. You need to understand who these people are and what language they actually use.
Notice how this is fundamentally different than asking people if they would buy your app. Here you don’t even have an idea for an app yet. You are just looking at problems. While it’s true that people many times don’t know what they want, it is also true they deeply understand what their problems are. It is much more powerful to observe what they are discussing about when “nobody is watching” than asking them wether they would buy your app or not. At some point you can even engage with them to ask more about their problems. Again, don’t lead with solutions yet, just go at the root of their frustration.
Only after all this you can start thinking about an app to solve their problems. If you get this right, you will probably even have more than one idea to pick from. These ideas can be different apps or just features you can include in your product. But get this part wrong and everything you will do from this point on will be a waste of time.
Make sure people would buy your app before building it
At this point you might be tempted to jump into developing your app, but I would advise against that. Even if you are ahead of most of the developers that just go and build apps based on ideas they get in the shower, you have to be careful. Software development takes a lot of time. Even if you are an experienced developer, it will still take you a few months to make an app. I worked on enough projects to understand that any non-trivial app requires at least a couple of months of work full time. This is the nature of software. Development is hard and time consuming. If you are doing it part time, your project is going to span several months, so you want to maximise your chances of success before you actually spend that time.
For this reason you need to validate your idea first. Again, validation is not asking people if they would buy your app. You first have to make sure you understand their problems and you can give them solutions. So the first thing I advise you to do is to create is a blog where you are going to write articles to help your customers. Again, if you thought that the only thing you would do all the time was developing apps, you chose the wrong path.
While an app requires months to make, an blog post requires only a few hours to write. You should be able to help people solving their problem even without making the app you want to build. If you cannot attract people with free material that helps them solving their problems, you won’t be able to attract customers for your app.
Once you manage to attract people’s attention, you have to engage them into a first transaction, to actually test if their interest is real and strong enough. At this point it is still too early to ask for any money and you still have nothing to sell anyway. Asking people to subscribe to a mailing list to receive more material is a good first test. If you can’t get people to even give you their email address, they will not give you their money later.
Also, put yourself in a mindset where failing at this point is good. Don’t try too stubbornly to make it work at all costs, deluding yourself about the value of your idea. If it does not work at this stage, it means you are pursuing the wrong idea and you just spared yourself months of useless development work. Go back and re-evaluate wether people actually care about the problem you found and wether your proposed solution is really as good as you thought.
Once you get people on your mailing list you can actually ask them more specific questions about your app idea and see if they would be interested in paying for something like it. The quality of these answers is actually going to be much better than asking random people about it. These are people that proved to be interested in your solutions, so what they think is much more valuable.
This is when you finally can start creating your app. Since this is an article about business I won’t spend words on the product creation part. You can find plenty of articles about iOS development on this blog. But what I can tell you is that at this point your product will be really driven by your customer needs, much more than it would have been if you just jumped into development straight away.
The final bonus of this whole process is that when your app will be ready, you actually will have a list of potential customers to reach and you know all the places where they actually gather. By the way, if you are on my mailing list or bought my iOS Foundations course, I am sure you can recognize that I use this same strategy. And it works: my course is giving me some impressive results, much more than any app I ever built. The reason is that I made it to solve real problems and be as beneficial as possible for my customers.
The App Store is not your marketing channel
A big mistake iOS developers make is thinking that the App Store is going to do the marketing for them. Even worse, they feel entitled to it and then they complain when the App Stores fails to bring them the customers they expect. It is as if Apple somehow owes this to them just because they made a crappy app.
During the first days of the App Store it might have been enough to just put your app in it and wait for people to find it. The App Store was new, there were very few apps and people were so interested in them that you could make a lot of money with the stupidest fart app, as many did (until Apple banned these apps altogether). Those days are gone. Today you need a to have a business strategy.
In my opinion you should consider the App Store for what it technically is: a distribution channel. This means that the App Store is a way to handle payments and downloads, and nothing more. It is not a marketing channel. A few people (very few) are going to find your app through the App Store search and that is a nice little bonus. But that should not be your marketing strategy. ASO, keywords and screenshots will not take you very far. Think about this: when Apple releases a new product, do they just put it silently on the shelves of some shopping mall, between a plethora of other crappy products and then wait for people to find it and buy it? No, they don’t. If you just put your app in the App Store and expect people to find it that is exactly what you are doing. I find it so fascinating that people that follow Apple so closely fail to actually understand what Apple does to market their products.
So how do you market your app? You have to go out and find your customers yourself and then bring them to your website where you can actually show them the benefit of your product. But guess what? If you are following what I explained, you are already doing that, and you actually started from the marketing itself.
Many developers treat marketing as an afterthought and think it just boils down sending emails to “the press”. If you do that you are not that different from a spammer. You are just sending unsolicited emails to people hoping they help you sell your product. But if you follow this process, you will have already a list of people that are interested in what you are doing (or they would have unsubscribed), to which you can sell your app.
Many developers think that marketing is sleazy and manipulative, with flashing ads and yellow, screaming headlines. But it does not have to be that way. If you followed everything I wrote till here, you can see that I didn’t write anywhere that you have to manipulate your customers and deceive them in order make them buy your product. If you have a great product that really solves people’s problems and makes their life better, you owe it to them to let them know it exists and to show them how it improves their life. It is not their job to buy your product, it’s your job to sell it to them. Don’t expect them to do all the work for you, you have to show them how you can actually help.
Don’t expect big results at the beginning
As a closing note, I want to warn you that creating a successful business takes time. Many developers expect to see floods of customers the moment they release their app, but it does not work that way. To be fair, these expectations are set by a few outliers in our industry we all look at. But they are indeed outliers and that is not how many businesses in the real world work.
You should expect things to build up slowly. At the beginning you will not have a big mailing list, so you won’t reach many customers. But that will improve with time and you can start experimenting with other ways of reaching your customers. The good thing about this process is that it is slow but steady. You can see what works and what doesn’t, and adjust your strategy accordingly.
Overall, a business is expected to take from 3 to 5 years to even become profitable. That is why some countries give new businesses a tax break for the first three years (that’s how it works here in the Netherlands, for example). It does not need to take that long, but don’t expect any overnight success. Many developers throw the towel immediately, if they don’t see a huge spike in sales at the start. That is rarely the case.
A few resources to know more about business
There is so much to say about this topic. This article is already huge and still scratches only the surface. Maybe some day I will make a full course about it. But I want to close leaving you some resources on the topic, to start learning more:
- I Will Teach you to be Rich: when it comes to online material about money, in my opinion nobody can beat Ramit. I have learned a ton from his courses and he never ceases to amaze me with the quality of his material. His courses span many different areas and topics, from getting your dream job, starting your online business, freelancing and many more. If you click on only one of these links, make it be this one.
- Unicorn Free: Amy is another good source of business advice, targeted more to software developers and designers.
- Copyhackers: a lot of great material about understanding your customers and writing good copy
- Double your Freelancing: freelancing can be a good way to support your path as an indie while you build your own business (as I do). Brennan has a lot of good advice on how to find clients and charging what you are worth.
[referral-form title=”To start a successful business in the App Store you need to be able to make professional iOS apps. Learn how with my free course” button=”Send me the FREE course”]
Matteo has been developing apps for iOS since 2008. He has been teaching iOS development best practices to hundreds of students since 2015 and he is the developer of Vulcan, a macOS app to generate SwiftUI code. Before that he was a freelance iOS developer for small and big clients, including TomTom, Squla, Siilo, and Layar. Matteo got a master’s degree in computer science and computational logic at the University of Turin. In his spare time he dances and teaches tango.