9 Factors That Influence App Development Cost
One of the most common questions I get asked is “How much does it cost to make an app?”
The answer is that it depends – there isn’t an average cost of app development. “It depends” isn’t the most helpful of answers, so in this article I explain 9 different factors which influence app development cost, including features, platforms, external services and server costs.
1. Features and Functionality
What functionality does the app have? What does it need to do, and what services does it need to achieve this?
For example, let’s say your app needs to display nightclubs that are nearby the user, allow them to message other users, and make purchases of emoticons that can be used while sending messages to other users. This is what we developed for an app called Now Wow. These functions mean the app will require GPS/Location features to locate the nightclubs, chat/messaging services to support the communication aspect, and In App Purchase functionality to allow users to purchase the emoticons.
There is a whole spectrum of potential features an app can have, for example:
• Social logins – e.g. Log in with Facebook/Google Plus/LinkedIn
• Camera/video/photo gallery integration
• User registration – users register their own accounts, by entering an email and password
• Augmented reality
• Calculator – will your app perform calculations based on user inputs?
• Payment for goods or services
• Loyalty programs
• Online reservations
• Calendar integration – e.g. saving events to the calendar
• Integration with wearable device(s) – for example integration with Apple Watch
• Social features – commenting, liking, sharing, reviews
• Game Center Integration
• HealthKit integration
• Location based services
• Chat/instant messaging
Clearly, the more features an app has, the more costly it will be to develop. Also, all features are not created equal – some are more complex to develop than others. However some features can be provided by 3rd party APIs/service providers, which means they don’t have to be coded from scratch, which will save development time and cost. More on this later.
2. Number of Screens
Generally, the more screens an app has, the more design and user experience work is needed. Also, more screens can mean there are more ways to navigate through the app – a particular screen may be accessed in more than one way, and in more than one set of conditions.
An increased number of possible “paths” through the app generally means more programming time is required to cater for all the possible paths or journeys that can be taken by a user through the app.
Will the app have user driven content? For example, are users able to upload photos or videos, submit reviews, or comments on content? Will the app provide data that changes on a regular basis? Will you need the ability to edit and add data? If the answer to any of these is “Yes”, the app will need a database.
A database means development time will be needed to set up the app so it can communicate with the database. For example, if a user adds a photo from his device, the app will need to be able to take this photo and store it in the database. If a user then views this photo later, the app will need to retrieve the photo from the database and display it on the app.
Likewise if a user comments on this photo at a later date, the photo will be retrieved from the database, then saved back to it with the comments added.
The diagram below gives an example of how an offers and events app would work with a database and CMS.
In addition to the development work setting up the database and to get the app and database to “talk”, there will be costs for hosting and storage on the database. More information on this later.
If you need the ability to control, add and edit data the app displays to users, then a CMS (Content Management System) may also be needed.
For example, if you have a source of data that you maintain that is displayed in the app, you may need the ability to add, edit or remove this data from the app. Let’s say you have a curated list of local offers, events and business information for a city. You would need to add new events and offers, or remove old ones to keep your content fresh. Rather than editing this data directly in the database, which requires technical expertise, a CMS can be used.
The CMS will be built “on top” of the database, providing a simple and easy to use interface by which data in the database can be modified. Content can continually be updated on the app, quickly and easily. The advantage of using a CMS is that when you do update content, it appears in the app right away – no having to do any development work on the app.
Will you be developing for IOS (Apple) devices only? Will your app need to work on Android as well?
If you’re developing for Android, you’ll need to bear in mind that Android apps generally require more testing time. That’s because Android as a platform, is much more “fragmented” than IOS. There are many different handsets, handset manufacturers, screen sizes, and operating systems. For example, last year, as shown in the clever graphic below from OpenSignal, there were over 18,000 different Android devices in the market.
Devices have various different screen sizes and resolutions. When making an app that has to work on devices with varying screen sizes, re-sizing of graphics and extra testing may be needed to ensure the app “looks” right on larger screen sizes.
With Android, the different manufacturers also have their own variants of the Android operating system. Google develop the operating system, but the large manufacturers then customise it so it works on their handsets. This means that the app needs to be tested on as many different devices as possible to ensure that there are no operating system idiosyncracies.
Also, with Android, there is no “forced updating” of the device’s operating system. This means there are a lot of devices still running old versions of the operating system. For example, at the time of writing, just over 30% of Androids still run the Jelly Bean version of the operating system, which is two versions behind the latest version, Lollipop. Contrast this with iOS, where according to research by Opensignal, 85% of iOS devices were running the latest operating system as of August 2015.
All of this means Android apps need to be tested on a large number of Android devices, running different operating systems and with different screen sizes to ensure the app will work on all the various devices.
Apps can be optimised specifically for Tablet devices, meaning the app can have a different layout that is more optimised for a larger screen. This could mean things like larger text boxes, bigger display areas for images. For example, if you look at a screenshot of the Scotwork iPad app below, you can see how in the iPad view, the left menu can be open while the video is playing. With the iPhone version, this menu has to be closed due to the reduced screen area.
In order to make a “tablet specific” version, different sized graphics would be needed. Screens may need to be redesigned to take advantage of the greater screen “real estate” that’s available on tablet devices.
7. External Services
To support the rapid growth of mobile apps, a number of services have evolved that provide simple, easy to integrate common functions that many apps use. Examples of these common functions are things like database storage for app content, push notifications, and analytics to track usage and behaviour on the app.
Using these external services, such as Parse or UrbanAirship to provide things like push notifications, generally means less development time. This is because we’re not having to code a push notification service from the ground up again – so instead of reinventing any wheels we leverage these external services, as they have already built the infrastructure.
However using a service like Parse or Urban Airship is not free; they charge based on a number of variables, such as the storage you use, the amount of data transferred, the number of push notifications sent, etc.
One difficulty can be quantifying the cost of using a service like Parse before the app is live. Parse’s pricing is based on things like the number of requests per second being sent by the app, and the number of Gigabytes of storage.
Until it is known how many users are using the app, and “how” they are using it, it is hard to determine exactly how many requests per second are being made, and the amount of storage or bandwidth used.
8. Server Costs
If your app requires a database, or provides features such as chat, or bookings, you’ll need a server. With the proliferation of cloud services over the past few years, server space and usage can be “rented”, using something like Amazon Cloud Services. This means you don’t have to stump up a substantial up front cost to buy a server, as was the case in the past. Instead you essentially “rent” space for storage on the server, and pay for time using the server and bandwidth for data transferred from and to the server.
Amazon’s pricing structure is based on the following elements:
• The amount of storage required
• The number of “requests” made to the server
• Data downloaded or uploaded to the server
Handily, Amazon provide a calculator which can be used to estimate approximate monthly costs.
9. Developer Licences
Finally in order to release an app to the Apple app store under your own or your company’s name, you need to have an Apple developer account. This costs £69 a year. Likewise, a Google Play account costs $25 (approx. £16) a year. If your app is an “internal” app to be used only by your organisation and won’t appear on the App Stores
Of the 9 factors covered in this article, the most important determinant of an app’s cost is the functionality and features required. The more features the app has, the longer the development time required. However, there are a number of other factors which need to be considered. If your app doesn’t have many features, but is heavily reliant on external services, storage and bandwidth, then the running costs of your app once live may soon exceed the development cost.
Do you have an app idea that you’d like a quote for?
Then please give us a call on 0203 322 5900, or request a quote online by clicking the “Book Now” button below.