One of the biggest variables in the cost and time required to create a native mobile application is the complexity of the application being developed. Just like any other type of software development, simple mobile applications can be completed quickly while complex mobile application development can take a significant amount of time to finish. With all the tools, libraries, and advanced development environments available to a developer, it’s hard for the uninitiated to tell what’s complex and what isn’t. By the end of this article, you’ll no longer be uninformed and you’ll be able to tell what makes a mobile application complex.
First, you need a context. You could keep reading without one, but to really appreciate how to evaluate the complexity of a mobile application, it will be better if you have a specific mobile application in mind. If you have a mobile application idea that you would like to see in the market (or bring to the market yourself), that’s perfect. If not, just pick your favorite mobile application and follow along. Got it? Okay then…
There are two main areas of concern when determining the complexity of a mobile application: Entities and Features. The entities of a mobile application include the data and changing information that make the application interesting – these are the items in your online shopping cart or the tweets of those you’re following. The features of a mobile application, on the other hand, include what it does and how it does it. Separating these out is normally part of the analyst’s job: breaking the application down into actionable components. We’re going to walk through a lightweight way to break these down so you can get a peek at what makes a mobile application more or less complex.
In most applications, the user is interacting with different collections of information for different purposes. A weather forecast is a collection of information like high and low temperatures or whether it will be sunny or rainy that day. A location can be a collection of information like city, state and zip code, or even latitude and longitude. A person might be represented by a name, title, and phone number. Each of these collections is combined into something called an entity, and each application may track different types of entities. Defining entities can get really messy, even for programmers, but for the purposes of this blog, just keep things simple and define entities as they make sense to you.
Also, we’re really only concerned about entities that can change or entities with values that can change. For example, if you’re dealing with an application that displays address information about the White House on its own dedicated page, that display does not use an entity. If instead the application shows the address information for different popular DC landmarks depending on which one is selected, then the display does use an entity.
It’s fairly intuitive to see that the more entity types an application has, the more complex it is. What is not so obvious is that this increase is not a one-to-one relationship. Normally, things get increasingly complex as more entity types are added. For example, an application with two entity types might be twice as complex as an application with one entity type, but one with three entity types might end up being four or five times as complex!
Most of the features of a mobile application are designed for the target user: what should the user be able to do with the application? Some of the features are oriented towards the owner (or creator) of the application instead of the end user. For the sake of brevity, both are included in the same list. The list is ordered from least complex (XS) to most complex (XL). Take a walk through the list and see how complex the different features of your application are to design, implement, and test. Where applicable, we’ll use a basic weather forecast application as context for an example.
Hopefully, now you have some idea of what can make a mobile application complex. Obviously, this list doesn’t cover everything that a mobile application can do and it certainly doesn’t replace the need to talk to an experienced mobile application provider (like us) to get an estimate on complexity, time, and cost for your next mobile project.