In the market for (mobile) software one can often only choose between two options:
- an "easy" cheap, often DIY, restricted way of building an app, or
- the top prize with a company that will build you a, tailor made app
In the first category a lot of free or non-expensive tools are presented that promise an app without even needing to write real code. In practice the functionality is very limited and it is very difficult to get a fit with your requirements and often people give up.
In the second category price structures are often presented being dependent on how many components a piece of software has. For example: the costs for the development of a mobile app often quickly rise:
- when apps use a login,
- are integrated with social media,
- when in app purchases are done,
- when you require an in-app review or
- any other kind of additional "standard" plugins
That is strange!
We don't believe in that. Although parameters are different for every piece of software. Most of the underlying components require standard interfaces with: the app store, social media, etc. ... . Also standard security patterns based on best practices are available and so you are not supposed to redo them with every other piece of application development.
So if the complexity is not in the integration, which components do drive the costs for developing an app?
The complexity of an app is in the fact whether an app uses standard functionality patterns, has a back-end, uses complex technology or combines various, internal and/or external, functionalities.
Let me explain:
- a login (or not even that)
- standard menu functions (example: standard material design of Android)
- application data is stored on the device
- views that represent the data which you can view, search, edit and delete
- has a back-end:
- With users logging in
- Back-end software
- Back-end database
- Back-end security
- using complex technology like:
- geo-fencing (alert when you are in a certain area)
- interpretation of motion detection (fitness apps)
- high performing vector graphics (example: gaming)
- real-time streaming/interaction (example: Uber, whatsapp)
- A back-end where a user base is registered combined with a complex search algorithms (dating app or booking site).
- Mash ups: combining available data sources, enrich them to a new app (example: public transport data streams, composite travel advice, ...)
- An app combined of non standard and/or new functionality involving building new software (integration) components.
And of course a special developed graphical design for your app is a significant cost driver.
The above examples describe software for mobile platforms, however the essence is the same for client/server software on a desktop.