Introduction
At SFCD we receive a lot of inquires from a variety of potential clients, big and small, regarding the cost of developing a mobile application. Unfortunately, there is no simple answer, as the cost of an application can vary greatly depending on the application type and the features requested by a client.
In the best-case scenario, a client has the time to sit down with us and give us the opportunity to fully understand both their business goals and their potential users. This lets us chip away at some of the uncertainty surrounding development and come up with a more accurate estimate. Seemingly simple features can have a significant impact on time and cost of development and can require a good deal of work behind the scenes, or in the planning and design stages.
Other times we’re forced to come up with an estimate based on extremely limited information about the product, and so we rely on our knowledge of the overall product space as well as the experience gained from previous projects to inform our estimates.
In either case, we like to start small, and work closely with our customers to iterate on the core of a concept, building out and testing as we go. This iterative approach is central to our philosophy, and means that the various stages of the process loop and feedback into one another. User experience guides the overall product exploration and concept and informs the decisions made by the design and development teams. In turn, they might suggest new ideas or point out potential roadblocks, helping to better refine the overall concept and user experience.
The initial work with a client begins with an effort to fully understand the product space, potential users, key scenarios, and the available technologies and their limitations. This can take a significant amount of time, and along with pre-production can be as long as production itself.
A “simple” application
For the sake of example, let’s say a client came to us and was interested in developing a new note-taking application for iOS, arguably one of the “simplest” kinds of apps. We might spend a few days on strategy, discussing the client’s goals and reviewing potential competitors and attempting to define the minimum number of features that would be required before we can really begin testing and validating the concept. An application that meets the minimum number of feature requirements is often called a Minimum Viable Product (MVP), and is something we believe in strongly at SFCD. The more quickly you can get to a point where you have a functional prototype in your hand, the more quickly you can evaluate what you’ve built and re-prioritize your efforts based on what you learn.
Once we have a strategy and concept locked down, the app moves into pre-production, where our User Experience (UX), design and engineering teams work together to define the overall plan for the application and begin working on the foundations of the app.
The UX team defines how the app will work, enumerating its various features and exploring various scenarios. How will the notes be visualized? How will you add, edit, and delete notes? Is there search functionality? Each scenario can take several days to define, discuss and optimize, and for every scenario the team needs to establish a user flow, decide on what screens would be required to accomplish that flow, and think about how the user will navigate through them to achieve a given function. It might take several days worth of work to list all the scenarios and create wireframes—basic sketches of what screens will look like and where interactive elements should be placed. Ideally this process results in the creation of an interface which is intuitive to users while remaining as simple as possible.
At the same time the Design team begins to establish a visual language, deciding on colors, font choices, graphical elements and developing an app icon, which is almost a project in and of itself. It takes a lot of effort to make a distinctive and attractive icon that will explain the app without words. This usually starts with designers exploring a variety of visual metaphors to see which one best conveys the app’s functionality. Lots of rough, quick sketches are drawn up and their qualities and inadequacies discussed to narrow down the possibilities. The best ideas are sent to the client for review.
Meanwhile, the engineering team has been providing input at each stage of the process, evaluating architectures and technologies, pointing out potential pitfalls and evaluating the capabilities of available technologies. The final stage in pre-production is for the engineering team to plan out the project structure, likely 1-2 days for the simple notes app, taking particular care to make sure maintenance and updates to the application can be handled most effectively.
With plans in place, the project moves into the Production phase. The Design team begins to apply the visual language to each and every screen from the wireframes, defining the states of all the controls, animations, transitions, etc., while also accounting for screen size and resolution and other device-specific issues. The app icon goes through a number of draft phases before the final render is complete, and a variety of versions are hand-drawn for different icon sizes. This can be one of the most challenging and time consuming aspects of a project, as it’s impossible to resize an icon automatically without losing pixel sharpness and visual quality. Instead, the various icon sizes need to be meticulously crafted. Preparing these assets for the developers can take an additional few days of work. For our simple notes app example, the total design time would be around 10 days.
Organization is the key to delivering projects on time and on budget, and our team uses a variety of tools which helps them to automate processes and create a solid product in less time. For a simple notes application, development would likely take around 10 days, with additional time dedicated to Quality Assurance. As prototypes are produced, various teams have been rigorously reviewing the product, a process that can take a significant amount of time (another 3 days for the simple notes app), but which is absolutely essential to creating a well-polished piece of software and quashing bugs and inconsistencies before they make it to the end user.
When the client feels comfortable that the application is complete, we prepare it for submission to the app store. We take special care to create the text for the app description and to choose appropriate screenshots that clearly explain the app’s functionality to the user and demonstrate why they might want to download it. Even this final step of submitting the app to the app store can take another 1-2 days.
Let’s go back and tally up the total amount of time spent on something like a simple notes application:
Core feature set for the simple Notes application
- — Write, edit, and delete text-only notes
- — Date and time stamps on each note
- — List view of all notes
- — Search for notes
- — All notes stored locally on user’s device
Time spent on a simple Notes application
- Strategy & concept
- 2 days
- User experience
- 3 days
- Design
- 5 days
- Development
- 10 days
- QA
- 3 days
- Publish
- 2 days
- Total
- 25 days
At twenty-five days worth of work it’s clear that even a “simple” notes application is a significant undertaking. At eight hours a day, that’s two-hundred hours or 5 weeks at 40 hours a week. Companies’ rates can range between $100-250 per hour, depending on the company, their overall quality and experience level. At those rates, the cost of the simple notes application would range between $20,000-$50,000. With a design rate of $200 per hour and a development rate of $175 per hour, this app would cost approximately $37,000 if SFCD built it.
Adding complexity
For comparison’s sake, let’s look at a more complex application, one which adds online syncing and social functionality to the simple notes application. While our previous example existed solely on a mobile device, this version will require the creation of a back-end system where data can be stored and accessed across devices. A variety of new features will be created, which requires attention from all of the various SFCD teams. Additional time needs to be spent on the overall product strategy and User Experience needs to map out the new, more complex user flow and additional wireframes, adding up to 7 days to the project. Design needs to generate new graphic elements and new screens, which can take another 5 days. The biggest impact, however, is on the engineering team, who now needs to manage additional complexity in their application code as well as creating an entirely new codebase for the server-side of the application. Adding these kinds of features can add another 50 days of engineering work, and a corresponding amount of time for QA!
Core feature set for the social Notes application
- — Write, edit, and delete notes
- — Embed images and short videos in notes
- — Choose to share notes publicly or keep private
- — Date & time stamps on each note
- — List view of all your notes
- — Invite, find, and add friends
- — List view of all your notes
- — View a feed of your friends’ notes
- — Save & “Favorite” friends’ public notes
- — Comment on friends’ public notes
- — Share notes—via email and social media (use iOS’s built-in sharing)
- — Search your notes and saved notes from your friends
- — Print notes via the cloud (use iOS’s AirPrint)
- — Sync notes across devices
Time spent on a simple Notes application
- Strategy & concept
- 5 days
- User experience
- 10 days
- Design
- 10 days
- Development
- 60 days
- QA
- 10 days
- Publish
- 2 days
- Total
- 97 days
The total cost of this larger, more complex application would fall somewhere between $77,600-$194,000. At SFCD, it would cost approximately $140,800.
Continuing support
Of course, when a project ends we don’t just hand it off to the client. We’ll package up any code and assets for hand-off, but we like to stay involved with a project, providing support and updates as needed.
As you can see, the time and costs associated with developing an app vary greatly and features that seem simple on the surface might take significant work to implement. Keep this in mind when it’s time to launch your project.