Oh wow, here we go… How long is a piece of string? Apps can cost anywhere from under a hundred dollars/pounds/euros to make to over hundreds of thousands! The size, all the “moving parts”, and graphic design of your app are all important elements that help guide putting a dollar figure on your app.
Today we’ll walk through some different areas of complexity that will help you determine how much your app will cost to build, as well as some examples of low cost and high cost apps.
Note here that when we are talking about size here that it doesn’t refer to the number of screens there will be in your app! When we are talking about size it instead refers to the number of functions of your app.
For instance, if we’re talking about a basic ride hailing app, it needs to:
- Have a customers list and a drivers list, which includes bank details.
- Have a shared map, with a linked layer for each customer to see and for each driver to see
- Allow customer and driver to share their GPS location
- Allow customer to request a lift
- Update available drivers’ maps accordingly
- Allow driver to accept a lift
- Update customer’s map accordingly
- On completion of ride, conduct payment transaction, update maps
This is just the very basics of a ride hailing app. You’ll see that these are quite a few functions, and there might be functional complexity (which we’ll touch on next) in generating all those map layers.
Let’s compare this to a recipe suggester, based on what’s in your cupboard:
- Have a (very long) list of recipes, with each ingredient as a separate field
- Allow user to input up to 5 ingredients
- Search list for closest matches
- Display matching recipes to user
As you can see, this app has far less functions, and the functions themselves appear less complex. Instead, with this app, the apparent complexity lies in gathering the recipes and putting the ingredients singularly into a table.
Complexity of each function
Now, without being a software developer yourself, trying to work out how complex a function is may be a little bit tricky. We have some pointers anyway, to help you out!
Does it need to use external data sources?
By external data sources, we mean does it need to access someone else’s software? For instance, in our ride hailing example, you need to link to bank accounts - that’s an external data source. If we didn’t build the map ourselves, then we need to use someone else’s map. For the recipes example, did we create our own recipes, or have our friends given us all their recipes? Or are we using recipes.com for the recipes?
Apps that don’t require any external data sources are considerably less complex to build. As the number of external data sources grows (and especially if you’re combining the data of each) the complexity grows. Plenty of external data sources you might think you can just access don’t actually allow other software to access the data, too!
How often do we need to exchange data between the user and the server?
If you design an app that only requires a download to begin with, then doesn’t need to exchange any more data with the server, then there’s zero complexity in message requests with the server.
For instance, you develop a simple noughts and crosses game for 2 people sitting next to each other, a phone to play with, and nothing better to do. Once they’ve downloaded the game, they simply take turns putting a nought or cross in the game until someone wins. You can put all the complexity in the user-side of the game: just turn based, until noughts or crosses gets three in a row.
Let’s compare that to our other examples. You might think that although there’d be plenty of server message requests with your ride hailing app, that there’d be no server message requests with your recipe app. However, unless you have a small library of recipes to choose from, that database would need to be stored on your server - because there’s only a limited amount of memory on a phone.
Does the function require lots of data transformations?
From each function in your app, you should be able to determine how many transformations/checks the data needs to go through to get to the next step.
For instance, with your recipe finder app, your functional complexity could be simple or quite involved. A basic function could match any recipes that include all ingredients listed. A more complex function could include partial matches, where it matched with 3 or 4 out of 5 ingredients. An even more complex function could look at the other ingredients listed in each recipe and push to the top of the returned list all the recipes that included more basic non-requested ingredients (such as flour, butter, eggs, rice, tinned tomatoes, etc.)
Put simply, the more transformations required for each function, the more complex.
Graphic design complexity
Do you want beautiful graphics, that are both detailed and stylish? Then that’s complexity in user interface (UI) design.
You know how some apps are just super nice to look at and easy to use? That’s because the company behind it has paid close attention to the user interface and user experience.
Just as complex functionality is going to cost you more, a more well-styled interface is going to cost you more, too - it’s more of an artistic pursuit. UI and UX designers are not the same as all-rounder app developers.
We hope this has helped in seeing the areas of your app that might cost more vs. where you can make some savings, and even potentially make some adjustments to drive down the complexity of your app. If you’re looking for a partner to make your app happen, then get in touch with us at CodeFirst - we’ll happily suggest where you could potentially make some savings across your app, too.