The challenges of making a mobile app

Tadas Šubonis
Feedpresso
Published in
9 min readNov 9, 2017

These days everybody has an app. Your bank. Your grocery shop. Your friend.

It might seem that it is super easy to make an app. But before anybody else embarks on an app-making journey, I’ll share some of my insights that I had the chance to learn the hard (the stupid) way about app making.

This article is not about success recipes for your app (nor do I know them) but about the challenges that you will face while building and distributing one. It is better to learn about them earlier than later.

Software Development challenges

I’ll start with the easy bit — software development. Relatively, it is a pretty easy challenge given an experienced team (do not believe if somebody tells you it is going to take two weeks).

The biggest problem, in the end, is going to be the costs of the development which tend to balloon out quite quickly. Teams tend to underestimate the required effort to get the app working and quite often the requirements change as you go (the classical “I need just this one more feature to get it ready”).

It’s a slippery slope.

If you gonna be going for multiple platforms (most probably iOS and Android), you can easily at least double the costs (also, do not forget the managerial overhead).

Finally, have in mind that all developers are expensive these days. If you are planning to outsource the development, prepare for some hefty costs.

Android

Android is easy to get started with. Lots of documentation about the platform, lots of design and development guidelines. Developers seem to be easier to find as well (but it just might be Europe specific). The infrastructure is very streamlined as well — you can publish your app easily and there are lots of tools to support the app like acquisition or revenue dashboards.

However, I can’t say the same about the quality of the platform code in general. There are numerous bugs in the core libs that you will keep encountering constantly which, in turn, will make your app crash. Crashes mean one-star reviews so that’s best avoided.

In general, I would describe the development process on Android to be sneaky — the bugs constantly sneak-in in the most surprising ways. If the platform sees an opportunity to surprise you, it will make a good use of that chance.

To avoid all of this, there are plenty of good practices that you have to follow and libraries to use, to make the process bearable.

To conclude, I would say that it is safe to expect longer development times on Android than iOS.

iOS

Unfortunately, I can’t share much of this. I haven’t developed iOS myself but it seems that the state of platform quality to be in a better shape than Android. It is easier to make the app do what you want (at least according to my colleagues) and there are fewer surprises.

Despite that, the process of managing iOS is a bit worse. Long app review times, somewhat tedious process of creating new releases. Dashboards are scattered all over the place.

Multiplatform

On one of the projects, I had a chance to use React Native. It is a really nice framework for UI… and that’s it. You will have to plug in everything else which makes it a pain to use (you will want to start with some starter pack). It generally doesn’t play well with platform specific functionality but it is rather simple to incorporate platform-specific code. Other developers also report that Xamarin is a nice framework.

Overall, I have had a nice experience working with React Native and I will use it again.

Easy UI prototyping rocks.

Progressive Web Apps

That’s another possible route that comes with its own merits and faults. There are many articles on the web about that but it boils down to lacking browser support and “unsupported” user habits (I have yet to see a person clicking that famous “Add To Homescreen” button). Things like Camera support, Notifications, Offline Storage are going to be at least very tricky.

But there are plenty of goodies:

  • Multiplatform support by default
  • You can use any payment provider you want
  • Users do not need to install your app (but their retention is a fraction of a mobile app)
  • UI development is straightforward
  • No platform checks or reviews thus fast and simple releases

If your app could work as a PWA and you want to support multiple platforms, you should probably go for it as it is going to be WAY cheaper in the long run.

Distribution Challenges

This is going to be my favourite part.

How do you get your app in front of the eyes of the user? That’s the million dollar question.

The reality is that nobody cares about your new app. Your friends do not care. Your former (current) colleagues do not care. Your mom doesn’t care (saying it looks nice, doesn’t count).

Anybody that says “It looks interesting” means that they do not care.

Paid advertising? That sucks and is super expensive. Obviously, you can get pretty far if you know what you are doing (knowing how to start a Facebook Ad doesn’t count) but good luck retaining your users.

The basics

So somehow, you have to grow your app and get people to download it. There are multiple steps a user must do before they hit the download button in the AppStore.

There are a few main steps until that happens:

  1. A user realises that there is a need (a problem).
  2. Then, they start searching for a potential solution.
  3. On one of the channels, they find you and download.

We could break this down into several more steps (and you should) that will vary from the user and the channel but it will generally involve things like:

  • searching
  • browsing
  • clicking on the ad or link;
  • clicking on the download button on your website;
  • clicking download on the app store;

and etc. These are all opportunities to win or lose a user.

As you can see, there are lots steps that you need to hack around before a user will choose to install an app (and hopefully yours). You will have to create different journeys for different people and create a plan with a set of actions that will make people go through all of the funnel down to an install.

Know your user

This is really important. “Know your user” — people say it all the time but at the same time, they ignore this. I know because I’ve ignored it myself.

Different people have vastly different interests, they browse different websites, they use different phones. Well, they are different.

So know beforehand to whom you will be making this product. Who will get the biggest benefit of it? Who are the most likely to love it?

I would say this is a pretty daunting process of figuring out who is your perfect user. You might think that it is person (profession) X but it will turn out to be Y. Or maybe you thought that X does Z but it turns out they do A but person Y does Z.

That’s why Steve Blank is pushing people so much to get them to talk to potential users — you need to figure out who they are and what do they do.

You will need to learn what sites do they go to, what people they follow, and what they like to talk about.

Then you can start building all of the funnels above. What seemed like a vague exercise before, will now start looking like a proper plan. When you will know all of that, you will learn what influencers you need to get onboard, which news sites you want to appear in, and which blogs you should pitch your product to.

Also, it will be a nice time to remember those development costs as users will have asked plenty of features by now.

Word of mouth

The good old mythical word of mouth marketing. Make the app so good that users themselves would flock to your app. I hate to break your final excuse for laziness for marketing but it doesn’t work so easily. Lots of great apps are dead because they didn’t find a path to their users’ devices.

First of all, how do you get your first user to recommend you? How do you expect to get that number to 1000 recommendations a day?

Truthfully, it can work. But as an engineer, I hate things that require magic to make them work.

This can be approached methodically if you will start asking questions like:

  • What will make the user to recommend the app? Has anybody recommended before? Why?
  • What will make the recommended to install the app? Did they install just because that person recommended? Did they like something else?
  • How do I find recommenders? How did this one end up using our app? What steps did they do before they recommended us?
  • How do I make more of them? How can I encourage this behaviour?

You will see that it is quite related to the things above and that you will have to talk to your users, analyse the responses, and start working towards replicable steps to get more word-of-mouthers. Finally, use tools like SatisMeter.

In the end, it will boil down to making the app (and experience with it) amazing for those people.

Without all of this, it is just luck. But hey, some people do get lucky.

App Stores

If you are planning to rely on app stores to distribute your app, I have some bad news for you yet again. It’s gonna be tough or impossible to get your first users from there.

The people on the store usually find the apps through promotions (editorial picks), searches, and recommendations.

None of these can be taken for granted. For promotions, you will need to find somebody to back you in the company and recommendations are the black box you have no control at all.

The only black box you can influence are the search rankings. By doing some App Store Optimizations (ASO) you could expect to get some additional traffic if you named the app something like “Smash of Clans”. But this is not easy at all, and you will have to use tools like SensorTower or AppAnnie to guess your way around what works the best.

As a rule of thumb, I could say that if you are getting 0 downloads per day today, you will be getting 0 tomorrow as well, no matter what ASO you will be doing.

It’s not to say that ASO doesn’t matter at all, it just that when you are starting it will have almost no effect.

Retention

Remember when I’ve told you that nobody cares about your app? You better do not forget that, because it is still true after people install your app.

These days the time that users are willing to spend on their phones is fully saturated. It means that in order to make them use your app, you will have to make your users allocate you extra time, or take that time from other users.

When people do not use your app, it is the same if they haven’t installed it at all. If you ignore retention, you will end up in a state where an app has maybe 5000 downloads but 50 monthly active users (MAUs). Yikes.

You are in a pinch, because users are already spending enormous amounts of time on smartphones thus it is very unlikely that they will allocate more time just for your app. And in order to take time away from other apps, you will have to be able to provide more satisfaction than others (and remember, it is no fun competing with Facebook in that regard).

The question here basically is how do you make people use your app and not only once but on a regular basis? That’s another thing that you will have to keep constantly thinking about.

If you did a good job of knowing your customer and managed to get your app to the users that care about the problem your app is supposed to solve, you should be in a pretty good shape.

Now you just need to solve that problem and deliver that value. Also, you might want to read a book like Hooked.

So what problem does your app solve?

Conclusion

It might sound overly pessimistic (and fairly so) but if you believe that your app solves a real pain (remember — vitamins vs. painkillers), do not let that stop you. Validate your beliefs and you are good to go.

There are plenty of pains that are still waiting to be solved.

--

--

Tadas Šubonis
Feedpresso

Geek. Data Scientist. Software Engineer. Entrepreneur.