The Hidden Costs of Apps

“I have an idea for an app. How much would it cost?” It’s something I hear on an almost weekly basis. Mobile applications are extremely popular, and many people believe that their app idea will help them to get rich quick. Most people are shocked when they hear the development of their app could be over six figures.

From a developer’s standpoint, the question is crazy. It would be similar to someone asking a car salesman, “How much does a car cost?” or a realtor, “How much does a house cost?” A used car can cost as little as a few hundred dollars, whereas a Bugatti Veyron has a base price of $2,500,000. But even that large of a span makes sense to most people, as cars have visible and tangible differences. Nobody bats an eye when they see a mansion listed at several million, but some people go crazy when you tell them that developing an app similar to Facebook will easily cost over several hundred thousand. As a developer, though, it makes sense. The part of an application that you see, what most people recognize as an app, is an extremely small piece of a much larger system. Application development cost is so commonly asked about and misunderstood that some websites exist just to answer that single question.

$2.5million and probably worth every penny $2.5million and probably worth every penny

But why? We live in a technological age, and a lot of business plans regarding applications are well laid out. It all comes down to one thing: the ‘invisible’ technology–the technology that users don’t see but that actually runs an application–is expensive. For example, think about an application that mimics Twitter. We’ll call it Twaddle. The concept is fairly simple: Allow people to share 140 characters at a time. How expensive could it be?

(Disclaimer: Estimates and costs listed below are complete guesses. The point of this post is to provide insight into the multitude of hidden costs in application development, not their exact values.)

iOS App

grey_iphone5s

We’ll start where most people do, with an iOS app. Assuming we are starting from scratch, we already have some large costs involved. Twaddle will need a design, which, when done by a professional designer, could cost upwards of $5,000. After the design is finished, an iOS developer will be required to code and implement the designs, which we’ll guesstimate to be about $7,000. $12,000 and we have our app completed! …right?

To the Cloud!

cloud-server1

Not quite. At this point, we have an app, but it doesn’t connect anywhere. iOS devices cannot pass user generated wp-content back and forth directly, so we will need a server to manage that information. Not only that, but we’ll have to store it in a database. Server and database development are typically done in a conjoined manner, and many experienced backend developers (the ones who write the code behind a mobile app on a server) can do both. It is not cheap, though, and for Twaddle, it’s going to cost us another $5,000 to have someone develop this piece of the system for us. Once the code is finished, we’ll need to host it somewhere. Popular services like Heroku¬†are good to start with because they are free initially and you can pay for increased speed and performance as more and more users start to use your app.

But wait! Now that I’m thinking about it, we probably also want people to be able to upload pictures. Pictures can’t be stored in a database (typically), and in order to allow people to share pictures, we’re going to have to store them somewhere. A common storage provider is Amazon S3, and while it has a nice free usage tier, once our user base increases, we could end up paying hundreds of dollars a month just to let people look at pictures!

And…roid

Android-Developer2

At this point, we have an iOS-only application that has a cloud-based backend, but it would be silly to not go for the large potential user base of Android users. A common mistake at this point is to tell an Android developer to take the existing design, originally styled for iOS, and implement on Android. It is so common that Google specifically tells us not to do it. We now need to go back to our designer to tweak the original design for Android devices. Thankfully it’s not a complete redoing of the previous work and will only cost us about $3,000. The downside is that Android device fragmentation is so extreme that it takes the Android developer longer, and therefore costs more money, to complete the Android version of Twaddle. Development ends up totaling $7,000.

More Than We Originally Expected

It’s common to think, “I just need design and development for an app,” so $12,000 doesn’t seem that outrageous. But once we take into consideration all of the other pieces, server infrastructure, cloud file storage, and separate Android design & development, we now have an app that has a base cost of $27,000 and a monthly recurring cost of several hundred dollars to run our servers. Keep in mind that this is for an extremely simple app and that it doesn’t take into consideration more advanced technologies that larger applications would require, such as load balancers, wp-content delivery networks, or a website for non-mobile users to use!

You Pick Two

good_cheap_fast_sign

Good, cheap, fast. You can only pick two. If you want good and cheap service, find a college student who has the capabilities to learn, but is going to take a while to learn all the intricate pieces of a full application system. If you want good and fast, you’re going to have to pay for an experienced developer who is expensive BECAUSE he (or she!) is good. And if you don’t want good, you probably shouldn’t be pursuing application development in the first place. A common “solution” to this problematic triangle is to use a cross platform mobile technology such as Xamarin, Titanium, or PhoneGap. Third party SDKs almost always compound problems rather than solve them. Titanium and PhoneGap, for example, both rely heavily on Javascript, which is a non-native programming language for both the iOS and Android platform. Going the non-native route results in a slower UI and bad performance–and your users will notice. Mark Zuckerberg himself admitted that HTML5 had performance issues when Facebook stopped using it on both their iOS and Android mobile apps and reprogrammed them using native code.

Shortcuts are bad, plain and simple, and you will most likely get burned if you try to take them. There are some tools, though, that can help decrease the cost of your application development. You could drop paying for a backend developer and use a system like Parse. This will require additional mobile side coding, so don’t think using a BaaS is free, however in my experience, I have found that it does reduce overall development time and cost, even if the mobile side does go up slightly. It’s also a good idea to work with developers who understand both iOS and Android. Development of brand new applications can prove tricky, however if it’s the same person doing it for both platforms, you have a greater chance that they look/behave/feel the same than if you had two completely different people developing each piece.

Application development can, and usually is, quite expensive. If you work with a skilled development team, though, *cough* Software for Good *cough*, they can help you to produce a polished product while working to reduce developmental cost.